2つのテンプレートを使う

2006/05/24 | mojavi2

通常ウェブデザインをする際は、基本的な枠組み(例えばヘッダとフッタとか)は全ページで共通したものを使用し、その間に挟まれるコンテンツ部分のみを変更するのが一般的だ。つまり共通するテンプレートを用意し、コンテンツ部分のテンプレートをころころ入れ替えるわけだ。
mojaviでこれを実行するには以下の方法を使えばよい(と思う)。記述はviewクラスの中に記述する。

(1) $myRenderer->setTemplate(‘contents.tpl’);
(2) $myRenderer->setMode(RENDER_VAR);
(3) $contents=$myRenderer->fetchResult($controller,$request,$user);
(4) $myRenderer->setMode(RENDER_CLIENT);
(5) $myRenderer->setAttribute(‘contents’,$contents);
(6) $myRenderer->setTemplate(‘global.tpl’);
(7) return $myRenderer;

ちなみにcontents.tplはコンテンツ部分のみのテンプレート、global.tplは枠のテンプレートになる。通常の場合であれば(1)のあとに(7)がきて終わりになる。そこに(2)から(6)のスクリプトを足す。
(2)でレンダリングモードを変更する。ActionChainで呼ばれない限り、レンダリングモードは通常RENDER_CLIENT(CLIENTに向けてレンダリングする)になっている。それを一時的にRENDER_VAR、すなわりVAR(変数)に向けてレンダリングするように変更するのだ。この一時的な設定変更により(3)でレンダリング内容を変数に格納することができる。
変数に格納したらレンダリングモードを元に戻し(4)、取得したコンテンツを枠のテンプレートに格納する(5)(6)。
これでできあがり。

「SCRIPT_PATH」設定

2006/04/27 | mojavi2

mojaviの設定ファイルにSCRIPT_PATHをdefineする箇所がある。
デフォルトでは’/index.php’等と設定されていて、そのまま放置していても困ることはない。ただしある一つの関数を除いては・・・。
mojavi2の使用ガイドみたいなページは最近いくつか存在するけど、ほとんどこれに関する記述を見たことがない。しかし正しく設定しておいたほうが便利なのです。
ここはベースとなるindex.phpへのURLを正しく表記すべきところです。よってデフォルトでは以下のようになっているところを、
define(‘SCRIPT_PATH’,’/index.php’);
正しく、
define(‘SCRIPT_PATH’,’http://example.com/index.php’);
修正すべき。

この設定はcontrollerクラスの中のgenURL関数に絡む。mojaviでは一つのアクションから別のアクションに遷移するのに、3つの方法がある。
○action chain
○$controller->forward
○$controller->redirect
ここでどうしてもredirectで処理したい場合がある訳だが、そのときに引数で指定するのは「正しいURL」となる。ヘッダ関数で処理されるからだ。
例えば外部のURLにリダイレクトするのであればそのまま表記してしまえばよいが、内部でまわしたいときは、いちいちURLを環境に応じて書き換える必要があるわけ。そこで便利なのがgenURL関数。引数をQueryStringとしてURLを生成してくれるのだが、このgenURL関数がSCRIPT_PATHを使っているというわけ。
やっぱり正しく設定したほうがいいに越したことはないです。

認証モジュールIcUser

2006/04/24 | mojavi2

mojaviにもいろいろできる認証モジュールがあるのを見つけた。
IcUser
adodbを使う必要があったりといろいろと癖がありそうだが、調べてみる価値はありそう。

mojaviとMBfpdi

2006/04/17 | mojavi2

mojaviを使って、かつPDFで出力した場合が生じたときに問題が発生した。先日作ったMBfpdiで日本語を出力しようとしたのだがエラーでうまくいかない。「なぜだろう?」といろいろ思案した結果、MBfpdiで定義(や読み込み)された変数のスコープで不具合が出るような感じ。これを何とか修正した。せっかくだからpatchをつくって、ダウンロードできるようにしておいた。
パッチ

注目のZend Framework

2006/04/17 | Zend Framework

今、PHPで最も注目すべきカテゴリの一つがコレ「Zend Framework」。PHP5の環境で最も有力視されるフレームワークだ。なんといってもZendが構築しているので大本命になることほぼ間違いなし。現状はまだα版程度なのでビジネスで使える程度ではないと思われる。
とはいってもそろそろ状況を追いかけていかないといけないと思われるので、メモを残すことにした。
とりあえず関連するページを見つけたのでメモメモ。
http://trac.ishinao.net/webxp/wiki/

Smarty関連とデータベース関連の仕組みについて解説がある。メインは別のフレームワークらしい(WEBXP)。しばらくの間、追いかけておきたいサイトだ。


守谷市(まちの情報ポータル) 無料アンケートレンタルjpForm.net