MTCountdown プラグインを使って,「生後何日」や「何歳」を表示する。
MTCountdown プラグインは,指定した日時までのカウントダウン表示を行うプラグインである (David Raynes: MTCountdown Archives)。このプラグインでは,カウントダウンだけではなく,指定日付からのカウントアップも表示することができる。カウントアップ機能を使えば,生まれたこどもの「生後何日」や,出産前の「第何週目」などの表示を行うことができる。もちろんペットや植物に使ってもいい。
プラグインの最新版は,2004年2月公開のバージョン 0.4 でかなり古いが (David Raynes: MTCountdown v0.4),特殊なことはしていないので MT の最新バージョンでも動作する。ダウンロードして,plugins ディレクトリに入れればよい。
テストをしてみたところ,MT 4.1/MTOS, MT 2.661 で動作した。MT 3 でも大丈夫だろう。MT 4/MTOS 以降では,plugins ディレクトリ内にプラグイン用のサブフォルダを作るのがデフォルトの作法になっているが,サブフォルダを作らずにそのまま countdown.pl を置いてよい。
MTCountup タグ内では,起点となる日付を date 属性で指定する。総日数を表示したい場合は count_only 属性を追加する。count_only 属性には,years, weeks, days, hours, minutes, seconds を指定することができる。複数の値を指定したいときには,「count_only="weeks,days"」のようにカンマで区切る。
MTCountdown で表示できるのは,再構築日時と指定日時の差である。オリジナルのプラグインでは,個別記事で表示しても再構築日時との差になってしまう。そこで,個別記事のテンプレートに MTCountup タグを置けば,投稿日時と指定日時との差になるように,プラグインに手を加えることにする。強調部分を追加すればよい。
兄弟姉妹が複数いて,それぞれを別のカテゴリに振り分けているのであれば,MTIfCategory タグを使って表示の有無を変えるのが便利だろう (MTIfCategory | テンプレートタグリファレンス)。例えば,「太郎」の生年月日時は「2004-01-26 22:57:21」,花子は「2008-04-01 00:15:00」だとすると,個別記事アーカイブテンプレートの記事本文の中に設置するなら以下のように書けばよい。
例題の日付は,うまいのが思いつかなかったので,このブログの第1回目と第1001回目の投稿のものになっている。総日数と積算年月を分けるために MTCountup を別々に呼んでいる。MT 2.661 などの旧いバージョンではカテゴリに日本語を指定することができないので,代わりにラベル属性で「MTIfCategory label="Taro"」などとする必要がある。「MTCountupIfDays」タグは,中の日付が正の数値であるかどうかをチェックしている。「MTCountupIfYears」も同様のチェックを行うため,「0 歳」の表示をさせたい場合は,これで囲まないようにする。
再構築すると次のような表示になる。
太郎 生後 1806 日 (4 歳)
花子 生後 280 日 (0 歳)
残念ながら,1か月の日数が月ごとに違うため,「MTCountupMonth」タグは実装されておらず,対応の予定もないと作者はブログに書いている (David Raynes: MTCountdown v0.4)。つまり「?か月」の表示はできない。Date::Calc あたりを使えばできそうだが…。→できるようにしました (nlog(n): MTCountdown を「何年何か月」に対応させる)
2009年1月7日追記:
個別記事に設置した場合は,投稿した時点でのカウントになるように,プラグインを修正する方法を追加しました。
2009年1月14日追記:
「?ヶ月」の表示を可能にするパッチを公開しました (nlog(n): MTCountdown を「何年何か月」に対応させる)。
Master Archive Index
Total Entry Count: 1957