Movable Type 備忘録

 

 新規エントリなどにイメージを付けてみる

こちらのPHPで新規エントリに「NEW」イメージを期間表示させるで改良版を紹介しています。

以前、MovableTypeをPHP化するでPHP化するメリットとして、新着エントリになどのイメージを動的に付けられる…と紹介しました。

今回、実際にやってみましたので、ご紹介したいと思います。

カスタマイズ方法

このスクリプトはわたしが初めて作った自前のPHPスクリプトです。
このPHPスクリプトは、エントリの更新時間を元に、48時間以内なら を表示し、96時間以内ならを表示するようにしています。

ぶっちゃけていうと、わたしは毎日更新しているわけではないので、この時間はわたし仕様になっています。
時間の変更は自由にできますので、自分にあった時間に設定してください。イメージも自由に追加/変更できます♪

このカスタマイズは、PHP化されたブログでないと対応できませんので、注意してください。

  • まず、イメージを表示するためのテンプレートを作成します。
    MovableType(ムーバブルタイプ)の管理画面から画面左の「テンプレート」をクリックして、画面上部にある「テンプレートを新規作成」というリンクをクリックしてください。

    入力する内容は以下の通りです。

    テンプレート名: New Link Image
    出力ファイル名: newlink.php
    このテンプレートにリンクするファイル: 未記入でいいです。
    テンプレートの内容: 以下のコードをコピペしてください。
    <?php
    function newlink($entry_date, $type = '0')
    {
    # エントリの日付から時間を取得します。
    $entry_time = strtotime($entry_date);
    # 現在時刻を取得します。
    $now = time();
    # 2日以内の場合
    if ( $now - $entry_time < 48 * 3600 )
    {
    print <<< HERE
    <img src="<$MTBlogURL$>images/new.gif" width="23" height="7" border="0" alt="" />
    HERE;
    }
    # 4日以内の場合
    elseif ( $now - $entry_time < 96 * 3600 )
    {
    print <<< HERE
    <img src="<$MTBlogURL$>images/check.gif" width="37" height="7" border="0" alt="" />
    HERE;
    }
    }
    ?>
    
    

    青い字の部分が、わたし仕様の時間になっています。
    赤い字の部分が条件に一致したときに表示されるイメージを表示しています。

    イメージに限らず、自分好みに自由に変更してください。

    緑の字は、テンプレートから任意の引数を渡すことで、スクリプト内で自由に何かできるように追加しているものです。
    今は使っていません。デフォルトで「0」が設定されるようになっています。

    入力したら、保存して再構築します。

  • 次に、上記スクリプトを表示させたいテンプレートに埋め込みます。
    ヘッダ部( <head>~</head> )の間に以下のコードを追加してください。

    <?php include('<$MTBlogSitePath$>newlink.php'); ?>
    
    
  • 最後に、イメージを動的に表示させたい箇所に以下のコードを追加します。

    <?php newlink('<$MTEntryDate format="%Y/%m/%d %H:%M:%S"$><$MTBlogTimeZone$>', '1'); ?>
    
    

    青い字の部分がエントリの日付で、緑の字が今は使っていない予備の引数となります。
    埋め込みましたら、保存して再構築します。

以上で、わたし仕様の時間で動的に表示するイメージを変えられるようになりました。

今回、初めてPHPでスクリプトを作ってみましたが、結構分かりやすくて簡単でした♪

ネットで検索すれば、初心者向けに詳しく説明してくれているサイトがたくさんありましたので、みなさんもTRYしてみてくださいな♪
それに、こんなのあったらいいなぁ~なんてものが自分で作れる!? ようになっちゃうかも、です。

 Trackback Pings(0)

No trackbacks found.

 Comments(0)

No comments found.

 Post a Comment

コメント用フィード