OpenPNE PHP で作成したプログラムを組み込む」で書いたように、

/openpne/webapp_ext/modules/pc/page/hoge_foo.php に

class pc_page_hoge_foo extends OpenPNE_Action
{
    function execute($requests)
    {
    	// ここに処理を書く
    }
}

のようにすると ?m=pc&a=page_hoge_foo でアクセスできるようになります。
このときにどうやって Smarty に値を渡すのか少し戸惑ったのでメモしておきます。

Smarty タグ

通常は 「{」「}」 ですが、OpenPNE では 「({」「})」 です。

assign

$smarty->assign("var", $var);
のようにして Smarty に値を渡したいときは execute メソッド内で
$this->view->set("var", $var);
とすればOK。

display

$smarty->display("hoge_foo.tpl");
は自動的にやってくれます。

default_modifiers (escape)

また、OpenPNE の smarty オブジェクトはオブジェクト生成時に
$smarty->default_modifiers に escpae 修飾子が設定されているので、
テンプレート変数に HTML タグが設定されていて HTMLタグを出力したい場合は
({$var|smarty:nodefaults})
とすれば、escape 処理されずに出力されます。

私は HTML_QuickForm をよく使うので、form タグ関係を出したいことがありますので、その場合に使用しています。

関連する投稿