MEGU Reply #1, 5 years, 1 month ago
自分で、試したり、ドキュメントを読んで、自分なりに理解したことを書いています。
ので、間違いも多くあるかも知れません。間違いがありましたら、どうぞ、ご指摘下さい。
また、書いてある内容を試す場合は、自己責任でお願い致します。
尚サンプルは、こちらに書き出しています。
http://www.liolion.info/modx/resource/countdown.html
テスト環境: サーバ:さくらインターネット
PHP 4.4.4
MYSQL 4.0.27
MODX:0.9.5
AntispamEmail (1.0)
概要:
CountDownは、指定した日(基準日)までの日数を表示します。残り日数によってメッセージを変更できます。
またメッセージはチャンクを使い独自に指定できます。チャンクに画像を指定すればバナーチェンジャーとしても利用できます。
コード:
基本的な書式: [!CountDown? &end_date=`2007/05/09`!]
パラメータ:
end_date 基準日を指定します。この日に向かってカウントダウンします。
msg 表示させたいメッセージをチャンクで指定します。デフォルト「Countdown %d days 」
event 残りの日数によって変更するメッセージをチャンクで指定します。デフォルト「なし」。
基準日(当日)はカウント「0」が表示されるので、サンプル(後述)のように「発売日まであと×日です」などとする場合は、
このパラメータで「0」の場合のメッセージを指定しておくと良いでしょう。
outmsg 基準日を過ぎた場合のメッセージをチャンクで指定する。デフォルトなし。
指定しなければ、基準日を越えた時点でメッセージは表示されなくなります。
サンプル1:
スニペットコールサンプル: [!CountDown? &end_date=`2007/05/09` &msg=`cd_msg` &event=`cd_evnmsg` &outmsg=`cd_outmsg`!]
cd_msg: <p>発売日まで あと%d日</p>
cd_evnmsg: 0 => "<p>本日発売です</p>",1 => "<p>明日発売です</p>"
cd_outmsg: <p>ただいま発売中です</p>
サンプル2: 画像を利用することも可能です。
msg で呼ぶチャンクサンプル <p><img src="image1 URL" /></p>
event で呼ぶチャンクサンプル 0 => '<p><img src="image2 URL" /></p>',1 => '<p>明日発売です<img src="image3 URL" /></p>'
※値を囲むクォーテーションに注意して下さい※ outmsg で呼ぶチャンクサンプル <p><img src="image4 URL" /></p>
指定日を越えた時点で画像を入れ替える スニペットコールサンプル [!CountDown? &end_date=`2007/04/25` &msg=`cd_msgimg` &outmsg=`cd_outmsgimg`!]
アウトプットサンプルはこちら http://www.liolion.info/modx/resource/countdown.html#sample02
ので、間違いも多くあるかも知れません。間違いがありましたら、どうぞ、ご指摘下さい。
また、書いてある内容を試す場合は、自己責任でお願い致します。
尚サンプルは、こちらに書き出しています。
http://www.liolion.info/modx/resource/countdown.html
テスト環境: サーバ:さくらインターネット
PHP 4.4.4
MYSQL 4.0.27
MODX:0.9.5
AntispamEmail (1.0)
概要:
CountDownは、指定した日(基準日)までの日数を表示します。残り日数によってメッセージを変更できます。
またメッセージはチャンクを使い独自に指定できます。チャンクに画像を指定すればバナーチェンジャーとしても利用できます。
コード:
/* * CountDown Ver.0.3 * Developed By ZeRo(http://www.petit-power.com/ ) * Produced By MEGU(http://www.liolion.info/ ) * * event_chunk_data: * 0 => "Today!",1 => "Tomorrow!",7 => "One week!" */ $msg = isset($msg) ? $modx->getChunk($msg):"Countdown %d days"; $outmsg = isset($outmsg) ? $modx->getChunk($outmsg):""; $event_data = $modx->getChunk($event); $e = "\$evt = array(".$event_data.");"; eval($e); list($year,$mon,$day) = sscanf($end_date,"%04d/%02d/%02d"); $targetDate = mktime(0,0,0,$mon,$day,$year); $seq = ($targetDate - mktime(0,0,0,date("m"),date("d"),date("Y")))/86400; $seq = intval($seq); if ($seq < 0) { $output = $outmsg; } else { if (isset($evt[$seq])) { $output = $evt[$seq]; } else { $output = $msg; } } return sprintf($output,$seq);
基本的な書式: [!CountDown? &end_date=`2007/05/09`!]
パラメータ:
end_date 基準日を指定します。この日に向かってカウントダウンします。
msg 表示させたいメッセージをチャンクで指定します。デフォルト「Countdown %d days 」
event 残りの日数によって変更するメッセージをチャンクで指定します。デフォルト「なし」。
基準日(当日)はカウント「0」が表示されるので、サンプル(後述)のように「発売日まであと×日です」などとする場合は、
このパラメータで「0」の場合のメッセージを指定しておくと良いでしょう。
outmsg 基準日を過ぎた場合のメッセージをチャンクで指定する。デフォルトなし。
指定しなければ、基準日を越えた時点でメッセージは表示されなくなります。
サンプル1:
スニペットコールサンプル: [!CountDown? &end_date=`2007/05/09` &msg=`cd_msg` &event=`cd_evnmsg` &outmsg=`cd_outmsg`!]
cd_msg: <p>発売日まで あと%d日</p>
cd_evnmsg: 0 => "<p>本日発売です</p>",1 => "<p>明日発売です</p>"
cd_outmsg: <p>ただいま発売中です</p>
サンプル2: 画像を利用することも可能です。
msg で呼ぶチャンクサンプル <p><img src="image1 URL" /></p>
event で呼ぶチャンクサンプル 0 => '<p><img src="image2 URL" /></p>',1 => '<p>明日発売です<img src="image3 URL" /></p>'
※値を囲むクォーテーションに注意して下さい※ outmsg で呼ぶチャンクサンプル <p><img src="image4 URL" /></p>
指定日を越えた時点で画像を入れ替える スニペットコールサンプル [!CountDown? &end_date=`2007/04/25` &msg=`cd_msgimg` &outmsg=`cd_outmsgimg`!]
アウトプットサンプルはこちら http://www.liolion.info/modx/resource/countdown.html#sample02