前回のSOY CMSを介さずにSOY2HTMLを使ってみるでSOY CMSに組み込まれているSOY2の機能をSOY CMSを介さずに利用できることを紹介しました。


SOY2HTMLという言うのは<!-- soy:id="***" /-->のことで、

このタグこそがSOY CMSの開発理念にあるデザイナとプログラマをつなぐ肝となる。

SOY CMSの開発秘話前編


SOY2HTMLを使用出来るようになったら、

一緒に利用したいものとして<!-- cms:ignore -->があるだろう。


cms:ignoreは自作テンプレートをブラウザで表示した時は表示され

SOY CMSに自作のテンプレートを組み込んだ際に表示されない個所を指定する際に重宝する。

ブログページを作成する(ブログトップ) - SOY CMSを使ってみよう


それでは早速cms:ignoreの基であるIgnoreプラグインを有効にして使用してみる。




root
├── index.php
└── webapp
    ├── cache
    ├── lib
    │   └── soy2_build.php
    ├── pages
    │   ├── TopPage.class.php
    │   └── TopPage.html
    └── src

前回作成したコード群で、index.phpに諸々の設定を記載したので、引き続き設定を追加する。


<?php
define("WEBAPP_DIR", dirname(__FILE__) . "/webapp/");

//include SOY2
if(!class_exists("SOY2")) include_once(WEBAPP_DIR . "lib/soy2_build.php");

//configure SOY2
SOY2::RootDir(WEBAPP_DIR . "src/");	//今は使わないけれども一応
SOY2HTMLConfig::PageDir(WEBAPP_DIR . "pages/");
SOY2HTMLConfig::CacheDir(WEBAPP_DIR . "cache/");

//soy:ignore
SOY2HTMLPlugin::addPlugin("ignore", "IgnorePlugin");

//ここでSOY2HTMLを使ってみる
$page = SOY2HTMLFactory::createInstance("TopPage");

ob_start();
$page->display();
$html = ob_get_contents();
ob_end_clean();

echo $html;

前回記載したSOY2HTMLConfigの下の行に

SOY2HTMLPlugin::addPlugin("ignore", "IgnorePlugin");を追加してみると、

HTMLファイル内で<!-- soy:ignore="***" -->が使用できるようになります。

※***には任意の文字列を入れます。何でも良いです。


それでは早速soy:ignoreを使ってみる。


前回作成したTopPage.htmlを下記のように改変してみます。


SOY2HTMLで表示してみるよ。<br>
結果は次の行↓<br>
<!-- soy:id="greet" /-->

<!-- soy:ignore="test" -->
<br>Ignoreプラグインを使ってみる
<!-- /soy:ignore="test" -->

開始タグと終了タグのsoy:ignore="***"の***の個所をtestにして合わせた上で、

ブラウザで該当するページを表示してみると、



soy:ignore="test"で囲った個所は意図通り表示されなかった。


TopPage.htmlファイルをサーバを介さずそのままブラウザで表示してみると、



soy:ignore="test"で囲った個所は表示されている。

これも意図通りの表示となった。


ここで更に見てほしいのが前回挿入したsoy:id="greet"の表示がないこと。

ブラウザでそのまま表示した際にSOY2HTMLのHTMLLabelは実行されない。


これでデザイナの方によりわかりやすいテンプレートを渡すことができるようになったはず。