一通り、Ethna を用いたページを作ることが出来るようになった(と思う)。
状態遷移関係は、やっぱり紙に起こさないと大変な事態になりかねない。気をつけなければ。続いてログイン処理。これはセッション情報に、どういうものを残すかが重要。サーバは恐らく共用ではないから、$_SESSION に色々書き込んでも危なくは無いと思うけど……。共用サーバでやると、色々危険だからねぇ。
ログイン処理関係で、とりあえず Sample_Action_AbstractLoginArea というクラスを作った*1。こいつは authenticate メソッドを実装していて、他(prepare と perform メソッド)は abstract になっている*2。これを extends することで、ログインしていないときは自動的にログイン画面へと遷移するのである。
画面遷移の方は案外ラク。テスト用に message テンプレートを作った。これは next と message という Smarty 変数を受け取り、message を表示しつつ 1 秒後に next へジャンプするようにした。丁度 GREE のログイン処理みたいな感じである。今は mode 引数でアクションを決定するようにしているが、複数のエントリ・ポイントを持つことが出来るのであまり必要ないかも。毎回、引数にアクションを渡すのは面倒だしね。
あと、同一テンプレート内にログインしている時としていない時で、別々のメッセージを表示できるような Smarty 関数を作った。これは使うのかどうか分からないけど、同一テンプレート内に共存しちゃって良いのかが疑問。
Related Entries
There is not related articles.
Trackbacks
Trackback URI: http://blog.c--v.net/trackback/2006/08/15/1
There is no trackback.
There is no comment.