2011年11月1日火曜日

Modx 指定した時間に、変更する。


使用テンプレート内の、一部を変更するスニペット


ページの一部だけに、時間で変更できる表示を入れたかった。
キャンペーンとかで、ページそのものを表示させるには、公開開始日時の設定で、対応出来ますが、表示の一部のみ(バナーや、時間指定のログインパーツなど)を変更したい時に使えます。



<?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

  • このエントリーをはてなブックマークに追加


Facebookへ投稿