Movable Type 備忘録

 

 PHPで新規エントリに「NEW」イメージを期間表示させる

以前、新規エントリに「NEW」イメージを期間表示させるで、CGIスクリプトによる新規エントリを期間限定でNEW イメージを表示する方法を紹介しました。

今回は、PHPによるNEWイメージを表示させてみようと思います。

PHPを使うメリット

基本的な機能は、PHPスクリプトにしてもCGIスクリプトにしても同じです。
今日の日付とエントリが投稿された日付を比較して、今日から何日以内だったらNEWイメージを表示させる…というだけです。

以下にPHPスクリプトのメリットを挙げてみます。

  • サーバー側で動作するスクリプトです。(メリットなのかな!?)
    ページアクセスにより表示されるページが動的に生成されます。(条件によりページ生成可能)

  • CGIスクリプトlに比べると高速に動作し、サーバーの負荷も軽いそうです。

カスタマイズ方法

実は以前にも、わたしが初めて作ったPHPスクリプトを紹介したことありますが、友人の助言を元にもっとシンプルに改良してみたんです。

まず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")));
    if ( $entry_date >= $result ) print "<img src=\"<$MTBlogURL$>image/new.gif\">";
}
?>

青い時の部分を表示させたいイメージのURLに変更します。
上記コードをテンプレートで共有化してもいいかも、です。そうすれば、メインページだけでなく、月別・日別アーカイブなどにも使えますね。
テンプレートで共有化した場合には、以下のコードを<head>~</head>の間に追加します。

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

次に、NEWイメージを表示させたいところでPHPスクリプトを呼び出すコードを追加します。 例えば、最近のエントリ一覧にNEWマークを表示させてみます。

以下は、わたしが使用しているnewマーク付きのエントリ一覧のコードです。

<MTEntries lastn="20">
    <span style="color:#444444; margin:1px; padding:1px;">&raquo;</span><a href="<$MTEntryPermalink$>" title="e<$MTEntryID$>"><$MTEntryTitle$></a><?php print_new("<$MTEntryDate language='en' format='%Y%m%d'$>",3); ?><br />
</MTEntries>

青い時の部分がPHPスクリプトを呼び出して、NEWマークを表示させるコードです。赤い字の部分は、経過日数を指定します。
上記コードでは、3日間エントリにはNEWマークを表示するよう指定しています。

以上で、PHPスクリプトによる新規エントリにNEWマークをつけることができました。
表示結果だけがページに反映されるので、不要となったコードもページ内には入らないので、わたしはPHPスクリプトを好んで使っています。とはいっても、まだまだ勉強中だけどね。

 Trackback Pings(2)

from caraldo.net | MT Blog

PHPスクリプトを使ったMTのカスタマイズをご紹介。 スクリプト自体は参照先のM...

from 6畳キッチンより愛をこめて

新しいエントリーにNEWマークをつける。投稿○日以内のエントリーがあるカテゴリーにもNEWマークをつける。

 Comments(0)

No comments found.

 Post a Comment

コメント用フィード