2006年12月27日

MTEntries タグの lastn 属性と sort_order 属性(ascend)の同時指定が有効にならない件について

テンプレートに対し、一番古いエントリータイトルを取得するタグ(下記)を設定しても、最新のエントリータイトルが取得されます。

<MTEntries lastn="1" sort_order="ascend"><$MTEntryTitle$></MTEntries>

この問題は「『Ajax月送りカレンダー』でデフォルト表示を一番過去の月にしたい」というご質問で発覚しました。

とりあえずネットで類似情報がないか検索したところ、Movable Type Community Forum で下記の記事を発見。

Sort_order Ascend Not Working In 3.33?

lastn 属性は、MTEntries タグで指定された sort_order 属性をくつがえす、内部の「sort_order="descend"」を持っています。 この振舞いのため、lastn 属性が指定された場合、sort_order 属性は無視されます

と、Nov 3 2006, 07:54 PM の回答で書かれています。たしかに lib/MT/Template/ContextHandlers.pm の 1333 行にそのような実装がありました。

仕様か不具合かという話は別として、とりあえず lastn 属性が指定された場合でも sort_order 属性を有効にするためのパッチを作ってみました。

--- lib/MT/Template/ContextHandlers.pm.bak      Fri Aug  4 12:31:56 2006
+++ lib/MT/Template/ContextHandlers.pm  Wed Dec 27 00:47:35 2006
@@ -1330,7 +1330,7 @@
             }
         }
         $args{'sort'} = 'created_on';
-        $args{direction} = 'descend';
+        $args{direction} = $args->{sort_order} ? $args->{sort_order} : 'descend';
         if (!@filters) {
             if (my $last = $args->{lastn}) {
                 $args{limit} = $last;

が、このパッチは他の属性と競合した場合の問題等を考慮していません。ご指摘ならびに改善案をお待ち申し上げます(他力本願)。

Comments [4] | Trackbacks [1]
2006年12月 5日

Movable Type 3.x デフォルト・テンプレートのAtomフィードの不具合について

December 5,2006 12:01 AM
Tag:[, ]
Permalink

Movable Type のデフォルトテンプレート Atom フィード(atom.xml)に軽微な不具合があるようです。

Movable Type 3.x デフォルト・テンプレートのAtomフィードの不具合について

Movable Type 3.0以降にデフォルト・テンプレートとして含まれている、atom.xmlを生成するテンプレートをそのまま利用していると、2007年に入ってから再構築したときに内容が変わってしまい、ブログの購読者(あなたのブログのAtomフィードを購読している読者)の側で、未読ではない記事が未読として表示されてしまうなどの軽微な問題が起こる可能性があります。

この不具合を解消するためには、リスト1(atom.xml より抜粋)の赤色部分を、リスト2の青色に変更します。

リスト1 atom.xml 修正前

<id>tag:<$MTBlogHost exclude_port="1" encode_xml="1"$>,<$MTDate format="%Y"$>:<$MTBlogRelativeURL encode_xml="1"$>/<$MTBlogID$></id>

リスト2 atom.xml 修正後

<id>tag:<$MTBlogHost exclude_port="1" encode_xml="1"$>,2006:<$MTBlogRelativeURL encode_xml="1"$>/<$MTBlogID$></id>

修正は年内に行ないましょう。

なお 2007年以降に Movable Type を使い始めてこの記事に辿り着いた方は、"2006" の代わりに開始年("2007" とか)を記述するか、リスト3の内容に変更すると良いでしょう。

リスト3 atom.xml 修正後(2007年以降に使用開始した場合)

<id>tag:<$MTBlogHost exclude_port="1" encode_xml="1"$>,<MTArchiveList archive_type="Monthly" sort_order="ascend" lastn="1"><$MTArchiveDate format="%Y"$></MTArchiveList>:<$MTBlogRelativeURL encode_xml="1"$>/<$MTBlogID$></id>

参考:drry+@->Movable Type のデフォルト Atom フィードテンプレートを駄目出し

なお、当サイトでは FeedBurner を利用している(=atom.xml は未使用)ので、この修正は行っておりません。

Comments [0] | Trackbacks [3]
Now loading...
ギターに入った猫
掲載広告募集
Styles
Font Size
Default
For defective color vision
Gray Scale
RGB Color
Search this site

このブログをメールで購読する by:FeedBurner

AMN
Categories
Monthly Archives
2020年
2019年
2018年
2017年
2016年
2015年
2014年
2013年
2012年
2011年
2010年
2009年
2008年
2007年
2006年
2005年
2004年
2003年
BlogPeople
Syndicate this site
FeedBurner(RSS1.0/RSS2.0/Atom)
Counter
これまでのアクセス
Powered by
Movable Type 6.0.3