PHPで新規エントリーにNewアイコンを一定期間表示する方法

by k.[MovableType]
2007-07-13 00:57:58

PHPスクリプトを使ったMTのカスタマイズをご紹介。

スクリプト自体は参照先のMovableType備忘録様で作成されたものです。

PHPで新規エントリーにNewアイコンを一定期間表示する方法

今回行ったカスタマイズはPHPを用いて新規エントリーにNewアイコンを一定期間表示するというものです。

PHPを使用するにあたってはMTのPHP化が必要になります。
PHP化については小粋空間: Movable Type の PHP化(その1)を参照して見て下さい。

そんなに手間のかかるものではありません。


参照元記事
MovableType備忘録: PHPで新規エントリに「NEW」イメージを期間表示させる

PHPスクリプトの作成

作成と書きましたが実際には下記ソースをコピーペーストで問題ありません。
<head>〜</head>の間に記述して下さい。

<?php
function print_new($entry_date,$days=3)//初期値
{
$result=date("Ymd", mktime( 0,0,0,date("m") ,date("d") - $days, date("Y")));
//$resultに$daysを引いたmktimeをセット
if ( $entry_date >= $result ) 
//$entry_dateと$resultの比較
print "<img src=\"<$MTBlogURL$>img/new_ico.gif\">";//プリント文でイメージタグをはき出す
}
?>

「"」の前の「¥」でエスケープしています。

コメントアウト部分(青字)ですが、間違いがありましたらご指摘下さい。
色々調べて書いていますが、まだ自信をもってアウトプットできるレベルではありません。

では何故書いているかというと間違えを恐れるあまり思考のアウトプット速度を遅くしていませんか?:DESIGN IT! w/LOVEに触発されているからです。

mktime()は引数で指定された時間をUNIX時間 (1970年1月1日0時からの経過秒数) で返します。

書式は以下のようになります。

mktime (時, 分, 秒, 月, 日, 年, サマータイム);

テンプレートとしてモジュール化

このPHPスクリプトを複数ページで使う場合は修正の事も考えて
テンプレートとしてモジュール化する事をお勧めします。

  1. MTのインデックステンプレート作成画面で「テンプレートを新規作成」
  2. PHPスクリプトを貼り付け任意の名前を設定(拡張子がphpならOK)

次に表示させたいページの<head>〜</head>部分に以下のコードを追加します。

<?php include('<$MTBlogSitePath$>print_new.php'); ?>

include関数で外部ファイルを読み込んでいます。
ファイルが無い場合エラーが出てしまうので先にテンプレートを作成してから記述して下さい。

あとは実際に画像を表示させたい場所に以下のコードを貼り付ければOKです。

<?php print_new("<$MTEntryDate language='en' format='%Y%m%d'$>",3); ?>

青字部分がエントリー投稿から画像を表示している日数です。
ここは自分の投稿頻度に合わせて調整して下さい。

PHPの事はまだ勉強し始めたばかりで記事にするのが大変です。

[*]前の記事 | [#]次の記事
TOP
コメント投稿
Powered by MT4i 3.0.8X1
Template Design by mbdb