2009年1月22日木曜日

Movable Typeのウィジェット

以下のように書いたのですが、異なる場合があるようです。詳細は不明ですが、何か分かれば新しく書き込みます。

Movable Type version 4.23-jaのウィジェットで、[カレンダー]と[日付ベースのカテゴリーアーカイブ]は私の思うように動きません。

[カレンダー]で日付を選択すると、その日に書き込んだ記事の内一つしか表示しません。Googleなどで調べてみると、この問題は管理用トップページの[設定 > 公開]を開き[公開設定][アーカイブオプション][優先アーカイブタイプ]を[日付]にして、[カレンダー]ウィジェットを以下のように編集すれば治ることが分かりました。
元のソースはこんな感じです。
 <mt:IfArchiveTypeEnabled archive_type="Individual">

上記の"Individual"を"Daily"に変更します。
<mt:IfArchiveTypeEnabled archive_type="Daily">


[日付ベースのカテゴリーアーカイブ]は表示されません。ソースを覧てみると上記のarchive_typeを元に条件分岐していました。

<mt:IfArchiveTypeEnabled archive_type="Category-Daily">
<mt:ArchiveList archive_type="Category-Daily">

"Category-Daily"は予約語としてマニュアルに書かれていて、 MTIfArchiveTypeEnabledをみると[Daily]は[日別]で、[Category-Daily]は[カテゴリ - 日別]とされていますが、どのように[Category-Daily]をONにするのか分かりません。また、カテゴリーごとに分けると醜いので[Daily]に変更することにしました。

<mt:IfArchiveTypeEnabled archive_type="Daily">
<mt:ArchiveList archive_type="Daily">

この変更で日付ごとのリストアップができるようになりましたが、本当はGoogle Bloggerのブログ アーカイブのように階層表示したいのです。しかし、調べる時間がないのでハックで以下のようなウィジェットをでっち上げました。

<mt:IfArchiveTypeEnabled archive_type="Daily">
<mt:ArchiveList archive_type="Monthly" lastn="3">
<mt:ArchiveListHeader>
<div class="widget-archive-category-daily widget-archive widget">
<h3 class="widget-header">3ヶ月アーカイブ</h3>
<div class="widget-content">
<ul>
</mt:ArchiveListHeader>
<li><a href="<$mt:ArchiveLink$>"><$mt:ArchiveTitle$> (<$mt:ArchiveCount$>)</a></li>
<mt:ArchiveListFooter>
</ul>
</div>
</div>
</mt:ArchiveListFooter>
</mt:ArchiveList>

<mt:ArchiveList archive_type="Daily" lastn="14">
<mt:ArchiveListHeader>
<h4 class="widget-header">二週間アーカイブ</h4>
<div class="widget-content">
<ul>
</mt:ArchiveListHeader>
<li><a href="<$mt:ArchiveLink$>"><$mt:ArchiveTitle$> (<$mt:ArchiveCount$>)</a></li>
<mt:ArchiveListFooter>
</ul>
</div>
</mt:ArchiveListFooter>
</mt:ArchiveList>
</mt:IfArchiveTypeEnabled>


こんな感じになりますが、書き込んだ日数が少ないので「三ヶ月アーカイブ」は一ヶ月だけ、「二週間アーカイブ」は四日だけになっています。

美しくありませんが、無いよりはマシです(苦笑)

0 件のコメント: