top

月別アーカイブを年毎に区切ってみる(2) 暫定版

MT4へアップグレードするに当たって1つ困っていたのが、3.3以前なら問題なく動作していたArchiveYearプラグインとArchiveLoadプラグインが上手く動作しなくなっていたことです。メインサイトのMTのアーカイブ頁で年を降順、月を昇順にするのに重宝していたので。これを使うと、Archive Date Headerだけでは

2007年:6月 5月 4月 3月 2月 1月
2006年:12月 11月 10月 9月 8月 7月 6月 5月 4月 3月 2月 1月

としか出来ないのが、

2007年:1月 2月 3月 4月 5月 6月
2006年:1月 2月 3月 4月 5月 6月 7月 8月 9月 10月 11月 12月

のように出来るので便利なんですよね。

なんとかならないかな~と思っていたところ、MT4から新しく追加された年アーカイブとCompareプラグインを組み合わせることで代用できそうだったので、やってみました。その覚え書きを。

1.下準備
以下のプラグインを用意します。
Compareプラグイン:静的用 動的用
MTTagInvokeプラグイン:静的用 動的用

動的(ダイナミック)用プラグインはMT4に対応したものをダウンロードして下さい。3.3以前用のダイナミック用プラグインは4では使えないので。MT4対応版がまだない場合は3.3以前用をこちらのサイトの指示に従ってファイル名を小文字にする修正を行い、4で使えるようにしておきます。

2.タグの記述
以下のタグを月別アーカイブへのリンクを表示したい場所に記述します。Compareプラグインはどちらのケースでも使います。

●MTTagInvoke プラグイン編
年アーカイブリストから該当年を取得するのにMTTagInvoke プラグインを使うケース。静的生成頁で使えます。

<MTArchiveList archive_type="Yearly">
<MTTagInvoke tag_name="MTSetVar">
<MTTagInvokeAttribute name="name">year</MTTagInvokeAttribute>
<MTTagInvokeAttribute name="value"><$MTArchiveDate format="%Y" language="en"$></MTTagInvokeAttribute>
<MTTagInvokeContent></MTTagInvokeContent>
</MTTagInvoke>
<$MTArchiveDate format="%Y" language="en"$>年:
<MTArchiveList archive_type="Monthly" sort_order="ascend">
<MTIfEqual a="[MTArchiveDate format='%Y' language='en']" b="$year" numeric="1">
<a href="<$MTArchiveLink$>"><$MTArchiveDate format="%B"$>月</a>
&nbsp;&nbsp;</MTIfEqual>
</MTArchiveList><br />
</MTArchiveList>

●Smarty編
年アーカイブリストから該当年を取得するのにSmartyを使うケース。ダイナミック・パブリッシング用です。出てくる結果はMTTagInvoke プラグインを使う場合と同じです。

<MTArchiveList archive_type="Yearly">
{{capture name="year"}}<$MTArchiveDate format="%Y" language="en"$>{{/capture}}
<$MTArchiveDate format="%Y" language="en"$>年:
<MTArchiveList archive_type="Monthly" sort_order="ascend">
<MTIfEqual a="[MTArchiveDate format='%Y' language='en']" b="`$smarty.capture.year`" numeric="1">
<a href="<$MTArchiveLink$>"><$MTArchiveDate format="%B"$>月</a>
&nbsp;&nbsp;</MTIfEqual>
</MTArchiveList><br />
</MTArchiveList>

もっとスマートな方法があるかもですが、こういう方法でも何とか出来ますということで。

<2007.8.25 追記>
MT4でMTタグのみで実装できることが分かったので、現在は以下の方法へ移行しています。
月別アーカイブを年毎に区切ってみる(3) 4.0完成版

 

トラックバックURL

トラックバックされる際にはこの記事へのリンクをお願い致します

コメントを投稿

 


 <注意>
 ご利用のブラウザ、設定ではコメントのプレビューおよび投稿はご利用になれません。
 コメント投稿の際はお手数ですがjavascriptをオンにして下さい。
 *javascriptオフのまま投稿ボタンを押すと送信内容が消えますのでご注意下さい。