rNote-re のインストール

設定ファイルを編集し設定する

テキストディタで rnote_config.php を開き、下の項目を設定します。

  • SITE_TITLE…サイトのタイトルです。
  • SITE_AUTHOR…サイトのオーナーの名前です。
  • SITE_URL…サイトのURLです。
  • ADMIN_ID…管理者のIDです。
  • ADMIN_PASSWORD…管理者のパスワードです。
  • USE_MOD_REWRITE… apache の mod_rewrite を使用し rnote.php を隠蔽する場合は true にします。
  • EVAL_ENABLE…スキン内で php スプリクトを実行する場合は true にします。
  • DATETIME_FORMAT…日付時刻表示のフォーマットです。
  • $dir_access_enable[]…外部から書き込みを許可するディレクトリをこの配列の要素にに指定します。
  • $nodisp_at_toplv[]…トップレベルには表示したくないカテゴリのカテゴリキーをこの配列の要素に指定します。
  • $category_name[]…カテゴリキー・カテゴリ名の連想配列です。 $category_name['key']='name'; のように指定します。
  • $category_key[]…カテゴリキーの配列です。
  • $XR_USER… XML-RPC クライアントからログインできるユーザを指定します。 renote_config.php のサンプルを参考に指定してください。
  • XR_FTP_HOST… XML-RPC API でサーバ上のディレクトリ・ファイルを操作する際に FTP のアカウントで行う必要がある場合に設定します。
  • XR_FTP_USER… XML-RPC API でサーバ上のディレクトリ・ファイルを操作する際に FTP のアカウントで行う必要がある場合に設定します。
  • XR_FTP_PW… XML-RPC API でサーバ上のディレクトリ・ファイルを操作する際に FTP のアカウントで行う必要がある場合に設定します。
  • XR_FTP_ROOT_DIR… XML-RPC API でサーバ上のディレクトリ・ファイルを操作する際に FTP のアカウントで行う必要がある場合に設定します。
  • XR_FTP_DIR… XML-RPC API でサーバ上のディレクトリ・ファイルを操作する際に FTP のアカウントで行う必要がある場合に設定します。
  • XR_FTP_DUMMY_DIR… XML-RPC API でサーバ上のディレクトリ・ファイルを操作する際に FTP のアカウントで行う必要がある場合に設定します。

ディレクトリとファイルの配置

下のとおりにディレクトリ、ファイルを用意します。( SITE_HOME を rNote-re のトップディレクトリとします。)

ディレクトリ:

  • SITE_HOME/entries/ この下にディレクトリをきってカテゴリを表現し、記事を投稿します。スキン、コメントやトラックバック等のログもここです。
  • SITE_HOME/plugins/ プラグインのファイルはこのディレクトリの中に用意します。
  • SITE_HOME/rnoteadmin/ 管理者画面用のディレクトリです。
  • SITE_HOME/style/ style-sites.css など、サイトのデザインに関わるファイルが置かれるディレクトリです。
  • SITE_HOME/cache/ サイトのキャッシュが生成されるディレクトリです。

ファイル:

  • SITE_HOME/rnote.php ブログのプログラム本体です。
  • SITE_HOME/rnoteadmin.php 管理者画面用ツールです。
  • SITE_HOME/rnote_config.php rnote.php などから参照される初期設定ファイルです。
  • SITE_HOME/rn_xmlrpc.php XML-RPC クライアントから利用するファイルです。
  • SITE_HOME/rss.rdf RSSファイルです。(自動生成されます。)
  • SITE_HOME/rnoteadmin/config.php 管理画面の「動作設定」プラグインです。
  • SITE_HOME/rnoteadmin/rnotepad.php 管理画面の「エディタ」プラグインです。
  • SITE_HOME/rnoteadmin/wb_log.php 管理画面の「ログ表示」プラグインです。
  • SITE_HOME/rnoteadmin/tb_tool.php 管理画面の「トラバ」プラグインです。
  • SITE_HOME/rnoteadmin/entries_list.php 管理画面の「エントリ一覧」プラグインです。
  • SITE_HOME/rnoteadmin/cmntcnfm.php 管理画面の「コメント承認」プラグインです。
  • SITE_HOME/rnoteadmin/access_log.php 管理画面の「アクセスログ」プラグインです。

パーミッションの設定

  • entries/ と、その中の全ディレクトリ…(0777)
  • cache/ ディレクトリ…(0777)
  • rss.rdf…(0666)
  • rnote.php… CGI版PHP で動作させる場合実行権限をつけておく。
  • rnoteadmin.php… CGI版PHP で動作させる場合実行権限をつけておく。

初回起動時の操作

ディレクトリの作成、ファイルのアップロード、パーミッションの設定が済んだら、まず最初に再構築を行います。

ブラウザで、管理者ツール(rnoteadmin.php)を実行し、管理画面を表示してください。初回なので、管理者ツールにログインする際に、IDとパスワードを入力する必要があります。 rnote_config.php に設定した管理者IDとパスワードを入力してください。

無事起動したら、「再構築」ボタンを押します。特にワーニングなどが出ず、「キャッシュファイルの再構築とRSS生成を終了しました。」と表示されれば、インストールは無事完了です。「サイト表示」ボタンを押し、ブログが表示されることを確認してください。

初回起動後も、新規記事の追加、カテゴリ追加削除、スキンの変更等々、何か変更を加えたら必ず再構築を行ってください。これを行わないと、ブログを表示したときに変更した内容が反映されません。(再構築は管理者ツールからだけでなく、ブラウザから rnote.php?mode=admin と指定してサイトを表示しても行うことが出来ます。)

バックアップ

サーバーのトラブルに備えたバックアップの方法は、entries/ ディレクトリ以下を丸ごと保存しておくとよいでしょう。( SITE_HOME/cache/ ディレクトリの中身はバックアップする必要はありません。レストアしたときに改めて再構築すればOKです。)

バックアップしてあったファイルをサーバに戻したときは、記事のログファイル( xxx.log と xxx_ref.log)のパーミッションを (0666) にして書き込み権限を加えておいてください。忘れると当該記事にコメントや追記が出来ません。


rNote-re について

rNote-re は、 Woody-Rinn さん作 rNote を冬星がいろいろといじったものです。

主な特徴:

  • PHP のカレントバージョンである PHP8, PHP7 で動作するように修正(残念ながら rNote は PHP7 以上では動作しないのです。)。
  • オンラインでの記事書き込みツールを管理画面に用意。(とみらさんの rnotepad.php の修正版。)
  • XML-RPC を用いた記事の投稿が可能。画像ファイルを挿入した記事の投稿も可能。( Open Live Writer で動作確認済み。)対応 API は MovableType, Blogger, MetaWeblog 。
  • プラグインの種別を拡張し、 rNote 標準の「ナビゲーションツール系プラグイン」( body スキンで使用)、「管理画面プラグイン」( rnoteadmin.php から呼び出される)に加え、「コールバックプラグイン」を追加。
  • 投稿されたコメントを管理画面で承認して初めて公開されるように「コメントの承認制」を導入。

rNote-re は公開する予定は今のところありません。 rNote-re に関するページは、あくまで冬星が自分で確認・参照するために作成しています。


以前、「ブログにタグクラウドを追加してみた」に書いたとおり、 rNote にタグクラウドの処理を追加したが、そのときは、 rnote.php 本体に実装して実現した。

最近、コールバックプラグインの処理を実装したので、これを使ってタグクラウドの処理もプラグイン化することにした。

rnote.php の CreateHTML() が呼ばれるタイミングで起動されるコールバックプラグインを追加し、これを "createhtml" タイプとして追加した。

このコールバックプラグインが呼ばれると、グローバル変数 $g_keyslist を、タグと参照回数の連想配列として初期化する。

一方で、スキンから呼び出される(コールバックではない)プラグインが、 $g_keyslist の内容をもとにタグクラウドを生成し出力するようにした。

今回ちょっと面白いのは、上記2つのプラグイン(コールバックプラグインとコールバックではないプラグイン)を、1つのクラスとして実装し、1つの .php ファイルの中に記述したことだ。

つまり、1つのクラスで2つの種類のプラグインを表現している。こういうこともできるのだと我ながら感心した。

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

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


rNote の検索プラグイン search.php の動作を修正した。

search.php は、各記事の .xml ファイルを全て読み込み検索処理を行うが、その際、 .xml ファイル内のタグの内容だけでなく、タグ自身も検索対象に含むかどうかを選択するフラグがある。

このフラグがデフォルトで true にセットされていた。なので、検索文字列として rNote と入力した場合、全ての記事がヒットしていた。

これでは意味がないので、 記事の .xml ファイルのタグ自身は検索対象から外すよう、フラグを false にした。

ところが、このときの動作として、

  $entry_buf = _file_get_contents(DIR_DATA . $fname);

if(!$this->bSearchTags){

$entry_buf = strip_tags($entry_buf);

というように、 strip_tags() の結果を使用して検索している。これだと、記事内の全てのタグの内容が無条件に検索対象になってしまうので、意図しない結果をもたらす。これではまずい。

そこで、検索対象とするタグを Title, Text, Addition, Keys に限定することにした。それぞれ、記事の題名、本文、追記、キーワードである。

これで、例えば rNote を検索文字列に指定した場合でも、正しく rNote が題名、本文、追記、キーワードに含まれる場合のみヒットするようになった。

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

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


cookie の処理の問題、解決 2019-08-14 (水) 18:47:06+09:00

ソフトウェア

もう解決しました(笑)。

管理画面用プラグイン化した rnotepad.php のクラスの冒頭で <script> タグで直書きされていた javascript コードを、丸ごと変数に代入しておき、 disp() メソッドで作られるページの中身に javascript 部分を追加する形にすることで、他のプラグインの実行時に影響しないようにすることができた。

直書きされているとなぜ、動作設定プラグインの実行時にも javascript が出力されてしまうかというと、動作設定プラグインで「この内容で設定する」ボタンを押した場合に、値が post され ranoteadmin.php が読み込み直されるときに、ボタンの表示部分の処理で、全てのプラグインの require_once での読み込み処理が走り、そこで javascript が読まれて出力されてしまっていた。

今回は、これを、 rnotepad クラスの disp() メソッドが呼ばれたときにだけ出力するようにしたので、他のプラグインへの影響をなくすことができたというわけだ。

意外と早く完全な解決方法が見つかってよかった。

同時に、 config.php (動作設定プラグイン)のバグも修正することができた。

こちらは、setcookie() で cookie が設定されたときに、その設定内容がリロードされるまで $_COOKIE に変更内容が反映されないことに気づかず、 filter_input(INPUT_COOKIE,COOKIE_TESTFLAG) を実行して cookie の値を取得してしまっていたため、リロードがかかるまでラジオボタンの位置の変更が反映されなかった。 $_COOKIE[COOKIE_TESTFLAG] で読み取る方法に戻すことで、修正することができた。( setcookie() 直後に $_COOKIE に変更後の値を直接代入しておく処理はオリジナルの状態から書かれていた。)

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

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