Movable Type
最新のエントリーに「NEW!」マークを付けるカスタマイズをしてみました。
文字列を設定した一定の長さにトリミングするプラグイン「trimj.pl」を導入した後、何気なく「ブログ簡単パワーアップ Movable Type スーパーカスタマイズテクニック」を読んでいると、ページをPHP化している場合のみ限定と言うことで、最新のエントリーに「NEW!」マークを付けるというカスタマイズ方法が掲載されていて、割と簡単に追加できそうだったので、やってみました。しかし、いざやってみると自分を追い込んでしまったような気になって仕方ありません。「NEW!」が消える前エントリーしなきゃって思ってしまうのですよ。やめた方が良かったかな…。
それでは、自分なりにアレンジした所の覚え書きも兼ねて、設置手順を書いておきます。興味がありましたらやってみて下さい。プラグインとか噛ましてないので、ページをPHP化していれば、どんな環境でも動くはずです。
まず、「NEW!」マークを出力するPHPスクリプトのテンプレートを作ります。環境設定のテンプレートに入って、インデックスを選択、そこでテンプレートの新規作成をします。「テンプレートの名前」を「NEWマーク出力」、「出力ファイル名」を「print_new.htm」と書き込みます。次にテンプレートの内容に下記のスクリプトを書き入れます。
<?php function print_new($o_date) { $o_time = strtotime($o_date); $now = time(); if ($now - $o_time < 48 * 3600) { print <<< HERE <span class="new-mark"> New! </span> HERE; } } ?>
この状態だと、「NEW!」マークの表示時間は48時間になってます。これを変更したい場合は、if ($now - $o_time < 48 * 3600)部分の48のところを、24時間だと24、72時間だと72というように書き換えればいいです。これで問題無ければ保存と再構築を行って、ファイルをサーバに作成しておきます。
次に、上記の<span class="new-mark">に対応した、「NEW!」マークを表示させるためのCSSを書きます。CSSが書かれているテンプレートを開いて下記を書き加えます。
.new-mark { font-size: 0.75em; color: #FFFFFF; background-color: #FF9900; margin: 0px 0px 0px 5px; padding: 1px; }
これが終わったら、「NEW!」マークを表示させたいテンプレートのヘッダー部分(<head>〜</head>)に下記のテンプレートを書き加えます。
<?php include('<$MTBlogSitePath$>print_new.htm'); ?>
次に、エントリーに「NEW!」マークを表示できるようにしていきます。どこでも設置できるようなんですが、考えられる所と言えば、エントリータイトルの後ろとか、エントリーの日付の後ろぐらいですかね。自分の場合は、エントリータイトルの後ろにしました。場所を決めたら、下記をその場所に書き加えます。
<?php print_new('<$MTEntryDate format="%Y/%m/%d %H:%M:%S"$><$MTBlogTimeZone$>'); ?>
これで、設置完了。後は、「NEW!」マーク出力の処理を入れたテンプレートの部分を再構築をかけて、最新のエントリーに「NEW!」マークが表示されていたら成功です。