Steamer Lane Studio技術備忘録Movable Type

MTの投稿日とプラグインによる再構築日指定による記事(とか)の時限表示

movable-type MTの投稿日とプラグインによる再構築日指定による記事(とか)の時限表示
最終更新日: 2023年4月15日

MTで投稿日とプラグインによる再構築日指定による記事(excerpt)の時限表示。
案件でそうした一覧というかリストをトップページに羅列するコードが必要になったが、MTのシステムのみでは組めない/指定時にサイトの再構築をというのが設定の設計が面倒なので手っ取り早く負荷の少ないphpを使ったコードを組んだ。複数表示可能だが、入れ子ごと表示・削除ができる様に組んだ。
開始は一番早いものを抽出、終了は一番遅いものを抽出。

<?php
$foo = max( array(<$MTUnpublishedDate format="%Y%m%d%H%M%S"$>) )."\n";
$bar = max( array(<$MTEntryCreatedDate format="%Y%m%d%H%M%S"$>) )."\n";
?>
<?php
$sdays=min(99999999999999,);
$edays=max(0,);
$start_date = $sdays;
$end_date = $edays;
?>
<!--
<? if( date("YmdHis") >= $start_date && date("YmdHis") <= $end_date ) { ?>
<?
$start_date = date('<$MTEntryDate format="%Y%m%d%H%M%S"$>');
$end_date = "<$MTUnpublishedDate format="%Y%m%d%H%M%S"$>";
?>
<? if( date("YmdHis") >= $start_date && date("YmdHis") <= $end_date ) { ?>
<?php
//対象文字列
$target = <<<EOT

EOT;
//パターン
$pattern= '/<h3.*h3>/';
//パターンマッチ&抽出
preg_match($pattern, $target,$res);
//結果表示
//var_dump($res);
$strn = $res[0];
?>
<?php echo $strn; ?>
<? } ?>
<? } else { ?>
無い場合の記述、基本空白
<? } ?>

phpのコードの中にhtmlでの入れ子なんかを適当に書く。