スニペットを作る changepage
ある時間になったら指定のドキュメントが公開となる、という処理はドキュメントの公開の日時を指定しておけば簡単にできます。
ですが、ホームページを運営していると、特定の日時になったら、この内容をこの内容に切り替えたいという要望が多い事に気づきます。
そこで簡単にそれを実現するべく、スニペットを用意してみました。
$ex_startDocId = isset($startDocId) ? intval($startDocId) : NULL;
$ex_endDocId = isset($endDocId) ? intval($endDocId) : NULL;
$ex_exchangeDate= isset($exchangeDate) ? strtotime($exchangeDate) : NULL;
if(!$ex_startDocId){
return "";
}//END_if
if($ex_endDocId){
if($ex_exchangeDate){
//変更を行う用意
if(time() > $ex_exchangeDate){
return "[~".$ex_endDocId."~]";
}//END_if
}//END_if
}//END_if
return "[~".$ex_startDocId."~]";
上記がスニペットコードになります。
呼び出し側は
[ [exchangepage?
&startDocId=`現状のドキュメントID`
&endDocId=`変更したいドキュメントID`
&exchangeDate=`2008/8/8/ 8:8:8` ] ]
とします。
これにより、exchangeDateで指定した日時がくるとendDocIdのドキュメントに切り替わります。
コールはリンクタグのhrefに渡してあげればよいでしょう。
上記では簡単にコーディングしてしまいましたが、もし受け付ける情報をチェックする必要があるような場合は取得IDを$modx->getDocument()等で一度データが取得できるかどうかなどの確認作業を行った方がよいでしょう。
ここでは管理者が入力するのでIDのドキュメントは存在しており公開されている、という事を前提としています。
2008年 12月 12日ドキュメント作成
2008年 12月 12日ドキュメント更新