
PHP121をGeeklogのプラグインにする過程で,本来,PHP121が管理しているアカウント情報をGeeklog側で一括管理することにした。Geeklogの $_TABLES['users'] テーブルにフィールドを追加するのが一番手っ取り早いのだが,プラグイン開発者ガイドでは堅く禁止されているので,別にアカウント用のテーブルを作ることにした。
そして,Geeklog側でアカウントの作成・編集・変更が行われたときに,プラグイン側に通知してもらって必要な処理を行えばよい。そのためには,プラグインの functions.inc で,それぞれ,plugin_user_create_{plugin}($uid), plugin_user_delete_{plugin}($uid), plugin_user_changed_{plugin}($uid) 関数を実装すればよい({plugin}はプラグイン名,$uidはユーザーID)。
Geeklogにログイン・ログアウトしたときに,PHP121にもログイン・ログアウトさせるには,plugin_user_login_{plugin}($uid), plugin_user_logout_{plugin}($uid) を実装する。
このプラグインは JavaScriptも使用するので,Geeklogの <HEAD>?</HEAD>内に挿入するために,plugin_getheadercode_{plugin}() を実装する。
以上のことを行ったつもりだが,ユーザーを新規登録したときに,PHP121側にパスワードの情報がコピーされない。プラグインが呼び出されるタイミングの問題かもしれないが,まだ先は長そうだ。
タグ:
php121 アカウント geeklog