新着マーク表示プラグイン

このプラグインについて

与えられた日付が、最近の日付かどうか判別します。これを利用して、記事に新着マークを表示したりすることができます。

広告

ダウンロード

以下のリンクからプラグインをダウンロードできます。

導入方法

ファイルのアップロード

modifier.recently.phplibs/smarty/plugins/ ディレクトリ内にアスキーモードでアップロードします。

テンプレートにある日時が格納された任意の変数に recently という修飾子を追加すると、24時間以内の日時かどうかチェックされます。

パラメータ

修飾子にはパラメータを1~2つ設定することができ、それぞれ「期間」と「日時のタイプ」になります。
具体的には、条件分岐と合わせて以下のように指定します。

<!--{if $datetime|recently:7:'day'}-->New!<!--{/if}-->

$datetime には 2010-10-13 13:30:15 のような日時が格納されている場合、その日時が現在から7日以内かどうかをチェックします。また、上の例では7日以内なら New! という文字が表示されます。

また、例えば

<!--{if $datetime|recently:3:'day'}-->New!<!--{/if}-->

このように設定すると、日時が3日以内かどうかチェックされます。期間は任意の数値を指定することができます。期間を省略すると 1 が指定されたとみなされます。

また、日時のタイプには dayhourminute のいずれかを指定することができます。日時のタイプを省略すると day が指定されたとみなされます。それぞれの意味は以下のとおりです。

日時のタイプ 意味
day 期間を日付と解釈する
hour 期間を時間と解釈する
minute 期間を分と解釈する
second 期間を秒と解釈する

つまり、

<!--{if $datetime|recently:10:'hour'}-->New!<!--{/if}-->

このように指定すると、10時間以内かどうかチェックされます。

導入例

初期ページに表示されるエントリー一覧のうち、3日以内に投稿されたものに新着マークを表示したい場合、templates/internals/default/default.html の90行目あたりにある

<!--{if $entry_tags[$entry.id]}-->
<li>タグ:<!--{foreach from=$entry_tags[$entry.id]|smarty:nodefaults item='entry_tag' name='loop'}-->~略~<!--{/foreach}--></li>
<!--{/if}-->

この直後に、一例ですが以下のコードを追加します。

<li><!--{if $entry.datetime|recently:3:'day'}--><em>New!</em><!--{/if}--></li>

$entry.datetime には記事の日時が格納されているので、これを元に判断しています。どの変数に何のデータが格納されているかは、データベース構成の解説を参考にしてください。

削除方法

このプラグインは、以下の手順で削除できます。

ファイルの編集

テンプレートに追加したコードを削除します。

ファイルの削除

以下のファイルを削除します。

  • libs/smarty/plugins/modifier.recently.php

更新履歴

  • 最新版との差分ファイルを一覧表示できます。
  • 使用している新着マーク表示プラグインのバージョンを入力してください。
  • 更新内容の詳細は、以下の更新履歴を確認してください。
差分調査
使用しているバージョン

2010/10/13 Ver 1.0.0

正式版を公開しました。