使用テンプレート内の、一部を変更するスニペット
ページの一部だけに、時間で変更できる表示を入れたかった。
キャンペーンとかで、ページそのものを表示させるには、公開開始日時の設定で、対応出来ますが、表示の一部のみ(バナーや、時間指定のログインパーツなど)を変更したい時に使えます。
<?php
$output = & $modx->documentOutput;
$time_stamp = mktime(17,3,0,11,1,2011); //変更時間
$now_time = time();
if ($now_time <= $time_stamp) {
return '変更前の指定' ; //変更時間前
} elseif($now_time >= $time_stamp) {
return '変更後の指定' ; //変更時間後
} ;
?>
$time_stamp = mktime(時,分,秒,月,日,年);
変更前の箇所に、現在使用しているデータをチャンクやテンプレート変数を使って指定します。
変更後に表示したい内容のこれまたチャンクやテンプレート変数を設定して、このスニペットを使用しているテンプレート内の変更箇所に入れれば出来上がり。
テンプレート内に記述する時は、スニペットの表記では
[[スニペット名]]
と記述しますが、この記述方法では、キャッシュがクリアされない為に、指定の時間になっても、表示が切り替わりません。
そこで、下記のように記述してください。
[!スニペット名!]
これで、キャッシュがクリアされるので、指定時間になれば、表示が切り替わります。
可能なかぎりシンプルにしました。
本当は指定時間に、使用テンプレートが変わるのが理想ですが、さすがにそこまでの物は作れないので…
神奈川県を中心として主に横浜・川崎・東京23区西部の中小企業・個人事業主向けホームページを制作しております。 横浜本田WEB
横浜本田WEB Facebookページ
http://www.facebook.com/hondaweb?fref=ts