rNote 0.9.7.5 を php7, php8 で動作できるようにするためのパッチを作っておいた。

一応、ダウンロードした rNote 0.9.7.5 にパッチを当てて新規インストールし、 php8 で動作することは確認してあるが、いろいろな操作をした場合に何かエラーが出る部分が残っているかも知れない。

おまけ(というかパッチのために削除するのが面倒だったので)として、 rNote 0.9.7.5 の XSS への脆弱性(クロスサイトスクリプティングが実行されてしまう問題)への対処と、サイトが SSL である場合への対処も含まれている。 rnote_config.php で定数 SITE_SSL を定義しているので、 SSL ( https ) の場合は true, http の場合は false にして使用して欲しい。(初期値は true )

#これを書いている現在、本家 rNote のサーバが落ちている模様。復旧するのだろうか。タイミングがよいのかわるいのか・・・。

[コメントの受付は終了しています ]
この記事のリンク元 | 1 |

キーワード: rNote patch php7 php8


RSS 1.0, 2.0 共に、各記事のタイトルを CDATA で囲むようにした。

理由は、半角の&がタイトル内に含まれていた場合に正常に rdf を表示できなくなるため。これまでは、記事の本文、 dc:creator の部分は CDATA で囲んでいたが、タイトル部分は囲んでいなかった。

この記事のリンク元 | 9 | 8 | 1 |

この記事のリンク用URL&トラックバックURL : https://red-souls.jp/ichounoki/rnote/works/software/20201121_230633769701.htm

キーワード: RSS1.0 RSS2.0 CDATA


以前、「font awesome の icon を設置した」で、 font awesome の icon を ul や ol の list-style に使うためには、

li:before {

font-family: FontAwesome;

content: 'f073'; /* icon unicode */

}

と記述すればよい、と書いたが、今回、サイトの ssl 対応をしているうちに、なぜか、この方法で表示できていたアイコンが、表示できなくなっていた。

サイトの ssl 対応が原因かどうかは不明だ(もしかして、知らないうちに既にそうなっていたのかも知れない。)が、このままでは困るので、試行錯誤した。

Font Awesome 5 Freeで疑似要素(:after,:before)のcontent指定する場合」を参考に、 font-family を変更し、

li:before {

font-family: "Font Awesome 5 Free";;

content: 'f073'; /* icon unicode */

}

と、記述することで表示できた。

ただし、一部のアイコンは、これだけでは表示されず、追加で、

font-weight: bold;

も記述する必要があった。 font awesome のフリー版が regular, light, brands には対応しておらず bold のみであることが原因ではないかと思うが、詳細は不明。

この記事のリンク元 | 9 | 8 |

この記事のリンク用URL&トラックバックURL : https://red-souls.jp/ichounoki/rnote/works/software/20201121_143056562963.htm

キーワード: font awesome icon blog parts


なぜ XHTML5 にしたかというと、 rnotepad.php (記事投稿エディタ)で、「投稿」ボタンが押されたときに、日付などの入力欄の入力チェックがしたかったからだ。

とりあえずやってみた感想だが、 input タグの要素に pattern で正規表現を使って入力してよい値を指定するのだが、それだけだと、未入力の場合素通りしてしまう。 required 要素も一緒に指定しておく必要がある。検索して見つけたサイトは、その注意点が漏れていた。

あと、 pattern で指定した形式ではなかった場合、「投稿」ボタンを押すと、「Please match the requested format.」( firefox )や「指定されている形式で入力してください。」( chrome )といったメッセージがツールチップ形式で表示されるのだが、どのような形式にする必要があるかは教えてくれないのだ。

こういう場合、例えば時刻であれば「00〜23を入力してください。」とツールチップに表示したいのだが、それができないので、 HTML5 の入力チェックは、いまいち役に立たないことが分かった。

今の HTML5 の入力チェック方式であれば、例えばフォームの入力欄付近にどのような形式で入力するかを正確に表示しておく必要があるが、これでは非常にうっとうしい状態になってしまう。やはり、ちゃんとやりたければ javascript などでごりごり書かないといけないようだ。もう一度言うが HTML5 の入力チェックは、「いまいち」なのである。

ちなみに、今回の作業で XHTML5 などというものが存在することを初めて知った。

rNote で使用されている xhtml1.1 との相違点が正確に知りたいところなのだが、ぱっと検索してみた限りでは、情報を発見できなかった。見つかったのは、ヘッダ部分の記述の例が少しと、 HTML5 の DOM のシリアライズに2種類あって、1つが HTML5 でもう一つが XHTML5 だという説明だけだった。各ブラウザの対応状況なども見つからなかったが、とりあえず firefox ではなんとなく動作しているようだ。

この記事のリンク元 | 9 | 8 |

この記事のリンク用URL&トラックバックURL : https://red-souls.jp/ichounoki/rnote/works/software/20190825_185438162788.htm


rnotepad.php を修正 2019-08-24 (土) 22:54:45+09:00

冬星のソフトウェア

先日、 XML-RPC API を用いて、サーバから自分のサーバに向けて通信を行い、カテゴリの情報を取得するようにしたが、それをやめた。

rnoteadmin.php では、各プラグインからの出力を表示する直前にブラウザに向けて header() を用いて HTML ヘッダを送信しているのだが、 XML-RPC API を用いた通信を行うと、 header() が実行される前にプラグインが呼び出されたときに通信が実行されるが、そのとき送信されるヘッダとブラウザに向けて header() で送信されるヘッダが同一視されるようで、 rnoteadmin.php で header() を実行したときに「既にヘッダは送信済みです」という warning がどうしても消せないため、うっとうしいので XML-RPC を使ってカテゴリを取得するのをやめた。

XML-RPC API を使用したのは、 rnotepad.php 内でカテゴリの配列を直書きしてしまうと、 rnote.php と二重管理になってしまい汚らしいしカテゴリを修正するたび、両方を修正しないといけなくなるから、という理由からだった。そこで、実際にカテゴリの配列が定義されている rnote_config.php の配列から情報を読み取って rnotepad.php でも使用するようにしたので、この方法でも問題は解決されている。

この修正のついでに、最近の記事の日時がおかしかったのを修正した。

原因は、レンタルサーバのコントロールパネルから「PHP設定の編集」に値を設定したのだが、ここに値を設定すると、 PHP が取得するタイムゾーンが UTC になってしまうようで、そのためだった。同じ場所に date.timezone = 'Asia.Tokyo' も追加して解決した。

この記事のリンク元 | 10 | 9 | 8 |

この記事のリンク用URL&トラックバックURL : https://red-souls.jp/ichounoki/rnote/works/software/20190824_225445880351.htm

キーワード: rNote rnotepad.php