てことで、ようやくできましたよ、このカスタマイズ。
昼からずっと悩んでいたのですが、一応は形になったのかな?
そんなわけで、カスタマイズ方法を記事にしてみますか。
なお、現在動いているだけなので、この後はどうなるか分かりません。
もしダメだったら・・・何か考えます。(^^A
まだ課題が残っていますが、とりあえず公開しますか。
気になる方は、続きへどうぞ。
#このエントリーは、MT3かつSQLiteで確認しています。MT4でも各種プラグインが動作するかは分かりません。(ぉ
なので、別途MT4+MySQLを利用したカスタマイズ記事をエントリーします。
・・・MT4+SQLiteは誰かに任せます。(爆
#2008-01-28 00:08 更新
MT4+MySQLを利用した最終更新日関連記事をエントリーしました。→コチラ
まずは、どのようにするかですよね。
イメージとしては、投稿日よりも新しい最終更新日が有る場合のみ、リスト化ですね。
その場合、最終更新日を引っ張ってきて、投稿日と比較する必要があります。
当初は"JavaScript"でできないかと考えていましたが、良いサイトが見つかりましたので紹介。
#from Blade-x
MTのエントリーの Change Log リスト
この記事を見ると、俺のやりたいことをしっかりとやってくれています。
いくつかプラグインを利用しているみたいですが、何を使っているかも列挙されています。
そんなわけで、この記事を参考に俺もやってみました。
どうやったのかは、下記を見て下さい。
<div class="side" id="entry2list">
<ul>
<MTEntries sort_order="descend">
<!-- 最終更新年月日>投稿年月日+1日 の場合 start-->
<MTIfModified leeway="1440">
<!-- 最終更新年月日取得 start-->
<MTSetVarBlock name="LastModified">
<$MTEntryModifiedDate format="%y%m%d"$>
</MTSetVarBlock>
<!-- 最終更新年月日取得 end-->
<!-- 最終更新年月日一ヶ月前取得 start-->
<MTSetVarBlock name="LastModified-1">
<$MTDateEx format="%y%m%d" month_offset="-1"$>
</MTSetVarBlock>
<!-- 最終更新年月日一ヶ月前取得 end-->
<!-- 最終更新年月日≧最終更新年月日一ヶ月前 の場合 start-->
<MTIfGreaterOrEqual a="[MTGetVar name='LastModified']" b="[MTGetVar name='LastModified-1']" numeric="1">
<li><a href="<$MTEntryPermalink$>"><$MTEntryTitle$></a></li>
</MTIfGreaterOrEqual>
<!-- 最終更新年月日≧最終更新年月日一ヶ月前 の場合 end-->
</MTIfModified>
<!-- 最終更新年月日>投稿年月日+1日 の場合 end-->
</MTEntries>
</ul>
</div>
上から順番にソースの流れを紹介してみますか。
1.エントリー記事を投稿日の降順に並べる。
2.最終更新日が投稿日の一日以降(60分*24時間=1440分)の場合、処理実行。
3.最終更新年月日Aを取得。
4.最終更新年月日より一ヶ月前の年月日Bを取得。
5.A≧Bの場合(一ヶ月前の範囲内で更新されたエントリーを対象にする)、リスト化。
例えば、投稿日の何分後からを更新したとするかは、"leeway"で決めます。
分単位なので、キチンと計算して値をセットして下さい。
また、更新されたエントリーを考慮する範囲は、"month_offset"で決めます。
月単位なので、戻す値をマイナスで指定して下さい。
あとは、このカスタマイズを埋め込めば、最終更新日のリストが表示できます。
ただし、現状では出力したリストを、最終更新日でソートできない問題点が有ります。
Movable Type標準のタグでは、どうやら全エントリーを最終更新日でソート無理っぽいのよねぇ。
どうしても、投稿日を基準にしてしまうからってのが理由みたいですが。
・・・どうにかならないかなと思いつつ、現状はコレで行きたいと思います。
てことで、今から寝ます。
コメントとかは明日に・・・めんちゃい。
≪ 続きを隠す