ArchiveDateFooter プラグイン

ArchiveDateFooter プラグイン

Posted at June 19,2006 1:00 AM
Tag:[ArchiveDateFooter, MovableType, Plugin]

ArchiveDateFooter プラグインMovable Type のプラグインを久しぶりに作成しました。このプラグインを利用することで、月別アーカイブを年別にリスト表示することができます。スクリーンショットはデフォルトテンプレートに適用した例です。
本プラグインは ArchiveDateHeader プラグインとの併用を前提にしています(ArchiveDateFooter 単独でも動作しますが、あまり意味がありません)。

ツリー表示にする場合は、本カスタマイズを実施した後、「月別アーカイブリストの年毎の折りたたみ for Movable Type」を行ってください。

1.機能

このプラグインは、MTArchiveList コンテナ・タグ(archive_type 属性が Monthly/Weekly)の中で、次に表示されるアーカイブと比較し、異なる年あるいは月であったときだけ内容を表示するコンテナ・タグを提供します。
このコンテナ・タグは archive_type 属性が Monthly および Weekly の場合のみ有効です。

2.作成の経緯

既存の ArchiveDateHeader プラグインを用いて、

<MTArchiveList archive_type="Monthly">
<MTArchiveDateHeader>
<p><MTArchiveDate format="%Y"></p>
</MTArchiveDateHeader>
<a href="<$MTArchiveLink$>"><MTArchiveDate format="%B"></a> 
</MTArchiveList>

というリストを設置することで、例えば下記のような月別アーカイブリストを作成できます。

2006
6 5 4 3 2 1
2005
12 11 10 ...

しかしながら、このプラグインがサポートしているのは MTArchiveHeader タグのみのため、例えば月別アーカイブの場合、最後の表示月(上記の場合であれば2006年1月)の後に任意のタグを与えることができません。
したがって ArchiveDateHeader だけではリスト形式(ul -li)のマークアップを行うことができません。

ネットを検索すると、Movable Type Community ForumArchiveDateFooter? に、MTPerlScriptを使ってフッタを生成する記事がありましたが、勉強もかねて今回自作してみました。

3.ダウンロード

下記のリンクより ArchiveDateFooter プラグインアーカイブをダウンロードしてください。

Download(MT3.x)
Download(MT4.0~4.1)
Download(MT4.2)
2006.06.19 初版 2007.01.20 MTArchiveList の sort_order="ascend" に対応 2007.03.19 週別アーカイブでの不具合修正(「ダイナミック・パブリッシング対応 ArchiveDateFooter プラグイン」での指摘を反映)

4.インストール

ダウンロードしたアーカイブを解凍し、ArchiveDateFooter を plugins ディレクトリにアップロードしてください。下記の構成になればOKです。

3.x の場合

plugins/ArchiveDateFooter/ArchiveDateFooter.pl
plugins/ArchiveDateFooter/tmpl/config.tmpl

4.x の場合

plugins/ArchiveDateFooter.pl

メイン・メニュー > システム・メニュー > プラグイン で ArchiveDateFooter Plugin が表示されていればOKです。特に設定する項目はありません。

MT3.x 版でプラグインを使用したくない場合は、各ブログの管理メニューより、「設定」→「プラグイン」→「ArchiveDateFooter Plugin」の右側にある「設定を表示」をクリックして「Configuration」のチェックを外し、「変更を保存」をクリックしてください。

MT4.x 版では「設定を表示」のリンクはありませんので、プラグインを利用しない場合は、システムメニューのプラグイン一覧で ArchiveDateFooter 自体を無効にしてください。

5.使用例

冒頭のスクリーンショットのようなリスト形式の月別アーカイブリスト(年月表示)は、下記のように設定します(サンプルリストはエントリー件数も表示するようにしています)。
<MTArchiveList archive_type="Monthly">
<MTArchiveDateHeader><$MTArchiveDate format="%Y年"$><ul></MTArchiveDateHeader>
<li><a href="<$MTArchiveLink$>"><$MTArchiveDate format="%B月"$></a> [<$MTArchiveCount$>]</li>
<MTArchiveDateFooter></ul></MTArchiveDateFooter>
</MTArchiveList>

月を英語表記にする場合は language属性を追加します。

<MTArchiveList archive_type="Monthly">
<MTArchiveDateHeader><$MTArchiveDate format="%Y"$><ul></MTArchiveDateHeader>
<li><a href="<$MTArchiveLink$>"><$MTArchiveDate format="%B" language="en"$></a> [<$MTArchiveCount$>]</li>
<MTArchiveDateFooter></ul></MTArchiveDateFooter>
</MTArchiveList>

ラップするコンテナタグ MTArchiveList タグで sort_order 属性に acend を設定した場合には MTArchiveDateFooter タグにも同じ属性・属性値を設定してください。

<MTArchiveList archive_type="Monthly" sort_order="ascend">
<MTArchiveDateHeader><$MTArchiveDate format="%Y年"$><ul></MTArchiveDateHeader>
<li><a href="<$MTArchiveLink$>"><$MTArchiveDate format="%B月"$></a> [<$MTArchiveCount$>]</li>
<MTArchiveDateFooter sort_order="ascend"></ul></MTArchiveDateFooter>
</MTArchiveList>

2007.01.20 追記
MTArchiveList の sort_order 属性で ascend が設定された場合に対応しました。

2007.03.19 追記
週別アーカイブでの不具合を修正しました。

2007.07.08 追記
MT4 対応をリリースしました。

2008.07.28 追記
MT4.2 対応をリリースしました。

2008.09.12 追記
MT4.x のアップロード時の構成を追加しました。

関連記事
zenback
人気エントリー
トラックバックURL


トラックバック

月別アーカイブを年別に並べ替える。 from PARADISE BLOG
お世話になっている 小粋空間 様で新に、プラグインの開発&配布を始められたので ... [続きを読む]

Tracked on June 23, 2006 1:37 AM

ダイナミック・パブリッシング対応 ArchiveDateFooter プラグイン from あんちもん2.Lab
ArchiveDateFooterプラグインの、ダイナミック・パブリッシング対応PHP版を公開。ついでに現状のPerl版に潜む問題点を指摘。 [続きを読む]

Tracked on March 18, 2007 1:59 PM

月別アーカイブを年別に並べ替え from PARADISE CLUB
小粋空間様にて、配布されている 「ArchiveDateFooter」 プラグイ... [続きを読む]

Tracked on April 2, 2007 11:39 PM

月間アーカイブを月単位かつ年単位でまとめる from K's Labo
香川県の昨日の最高気温は34度もあったらしいです(うへぇ?)。どおりで暑かったは... [続きを読む]

Tracked on June 27, 2007 11:42 AM

年別に月別アーカイブをリスト化 for Movable Type from SCREAMO
Movable Typeでは、標準のテンプレートで月別アーカイブをリスト化できる。だが年別に月別アーカイブをリスト化するのは容易な事ではない。しかし、a... [続きを読む]

Tracked on January 14, 2008 4:41 PM

月別アーカイブを年別にソート(1) ArchiveDateHeader/Footerプラグイン from ただてとてとと歩きだす
MT4でも使えるようになったArchiveDateHeader/Footerプラグインを用いて、月別アーカイブウィジェットの表示を拡張、そして適切にマーク... [続きを読む]

Tracked on October 8, 2008 11:00 PM
コメント

こんばんは、yujiroさん 
プラグインの開発お疲れ様です。

今回導入させて頂きました
素晴らしいプラグインをありがとうございます。

[1] Posted by mituru : June 23, 2006 1:44 AM

>mituruさん
こんばんは。
プラグインご利用&トラックバックありがとうございました。
無事に表示されて良かったです。
ではでは!

[2] Posted by yujiro : June 23, 2006 11:43 PM

続いてお尋ねします。
4.インストール→アップロードも済み、
plugins/ArchiveDateFooter/ArchiveDateFooter.pl
plugins/ArchiveDateFooter/tmpl/config.tmpl
となりました。

5.使用例
以下の月別アーカイブリスト
<MTArchiveList archive_type="Monthly">


はどこに挿入すればよいのですか?
「Head~/Head」間ですか?

[3] Posted by curator : November 11, 2006 6:04 PM

yujiroさま。おかげさまで、Monrhly Archives はここまで出来ました。

menufolder.js をダウンロードしました。
=========
そこで menufolder.js をクリックし、同じファイル名でご自身のPCに保存してください。
=========

とありますが、どこへ保存するのでしょうか?

[4] Posted by curator : November 11, 2006 11:06 PM

yujiroさま。トップページでなんとか出来ましたので、後はなんとかやってみます。ありがとうございました。

[5] Posted by curator : November 12, 2006 10:28 PM

>curatorさん
こんにちは。
ご連絡ありがとうございました。
ご連絡が遅くなってすいません。無事折りたためるようになったようで良かったです。
さらにツリー化をされるにあたって、ご不明な点がございましたらご連絡ください。
ではでは!

[6] Posted by yujiro : November 13, 2006 11:29 AM

yojiroさま。お忙しいところご連絡有難うございました。
=======================================
さらにツリー化をされるにあたって・・・・
=======================================
やはり、ツリー化をしたいのですが、これからのスクリプトの続きをお願いします。急ぎませんのでお待ちしております。スタイルシートは追加しました。

[7] Posted by curator : November 13, 2006 10:25 PM

>curatorさん
こんにちは。
ご質問の件ですが、スクリプトを利用するカスタマイズより下記の方法が簡単だと思いますのでご紹介しておきます。

ツリー化にあたっては、まず月別アーカイブリストのタグを「JavaScript 不要なサイドメニューのツリー化 for Movable Type」の2項の「Monthly Archives(月別アーカイブリスト:年別表示)」に置き換えてください(念のためこれまでのタグもバックアップしておいてください)。
スタイルシートは同じ記事の3項を使ってください。さらにツリー化画像は同じ記事の4項・5項を行ってください。
それではよろしくお願い致します。

[8] Posted by yujiro : November 14, 2006 6:34 PM

yujiroさま。ご指摘の通りしたのですがどうも上手くいきません。ツリー化をせずに一気に折りたたみにしたのがいけなかったかもしれません。
もう一度メインページにあるような表示からツリー化→折りたたみへと進む方法を再度お願いします。
急ぎませんので、お暇なときにお返事をお待ちしております。

[9] Posted by curator : November 16, 2006 11:58 AM

>curatorさん
こんにちは。
ご質問の件ですが、まず、月別アーカイブのタグはきちんとカスタマイズできている(li タグに tree および tree_end が表示されている)ので、次に、月別アーカイブリストの下に追加されている、

<script type="text/javascript">
<!--
generateNormalTree('archives');
//-->
</script>

を削除してください(これは今回不要です)。

そして、「JavaScript 不要なサイドメニューのツリー化 for Movable Type」の3項・4項・5項のカスタマイズを行ってください。

ここまでの作業でツリー化できることをご確認ください。
それではよろしくお願い致します。

[10] Posted by yujiro : November 16, 2006 5:36 PM

yujiroさま。毎度お世話になります。
ご指摘の今回不要なスクリプトの削除、3項・css追加、4項・ツリー画像のDL、5項・画像のアップロードのカスタマイズをしました。
リストマークは非表示になったのですが、ツリー画像が表示されないのです。
cssではurl(tree_lst.gif);となっています。点線画像のtree_lst_dotted.gifをアップロードしても問題はないのでしょうか?
表示されないのは画像の配置場所を間違えているのでしょうか。
よろしくお願いいたします。

[11] Posted by curator : November 17, 2006 3:12 PM

>curatorさん
こんにちは。
ご質問の件ですが、ツリー用画像のファイル名は、CSSに記述しているファイル名と一致させる必要があります。
ということで、ダウンロードした

  tree_lst_dotted.gif
  tree_end_dotted.gif

をそれぞれ

  tree_lst.gif
  tree_end.gif

に修正してからアップロードしてください。
それではよろしくお願い致します。

[12] Posted by yujiro : November 17, 2006 4:56 PM

yujiroさま。
ツリー画像の表示が出来ました。この後の最後の折りたたみをお願いいたします。
このツリー化と、下部の折りたためとの組み合わせが、どうしても分かりません。
あともう少しです。お手数かけ本当に申し訳ございません。

[13] Posted by curator : November 17, 2006 6:24 PM

>curatorさん
こんばんは。
ご質問の件については別途エントリーさせてください。すいませんが少々お時間ください。
それではよろしくお願い致します。

[14] Posted by yujiro : November 18, 2006 12:12 AM

ArchiveDateHeaderはこちらのが新しいですよ
http://code.appnel.com/dist/mt-archive-dateheader

[15] Posted by eidan : November 19, 2006 3:06 PM

>eidanさん
こんにちは。
情報提供、ありがとうございました!

[16] Posted by yujiro : November 21, 2006 10:10 AM

はじめまして!
小粋空間様を拝見させていただきカスタマイズ進めています。
今回、ArchiveDateFooter プラグインを導入し、ツリー化も上手く行ったのですが、


sort_order="ascend"

とアトリビュートを追加したところ上手く表示できなくなりました。
12月からではなく1月から表示されて行くのですが、1月のところでArchiveDateFooterが働いてしまうようです。

こういった仕様なのでしょうか?

[17] Posted by 虎! : December 7, 2006 3:57 PM

スミマセン
先ほどのコメントでMtタグをそのまま入れてしまいました。

<MTArchiveList archive_type="Monthly" sort_order="ascend">

sort_order="ascend"

追加です。。。

[18] Posted by 虎! : December 7, 2006 4:00 PM

>虎!さん
こんばんは。
ご質問の件ですが、改善可能か確認してみます。申し訳ございませんがお時間ください。
なお、エントリーの更新等がなければ「仕様」ということでお許しください。
それではよろしくお願い致します。

[19] Posted by yujiro : December 8, 2006 4:17 AM

了解しました!
お手数おかけしますが、調査の程よろしくお願いします。

[20] Posted by 虎! : December 8, 2006 10:16 PM

こんばんは、 yujiroさん
お世話になっています。

プラグインを使わせて頂いています
ありがとうございます。

[21] Posted by mituru : April 2, 2007 11:47 PM

>mituruさん
こんにちは。
ご返事遅くなってすいません。
ご利用&トラックバックありがとうございました!

[22] Posted by yujiro : April 5, 2007 5:20 PM

yujiro様

プラグインやテンプレートのカスタマイズのエントリーいつも有り難く利用させて頂いております。小粋空間さんのプラグインで何度救われたことか・・・。

今回月別アーカイブとカテゴリ+サブカテゴリを新たにカスタマイズしようと思ってテンプレート弄っていたのですがとんでもない不都合を自分のブログで見つけてしまいました。

エントリーページのカテゴリURLだけ全てエントリーページのURLになっているんです。
ソースを見るとカテゴリURLの表示はされておらず<a href="">カテゴリ1 (1)</a>といった感じで空白です。
(インデックスやカテゴリーのカテゴリは問題なく表示されています。)

自分のテンプレやMTタグがおかしいのかと思って小粋空間さんで配布されているタグをコピペして試してみたり他のテンプレを使ってみたりしましたが同じ結果になってしまいました。

全ページ同じモジュール(カテゴリ用)を呼び出しているのでエントリーだけ変になるのもおかしな話です・・・。

<div class="cat">
<h2>カテゴリ</h2>
<ul class="menu">
<MTTopLevelCategories>
<MTFilterCategories exclude="記事全表示">
<MTIfNonZero tag="MTCategoryCount">
<li<MTHasNoParentCategory>class="tc1"</MTHasNoParentCategory>><a href="<$MTCategoryArchiveLink$>"><MTCategoryLabel cutfirstchar="3"> (<$MTCategoryCount$>)<br />
<span class="des"></a></li>
<MTElse>
<li<MTHasNoParentCategory> class="tc1"</MTHasNoParentCategory>><a href="#top"><MTCategoryLabel cutfirstchar="3"> (<$MTCategoryCount$>)<br />
<span class="des"><$MTCategoryDescription$></span></a></li>
</MTElse>
</MTIfNonZero>
<MTSubCatsRecurse max_depth="3">
</MTFilterCategories>
</MTTopLevelCategories>
</ul>
</div>

モジュールはこんな感じです。
Movable Type 4.1b1a-enを使っているのでベータ版特有の不都合なんでしょうか・・・?
それとプラグインでこのような症状が起きる可能性はあるのでしょうか?


yujiro様に頼るしかないと思いこんな書き込みをしてしまいました。
申し訳御座いません・・・。
わかる範囲で構いませんのでアドバイスを頂けたらと思っております。

よろしくお願いします!!

[23] Posted by takezo : February 22, 2008 7:22 PM

>takezoさん
こんばんは。
頂いたタグをMT4.1のサイトに貼り付けましたが、ブログ記事ページでも正常に動作するようです。
4.1ベータ版の不具合かもしれません。
なお、MTFilterCategoriesだけは外して試しました。
それではよろしくお願い致します。

[24] Posted by yujiro logo : February 27, 2008 12:01 AM

yujiro様


返事が遅くなってしまい大変申し訳御座いません。


時間がかかってしまいましたが
ご指摘通りベータ版からMTOSにアップグレードしたところ
問題なく動作しましたのでベータ版の不都合だったようです。

無事に解決することが出来ました。
ありがとうございますm(_ _)m

[25] Posted by takezo : March 5, 2008 3:01 PM

>takezoさん
こんにちは。
ご連絡ありがとうございました。
無事になおったようで良かったです。
ではでは!

[26] Posted by yujiro logo : March 8, 2008 3:42 PM

こんにちは。

年度別でMTArchiveDateHeaderプラグインとArchiveDateFooter プラグインを使用して、スケジュールを作成しているのですが、なぜか5月と10月のエントリの時だけ、ArchiveDateFooterが作動せず、レイアウトが崩れてしまいます。
年度別アーカイブで使用しているからなのか、原因が分からず困っています。

ソースは↓こんな感じです。

<MTArchiveList archive_type="Weekly" sort_order="ascend">
<MTEntries>
<MTArchiveDateHeader>
<table border="0" cellpadding="0" cellspacing="0" id="schedule_table">
<tr>
<td id="month"><MTEntryDate format="%m"></td>
<td>
</MTArchiveDateHeader>
<table border="0" cellpadding="0" cellspacing="0">
<tr>
<td id="day"><MTEntryDate format="%d"></td>
<td id="week"><MTEntryDate format="%a"></td>
<td id="event_name"><a href="<$MTEntryLink archive_type="Individual"$> "><$MTEntryTitle$></a></td>
<td id="sponsor"><$MTEntryCategory$></td>
</tr>
</table>
<MTArchiveDateFooter sort_order="ascend">
</td>
</tr>
</table>
</MTArchiveDateFooter>
</MTEntries>
</MTArchiveList>


お手数ですが、良いアドバイスをよろしくお願いいたします。

[27] Posted by シン : March 31, 2008 12:56 PM

>シンさん
こんばんは。
ご返事遅くなりすいません。
いずれのプラグインも年の変わり目を判断材料にしているので、年度別アーカイブでは正常に動作しないと思われます。
何かいい案が思いついたらエントリーで公開したいと思いますが、しばらく時間がとれないので、予めご了承ください。
それではよろしくお願い致します。

[28] Posted by yujiro logo : April 8, 2008 9:14 PM

こんばんは、勇次郎さん。
些細なことなのですが、MT4.2用のプラグインで
$VERSION = '2.00';
となっているため、表示が2.00になってしまっていますね。

[29] Posted by oscar logo : August 11, 2008 12:01 AM

>oscarさん
こんにちは。
ご指摘ありがとうございました。
プラグイン修正致しました。

[30] Posted by yujiro logo : August 11, 2008 4:06 PM

こんにちは。
いつもお世話になっております。

今回DateFooterの導入を考えている者です。

プラグインをダウンロードさせて頂いたのですが、解凍してもconfig.tmplが見当たりません。

お手数ですが、宜しくお願い致します。

[31] Posted by hachi : September 12, 2008 10:34 AM

>hachiさん
こんにちは。
ご質問の件ですが、本文の記述もれでした(3.x には config.tmpl があったのですが、4.x 版には config.tmpl はありません)。
申し訳ありません。

本文を修正致しましたのでご確認ください。
それではよろしくお願い致します。

[32] Posted by yujiro logo : September 12, 2008 11:49 AM

早速のコメントありがとうございます。
私がよく本文を読めていませんでした。お手数おかけ致しました。

続けて、質問で申し訳ないですがMT4.1.3で下記のディレクトリにファイルアップロードしたのですが、MT管理画面のプラグインに表示されません。
これは問題ないでしょうか。

現在、7月のアーカイブでは問題なく表示されるのですが、8月のアーカイブでArchiveDateFooterでかこってあるタグが表示されず思案しております。

お忙しいところ、何度もお手間とらしてしまい申し訳ございません。
何かアドバイス頂けると幸いです。

宜しくお願い致します。

[33] Posted by hachi : September 12, 2008 2:25 PM

何度もすみません。
プラグイン表示の件は自己解決しました。

お手数おかけ致しました。

ArchiveDateFooterの表示の件は未解決です。
7月は問題ないのですが、8月は?です。

上記シンさんと同様の問題でしょうか?

宜しくお願い致します。

[34] Posted by hachi : September 12, 2008 3:03 PM

>hachiさん
こんばんは。
根本的な解決策ではありませんが、4.13 であれば、「年別アーカイブを利用した月別アーカイブの年別表示」を試してみてください。
それではよろしくお願い致します。

[35] Posted by yujiro logo : September 15, 2008 11:19 PM

yujiro様

おはようございます。hachiです。
お忙しい中、ご丁寧な対応、ありがとうございます。

アドバイス頂きました、年別アーカイブを利用した月別アーカイブの年別表示を一度試してみたいと思います。
ありがとうございます。

また、ご報告致します。
それでは、宜しくお願い致します。

[36] Posted by hachi : September 16, 2008 11:07 AM
コメントする
greeting

*必須

*必須(非表示)


ご質問のコメントの回答については、内容あるいは多忙の場合、1週間以上かかる場合があります。また、すべてのご質問にはお答えできない可能性があります。予めご了承ください。

太字イタリックアンダーラインハイパーリンク引用
[サインインしない場合はここにCAPTCHAを表示します]

コメント投稿後にScript Errorや500エラーが表示された場合は、すぐに再送信せず、ブラウザの「戻る」ボタンで一旦エントリーのページに戻り(プレビュー画面で投稿した場合は、投稿内容をマウスコピーしてからエントリーのページに戻り)、ブラウザをリロードして投稿コメントが反映されていることを確認してください。

コメント欄に(X)HTMLタグやMTタグを記述される場合、「<」は「&lt;」、「>」は「&gt;」と入力してください。例えば「<$MTBlogURL$>」は「&lt;$MTBlogURL$&gt;」となります(全て半角文字)