minihakuの拡張その5
さて、edituserhook.phpを読んでいく。
$allowed_requests、$stop_reason_extrasの記述はregisterhook.phpと同じ。
次にuidの取得。ここでは「編集」なので、この画面を使用する人は当然ログインしているわけだからuidを取得できるわけだ。
設定ファイルを読み込んだ後、$xxxxxx_optionsの設定はフォームで使用される選択式設問用のオプション値の準備だ。
次は処理振り分け用の設定($op)。$opが設定されていなければ’editprofile’を設定する(フォームを表示するため)。
それから各種設定を変数へ格納する。
ここからが本格的な処理になる。
最初のif節はpostで送られてきた情報を、あらかじめ設定された$allowed_requestsと比較して変数に格納していく。
そして次のif節。実際の保存処理に移るわけだが、if節の中の最初の処理はエラーチェック。エラーがあったらもう一度フォームを表示することになる。
実際の保存処理はきわめて簡単だ。あらかじめ用意された関数を使えばよい。具体的には以下の記述。
$edituser =& $member_handler->getUser($uid);
$edituser->setVar(‘url’,$allowed_requests[‘url’],true);
・
・
・
$member_handler->insertUser($edituser);
これでOK。後付で追加した項目は都度UPDATE構文で処理する。
最後の部分はフォームの表示だけ、となる。
minihakuはこれで全てだ。ユーザ情報の表示(userinfohook.php)はプログラムこそ用意されて入るが中身は空。つまり一度はhookをかけるが、何もせずXoop標準の処理に戻して、デフォルトの表示方法をとっているようだ。
もちろん自分でプログラムを作成して、userinfohook.phpに記述しておけば独自の表示処理をかませることが出来る。無論テンプレートも別途用意してやる必要があるわけだが・・・。
minihakuを読んでみて、Xoopsのことがずいぶん理解できたような気がする。以降の新規モジュール作成の際にはきっと役立つだろう。
これから仕様決め。今月中に形を作りたいものだ。