SOY CMS / SOY Shop

ブログトップ

SOY Shopプラグインの解説 パーツモジュールとHTMLTemplatePageについて

2014年02月21日

前回、カレンダープラグインの公開側表示はパーツモジュールを利用している

という内容を記載しました。

SOY Shopプラグインの解説 公開側ページの全ページで表示


今回はcalender_displayというモジュールに記載されていた内容を見ていきます。




/soyshop/webapp/src/module/site/common/calendar_display.php

を開くと一行目に


$obj = $page->create("soyshop_calendar_display", "HTMLTemplatePage", array(
	"arguments" => array("soyshop_calendar_display", $html)
));

$pageにはページのオブジェクトが格納されており、create関数の第二引数にHTMLTemplateと指定して呼び出すと

すでに読み込まれているHTMLファイルにcreateAdd関数でsoy:idを追加できます。

SOY App開発の説明 管理画面側に一覧ページを作成する。


$pageにはトップページでは、_home_pageオブジェクトが格納されています。

_home_pageオブジェクトのファイルは/サイトID/.page/_home_page.phpにあります。


今までの連載の内容だと、

IndexPage.class.phpとIndexPage.htmlという同名の対のファイルを作成して、

IndexPageクラスはWebPageクラスを継承する。

WebPageのcreateAdd関数でsoy:idを作成するという手順でした。


今回はHTMLTemplatePageを使う理由ですが、

$htmlに格納されているHTMLの記述には表示に関するさまざまな処理をされており、

今回のモジュールで初めて読み込まれるわけではありません。


そこで、

HTMLTemplatePageで新たな処理を追加するということになります。

HTMLは第三引数に入れる配列の第二引数に入れ、

createの第一引数と第三引数に入れた配列の第一引数のsoyshop_calendar_displayですが、

ここには処理が分かりやすい文字列を入れてください。


createにより取得したオブジェクトからcreateAddを行うと、

公開側のHTMLで独自のsoy:idを使えるようになります。


$obj->addLabel("current_calendar", array(
	"soy2prefix" => SOYSHOP_SITE_PREFIX,
	"html" => $currentCalendar
));

今回のHTMLTemplatePageはモジュールだけでなく、プラグインでも良く使いますので、次はプラグインでの例を説明したいと思います。