JavaScript 不要な月別アーカイブの年別ツリー化+折りたたみ

JavaScript 不要な月別アーカイブの年別ツリー化+折りたたみ

Posted at December 18,2006 12:39 AM
Tag:[Customize, MovableType, Tree]

JavaScript 不要な月別アーカイブの年別ツリー化+折りたたみ月別アーカイブのリスト表示は、Movable Type のデフォルト機能では全ての年月を連続で表示することしかできませんが、プラグインを利用することで年毎の表示が可能になり、これを利用して、以前「月別アーカイブリストのツリー化 for Movable Type」を紹介致しました。

さらに、年毎のツリー化リストに折りたたみマークを与えるために「月別アーカイブリストの年毎の折りたたみ for Movable Type」もエントリーしました。この複合技が左のスクリーンショットになります。

上記とは別に、ツリー化をより簡単に実現するテクニックとして、「JavaScript 不要なサイドメニューのツリー化 for Movable Type」をエントリーしました。
ですが、これまでの「月別アーカイブのツリー化+折りたたみ」に「JavaScript 不要なサイドメニューのツリー化 for Movable Type」を適用する場合のタグの構成が不明になっておりました。記事を跨って参照すれば不可能ではありませんが、やや分かりにくいです。

ということで、本エントリーで、月別アーカイブリストの

  • 年別ツリー化
  • 年別折りたたみ
  • 全体の折りたたみ

について、まとめてカスタマイズする手順を紹介致します。

以前、ご質問を頂いていた回答ですが、公開が遅くなり申し訳ございませんでした。この場をお借りしてお詫び申し上げます。

1.プラグインのダウンロード・アップロード

下記のリンクよりプラグインをそれぞれダウンロードしてください。

ArchiveDateHeader プラグイン
ArchiveDateFooter プラグイン

ダウンロードしたアーカイブを解凍し、中にあるファイルを、Movable Type の plugins ディレクトリにアップロードします(詳細はそれぞれのエントリーを参照ください)。
管理メニューの

メイン・メニュー > システム・メニュー > プラグイン

で、それぞれのプラグイン名が表示されればOKです。

2.スクリプトのダウンロード

下記のリンクより menufolder.js をダウンロードしてください。

download

3.スクリプトの修正

menufolder.js の中間辺りにアーカイブリスト表示用の設定項目がありますので、赤色部分 *1 を必要に応じて適宜変更してください。デフォルトの状態では各年の最後尾に折りたたみマークが表示される設定になっています。

リスト3.1 menufolder.js の修正箇所

// アーカイブリスト用折りたたみマーク
// 上:閉じている状態で表示されるマーク
// 下:開いている状態で表示されるマーク
var openMarkForArchives  = '';
var closeMarkForArchives = '';
 
// アーカイブリスト用折りたたみマーク挿入位置
// カテゴリー前に折りたたみマークを配置:true
// カテゴリー後に折りたたみマークを配置:false
var preMarkForArchives = false;
 
// アーカイブリストのタイトルとマークのスペース
var offsetForTitleAndMarkOfArchives = 1;

4.スクリプトのアップロード

menufolder.js を index.html のあるディレクトリにアップロードします。

5.テンプレートの修正(script タグ追加)

月別アーカイブリストを表示したいテンプレートに、 </head> の直前にリスト5.1 のタグを追加します(すでに他の折りたたみで設定済の方はこの項をスキップしてください)。

リスト5.1 script タグの追加

<script type="text/javascript" src="<$MTBlogURL$>menufolder.js"></script>

6.ツリー画像のダウンロード・アップロード

下記のツリー画像をダウンロードしてください。画像は、実線・点線の2種類を用意しています。それぞれ2つの画像がありますのでご注意ください。

実線:tree_lst_solid.gif / tree_end_solid.gif
点線:tree_lst_dotted.gif / tree_end_dotted.gif

保存方法は、(IEの場合)リンクをクリックして一旦画像を表示し、その後に「ファイル」→「名前をつけて保存」で保存するか、リンクを右クリックして「対象をファイルに保存」を選択します。

ダウンロードした画像ファイルのファイル名をそれぞれ

tree_lst.gif
tree_end.gif

に変更して、サーバにアップロードします。アップロード先は任意ですが、ここでは index.html と同じディレクトリにアップロードしてください。

7.月別アーカイブの年別ツリー化表示+折りたたみ用タグの設定

月別アーカイブの年別ツリー化表示+折りたたみができるタグ(リスト7.1)を、表示させたいテンプレートのサイドバー部分に貼り付けます。div 要素は当サイトで公開しているテンプレートに合わせたものですので、設定は任意です。お好みに応じて修正してください。

リスト7.1-1 月別アーカイブの年別ツリー化表示+折りたたみ用タグ(div要素を利用)

<div class="sidetitle">
Monthly Archives
</div>
 
<div class="side">
<MTArchiveList archive_type="Monthly">
<MTArchiveDateHeader><div id="archive<$MTArchiveDate format="%Y"$>name"><span><$MTArchiveDate format="%Y年"$></span></div><ul id="archive<$MTArchiveDate format="%Y"$>list" class="tree"></MTArchiveDateHeader>
<li class="tree<MTArchiveDateFooter>_end</MTArchiveDateFooter>"><a href="<$MTArchiveLink$>"><$MTArchiveDate format="%B月"$></a> [<$MTArchiveCount$>]</li><MTArchiveDateFooter></ul></MTArchiveDateFooter>
</MTArchiveList>
</div>
 
<script type="text/javascript">
//<![CDATA[
<MTArchiveList archive_type="Monthly"><MTArchiveDateHeader>FoldNavigation('archive<$MTArchiveDate format="%Y"$>','off',false);</MTArchiveDateHeader>
</MTArchiveList>
//]]>
</script>

リスト7.1-2 月別アーカイブの年別ツリー化表示+折りたたみ用タグ(dl/dt/dd要素を利用)

<dt class="sidetitle">
Monthly Archives
</dt>
 
<dd class="side">
<MTArchiveList archive_type="Monthly">
<MTArchiveDateHeader><div id="archive<$MTArchiveDate format="%Y"$>name"><span><$MTArchiveDate format="%Y年"$></span></div><ul id="archive<$MTArchiveDate format="%Y"$>list" class="tree"></MTArchiveDateHeader>
<li class="tree<MTArchiveDateFooter>_end</MTArchiveDateFooter>"><a href="<$MTArchiveLink$>"><$MTArchiveDate format="%B月"$></a> [<$MTArchiveCount$>]</li><MTArchiveDateFooter></ul></MTArchiveDateFooter>
</MTArchiveList>
</dd>
 
<dd> 
<script type="text/javascript">
//<![CDATA[
<MTArchiveList archive_type="Monthly"><MTArchiveDateHeader>FoldNavigation('archive<$MTArchiveDate format="%Y"$>','off',false);</MTArchiveDateHeader>
</MTArchiveList>
//]]>
</script>
</dd>

メニューリスト全体を折りたたみたい場合は、リスト7.1-1 または7.1-2 に、下記の青色部分 *1 を追加してください。

リスト7.2-1 月別アーカイブの年別ツリー化表示+折りたたみ用タグ2(div要素を利用)

<div class="sidetitle" id="monthlyname">
Monthly Archives
</div>
 
<div class="side" id="monthlylist">
<MTArchiveList archive_type="Monthly">
<MTArchiveDateHeader><div id="archive<$MTArchiveDate format="%Y"$>name"><span><$MTArchiveDate format="%Y年"$></span></div><ul id="archive<$MTArchiveDate format="%Y"$>list" class="tree"></MTArchiveDateHeader>
<li class="tree<MTArchiveDateFooter>_end</MTArchiveDateFooter>"><a href="<$MTArchiveLink$>"><$MTArchiveDate format="%B月"$></a> [<$MTArchiveCount$>]</li><MTArchiveDateFooter></ul></MTArchiveDateFooter>
</MTArchiveList>
</div>
 
<script type="text/javascript">
//<![CDATA[
<MTArchiveList archive_type="Monthly"><MTArchiveDateHeader>FoldNavigation('archive<$MTArchiveDate format="%Y"$>','off',false);</MTArchiveDateHeader>
</MTArchiveList>
FoldNavigation('monthly','off',false);
//]]>
</script>

リスト7.2-2 月別アーカイブの年別ツリー化表示+折りたたみ用タグ2(dl/dt/dd要素を利用)

<dt class="sidetitle" id="monthlyname">
Monthly Archives
</dt>
 
<dd class="side" id="monthlylist">
<MTArchiveList archive_type="Monthly">
<MTArchiveDateHeader><div id="archive<$MTArchiveDate format="%Y"$>name"><span><$MTArchiveDate format="%Y年"$></span></div><ul id="archive<$MTArchiveDate format="%Y"$>list" class="tree"></MTArchiveDateHeader>
<li class="tree<MTArchiveDateFooter>_end</MTArchiveDateFooter>"><a href="<$MTArchiveLink$>"><$MTArchiveDate format="%B月"$></a> [<$MTArchiveCount$>]</li><MTArchiveDateFooter></ul></MTArchiveDateFooter>
</MTArchiveList>
</dd>
 
<dd> 
<script type="text/javascript">
//<![CDATA[
<MTArchiveList archive_type="Monthly"><MTArchiveDateHeader>FoldNavigation('archive<$MTArchiveDate format="%Y"$>','off',false);</MTArchiveDateHeader>
</MTArchiveList>
FoldNavigation('monthly','off',false);
//]]>
</script>
</dd>

8.CSS

リスト8.1 をスタイルシートに追加してください。

リスト8.1 CSS

ul.tree {
    margin: 0 0 0 15px;
    padding: 0;
    font-size: 9px;
    list-style: none;
}
ul.tree ul {
    margin: 0 0 0 10px;
    padding: 0;
}
ul.tree li {
    margin: 0;
    padding: 0 0 0 11px;
    background-image: url(tree_lst.gif);
    background-repeat: no-repeat;
    list-style: none;
}
ul.tree li.tree_end {
    background-image: url(tree_end.gif);
    list-style: none;
}

*1:色覚障害等で色が識別できない場合は、サイト右上の「Styles」メニューにある Gray Scale をクリックしてください。IEではグレースケール表示され、青色部分が下線表示、赤色部分が二重下線で表示されます。Firefox/Opera ではカラー表示のままですが下線表示に切り替わります。なお設定の都合上、リンクとテキスト表示が判断できなくなりますので予めご容赦ください。

関連記事
トラックバックURL


トラックバック

アーカイブの表示を変更 from しなやか生活
ブログを始めてから結構経つのでアーカイブに表示される月の数が多くなり、一覧が長く... [続きを読む]

Tracked on January 2, 2007 7:44 PM

月別アーカイブのツリー化+折り畳み from will
月別アーカイブリストをツリー化+自動で折り畳むプラグイン実装。 [続きを読む]

Tracked on March 20, 2007 9:22 PM

月別アーカイブの表示方法改善 from 明日はあしたの風が吹く。
MTでブログを書き始めて数年経ちました。 それとともに、月別のアーカイブリストが、ずらずらと続くように [続きを読む]

Tracked on March 21, 2007 1:57 PM

月別アーカイブの年別ツリー化+折りたたみ。 from Melodies of Pianoman
現在、HTMLで構築しているあるサイトを、MTへ移行する作業を 行っているのでつ... [続きを読む]

Tracked on August 29, 2007 12:24 AM

サイドカラムを徹底的に折りたたみ from ヲレサイト
サイドカラムの中の月別アーカイヴやカテゴリーリストの数が増えてきてスクロールが面倒な感じになってきたのでツリーを折りたためるようにしてみました。すべて小粋... [続きを読む]

Tracked on October 11, 2008 7:24 AM

月別アーカイブが長くなったので折りたたんでみた from アルテッツァの造り方
 左のメニューにある「月別アーカイブ」が2009年1月からダラ~っと長くなってき... [続きを読む]

Tracked on April 1, 2011 5:48 PM
コメント

 yujiroさん、いつも有り難うございます。いつの間にか月別アーカイブのリストが長くなったので、このカスタマイズは個人的にタイムリーでした。いつもながらのご丁寧な説明のおかげでスムースに設定が出来ました。
 滑り込みでMovable Type コンテストにもエントリーされたとのこと、私の方はyujiroさんからの情報で早々とエントリーしてしまったので、何だか落ち着かない気持ちでした。yujiroさんのエントリーでやっと保護者が来てくれたような安心感を覚えています。

[1] Posted by 路子 : December 20, 2006 7:19 AM

>路子さん
こんばんは。
ご利用&ご連絡ありがとうございます。
コンテストも無事エントリーできてホッとしています。ご心配おかけしました。
ではでは!

[2] Posted by yujiro : December 23, 2006 1:16 AM

yujiroさん、以前、さくらのぶろぐのテンプレートでお世話になった、keiです。
この度、さくらのぶろぐとは別に、Movable Type3.35 に挑戦しており、またまた、こちらのテンプレートを基本に使わさせてもらっております。

「JavaScript 不要な月別アーカイブの年別ツリー化+折りたたみ」を設定しているんですが、ツリー化には成功しているんですが、折りたたみが出来ないんです。

「サブカテゴリーリストの折りたたみ(デフォルトテンプレート版)」も同じように設定しており、こちらに関しては、折りたたみに成功しております。

同じfileを使用しているいるので、ダメなんでしょうか?

今の所は、少ないのでわざわざ「月別ツリー化+折りたたみ」をする必要は無いのですが、いずれの事も考えて、出来るようなら設定してみたいと思っています。
最終的には、「月別アーカイブの折りたたみで年表示に折りたたみのリンクを与える」まで行いたいのですが、その前の折りたたみで苦しんでおります。

忙しいとは思いますが、アドバイス頂けたら幸いです、よろしくお願いします。

[3] Posted by kei : June 24, 2007 3:16 AM

>keiさん
こんにちは。
ご無沙汰してます。
ご質問を頂いて初めて気がつきましたが、エントリーが年を跨いだ状態でないと、折りたたみマークが表示されないようです(とりあえず仕様ということでご容赦ください)。

ということで、暫定対処で甚だ恐縮ですが、リスト7.1の場合であれば、

<script type="text/javascript">
//<![CDATA[
<MTArchiveList archive_type="Monthly"><MTArchiveDateHeader>FoldNavigation('archive<$MTArchiveDate format="%Y"$>','off',false);</MTArchiveDateHeader>
</MTArchiveList>
//]]>
</script>

の赤色部分を

<script type="text/javascript">
//<![CDATA[
FoldNavigation('archive2007','off',false);
//]]>
</script>

に置き換えてみてください。
それではよろしくお願い致します。

[4] Posted by yujiro : June 25, 2007 3:22 PM

yujiroさん
 こんばんわ。 そして、 忙しい中サポート有り難うございます。

 あらら、年を跨がないとダメでしたか・・・月別アーカイブって貯まってこないと気になりませんからね。

 カスタマイズにいろいろと気になるよさげなツールがあると、最初から使ってみようと思ったんですが・・・仕様だったら仕方ないですね。

 年を跨ぐまでは、アドバイスしていただいた方法で対応したいと思います。
有り難うございました。

[5] Posted by kei : June 26, 2007 8:33 PM

お世話になっています。何度も教えを請っていますが、MT4.1にバージョンアップしていろいろいじっている内に月別アーカイブの表示が崩れてしまうようになりました。原因がまったく見当つかない為またまた教えを請うことになりました。済みません。
JavaScript不要な月別アーカイブの年別ツリー化+折りたたみを利用させていただいてます。所がArchiveDateFooterがツリーendを検出してくれず、その為レイアウトが崩れてしまうようです。1月やブログ開始月のように以前の同年のデータが無いときには検出しますが、それ以外はブラウズ画面のソースを見ると検出していません。
気になることが3点在るのですが、原因となるのか私には判断がつきません。
(気になる点ー1)
MT4.01のときはカレンダーの導入時に誤ってブログ記事リスト・テンプレートのマッピングで年月アーカイブのチェックボックスのチェックを外してしまい、そのまま運用していました。この時点ではこのような現象は出ていませんでした。
(気になる点ー2)
MT4.1に上げた時に、ブログ記事・テンプレートのマッピングをタイムスタンプやその他に何度か変えてみました。その結果アーカイブ・ディレクトリに数種類のhtmlデータが出来てしまっています。
(気になる点ー3)
MT4.1バージョンアップの際のデータベース再構築の時にprofesional???なるソフトのロードを要求するメッセージが出ていましたが意味が分からずそのままにしてあります。
現象は拙サイトにアクセスしていただけると確認できると思います。
お忙しい中恐れ入ります。よろしくお願いします。

[6] Posted by オーク : February 1, 2008 2:54 PM

お世話になっています。MT4.1にバージョンアップしていろいろいじっている内に月別アーカイブの表示が崩れてしまうようになりました。原因がまったく見当つかない為教えを請いたく伺いました。
JavaScript不要な月別アーカイブの年別ツリー化+折りたたみを利用させていただいてます。所がArchiveDateFooterがツリーendを検出してくれず、その為レイアウトが崩れてしまうようです。1月やブログ開始月のように以前の同年のデータが無いときには検出しますが、それ以外はブラウズ画面のソースを見ると検出していません。
気になることが2点在るのですが、原因となるのか私には判断がつきません。
(気になる点ー1)
MT4.01のときはカレンダーの導入時に誤ってブログ記事リスト・テンプレートのマッピングで年月アーカイブのチェックボックスのチェックを外してしまい、そのまま運用していました。この時点ではこのような現象は出ていませんでした。
(気になる点ー2)
MT4.1に上げた時に、ブログ記事・テンプレートのマッピングをタイムスタンプやその他に何度か変えてみました。その結果アーカイブ・ディレクトリに数種類のhtmlデータが出来てしまっています。
現象は拙サイトにアクセスしていただけると確認できると思います。
お忙しい中恐れ入ります。

[7] Posted by オーク : February 1, 2008 5:03 PM

>オークさん
こんばんは。
ご質問の件ですが、こちらから拝見させて頂いた限りでは、サイドバーの月別アーカイブリストは正常に折りたたみ・ツリー化表示されています。
もし不具合が解消していないようであれば再度ご連絡頂ければ幸いです。
それではよろしくお願い致します。

[8] Posted by yujiro logo : February 4, 2008 12:01 AM

いろいろとご面倒かけて申し訳ありません。
MTについて分け分からずカスタマイズしているものですから。
上記の件、現在はmodule_monthly_archivesの時だけ表示するように戻してフォームの乱れを無くして(ArchiveDateFooterのtree_end検出が出来るように?)運用しています。具体的には月別アーカイブで特定の月の記事を表示させると現象が出ます(除く、1月など年の初め=年の最後のツリー月を表示した場合)。
特定月の場合はメインページ等とはアーカイブの出来方?が違うのでしょうか?。
出来ればどんなケースでも表示したいのですが。

[9] Posted by オーク : February 4, 2008 10:22 PM

>オークさん
こんばんは。
分かりました。動作を確認したところMTの不具合のようです(月別アーカイブで月別アーカイブリストを表示すると全ての月が表示されませんね)。
対処方法は別途エントリー致します。
Six Apartにフィードバックしたいと思います。
それではよろしくお願い致します。

[10] Posted by yujiro logo : February 7, 2008 12:49 AM

はじめまして。
FC2ブログを利用しているものです。
FC2の方でアーカイブをこのように表示したいのですが、
方法はありますか?

[11] Posted by yoonizm : February 8, 2008 8:00 PM

>yoonizmさん
はじめまして。
ご要望の件ですが、表示されているデータを加工すれば不可能ではないと思います。
ただ、現在時間の都合がつかないので、検討事項とさせてください。
それではよろしくお願い致します。

[12] Posted by yujiro logo : February 12, 2008 1:59 AM

はじめまして。いつも参考にさせて頂いております。

拙ブログ(MT4.1)にて公開テンプレートを導入させて頂いておりますが、「JavaScript 不要な月別アーカイブの年別ツリー化+折りたたみ」を導入したところ、先にオーク氏が報告されている「月別アーカイブの表示不具合」と「レイアウト崩れ」が発生いたしました。

レイアウト崩れの方はインデックスページと年の最初(一番下)の月以外で起きていて、リストの閉じタグが書き出されていないため、それ以降のリストタグを巻き込んでレイアウトを崩しているようです。

オーク氏のサイトではレイアウトの崩れるページで表示しないように対処されているようなので、拙ブログで状態を確認して頂けると思います。お時間が出来た時にでも助言を頂ければ幸いです。

[13] Posted by なべちん : March 4, 2008 6:37 PM

>なべちんさん
こんにちは。
ご質問の件ですが、「「月別アーカイブリスト」が月別アーカイブで正常に表示されない不具合について」が参考になれば幸いです。
それではよろしくお願い致します。

[14] Posted by yujiro logo : March 8, 2008 3:39 PM

こんにちは。

お陰様でアーカイブリストの表示不具合とレイアウト崩れを解消することが出来ました。ありがとうございます。

ところで、同じようにカテゴリーの月別アーカイブにも導入しようと、アーカイブタイプを「Category-Monthly」に入れ替えようとしたのですが…もしかしてArchiveDateHeaderプラグインはMonthlyとWeeklyしか対応していないっぽいですか?

[15] Posted by なべちん : March 10, 2008 5:15 PM

>なべちんさん
こんばんは。
ご連絡ありがとうございました。
ご質問の件ですが、たしかそうだったと記憶しています。
時間があったらうまくできる方法を探してみます。
ではでは!

[16] Posted by yujiro logo : March 11, 2008 2:02 AM

yujiroさん、こんばんわ。
いつも参考にさせてもらっています。
今までアップグレードで対応してきたのですが、この度、MT4.1を新規にインストールしたうえで記事のインポートでここまで移行してきました。
今回、「月別アーカイブの年別ツリー化+折りたたみ」と「年表示に折りたたみのリンクを与える」を設定してみましたが、「年表示に折りたたみのリンクを与える」の部分が月別アーカイブページでうまく作動しないので困っています。
例えば、2006年12月のアーカイブページの場合、2006年の部分は折りたたみが出来るのですが、それ以外の年は折りたたみのリンクがありません。
色々と自分なりに弄ってはみたのですが、スキル不足でお手上げ状態なのです。
用務ご多忙とは存じますが、アドバイスもらえれば有り難く思います。

[17] Posted by もんち logo : March 12, 2008 11:37 PM

>もんちさん
こんばんは。
ご返事遅くなりすいません。
ご質問の件につきまして、[14]の回答の応用ですが、

<script type="text/javascript">
//<![CDATA[
<MTArchiveList archive_type="Monthly"><MTArchiveDateHeader>FoldNavigation('archive<$MTArchiveDate format="%Y"$>','off',false);</MTArchiveDateHeader>
</MTArchiveList>
//]]>
</script>

<script type="text/javascript">
//<![CDATA[
<MTArchiveList archive_type="Monthly">
<mt:ArchiveListHeader></mt:ArchiveListHeader>
<MTArchiveDateHeader>FoldNavigation('archive<$MTArchiveDate format="%Y"$>','off',false);</MTArchiveDateHeader>
</MTArchiveList>
//]]>
</script>

に変更して試してみてもらえますでしょうか。
それではよろしくお願い致します。

[18] Posted by yujiro logo : March 18, 2008 1:21 AM

yujiroさん。
早速、試してみたところ、上手く、表示されました。
大変、有難うございました。

[19] Posted by もんち logo : March 18, 2008 11:27 PM

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

[20] Posted by yujiro logo : March 20, 2008 2:13 AM

はじめまして。
いつもお世話になっております。

さて、ここのコメントの3~5の年をまたがないと折りたたみマークが表示されない件ですが、
リスト7.2に記載されている <MTArchiveDateHeader> と </MTArchiveDateHeader> を取り外すと1年目からでも正常に動作しませんか?
【オリジナル】
<MTArchiveList archive_type="Monthly"><MTArchiveDateHeader>FoldNavigation('archive<$MTArchiveDate format="%Y"$>','off',false);</MTArchiveDateHeader>
</MTArchiveList>

【修正後】
<MTArchiveList archive_type="Monthly">FoldNavigation('archive<$MTArchiveDate format="%Y"$>','off',false);
</MTArchiveList>

私が試した感じでは、年をまたがなくても折りたたみマークが表示され、2年目もソースに手をつけずに動作しているように見受けられました。
間違っていたらすいません。

[21] Posted by shin : April 15, 2008 10:38 PM

>shinさん
こんばんは。
ご提案の件ですが、ここで実現したいことは、各年毎に「FoldNavigation」を表示させたいので、MTArchiveDateHeaderの中で表示するようにしています。
MTArchiveListに直接「FoldNavigation」を記述すると、おそらく月数分の「FoldNavigation」が表示されるのではないかと思います。
が、折りたたみが正常に動作するのであれば、それはそれでありかと思います。
それではよろしくお願い致します。

[22] Posted by yujiro logo : April 15, 2008 11:56 PM

ご指導ありがとうございます。
ただいまソースを見た所ご指摘の状況が再現しておりました。
正常に動作しているように見受けられた為、ソースの確認がもれておりました。

また ArchiveDateHeader プラグインを用い下記の表示を行ってみたところ、
年をまたいでないと、年が表示されないことを確認しました。
http://www.koikikukan.com/archives/2006/06/19-010000.php

本件を仕様動作とされているのは、 ArchiveDateHeader プラグインが年をまたぐことによって、
始めて機能するプラグインだった為なんですね。

お手数おかけしました。
それでは。

[23] Posted by shin : April 16, 2008 12:57 AM

>shinさん
こんばんは。
ご連絡ありがとうございました。
何かいい案がみつかったらエントリーします。
ではでは!

[24] Posted by yujiro logo : April 16, 2008 1:34 AM

昨夜は二重投稿してしまい申し訳ございません。
年をまたがない場合のみ別途 FoldNavigation を出力するように組んでみました。
良い案を見つける際の参考にしていただければ幸いです。
不具合が混入しているかもしれませんが・・・。
MTCollate プラグインと TrimX2Y プラグインと php を使用しています。

処理内容としては、下記のような感じです。
1. MTCollate プラグインで投稿月一覧のリストを作成し、trimx2yで先頭4文字(西暦)を抜き出す。
2. MTCollate プラグインで昇順にソートし最新1件を取得する(これで一番古い年が得られます)。
3. 一番新しい年月を取得し、trimx2yで先頭4文字(西暦)を抜き出す。
4. 2(一番古い年)と3(一番新しい年)を比較し、等しければ一番古い年の FoldNavigation を出力する。

--------------------------------------------------------------------------------
<MTIgnore>投稿月を元に投稿年のリストを作る</MTIgnore>
<MTCollateCollect name="GETYEAR">
<MTArchiveList archive_type="Monthly">
<MTCollateRecord>
<MTIgnore> MTArchiveTitle では 2008年10月 のような値になるので、 TrimX2Y で先頭4文字のみ取得する</MTIgnore>
<MTCollateSetField name="Month"><$MTArchiveTitle trimx2y="-4"$></MTCollateSetField>
</MTCollateRecord>
</MTArchiveList>
</MTCollateCollect>

<?php
// 一番古い年を取得する(昇順でソート)。
$lastyear = "<MTCollateList name="GETYEAR" limit="1" sort="Month:+"><MTCollateField name="Month"></MTCollateList>";
// 一番新しい年を取得する( MTArchiveTitle では 2008年10月 のような値になるので、 TrimX2Y で先頭4文字のみ取得する)。
$newyear = "<MTArchiveList archive_type="Monthly" lastn="1"><$MTArchiveTitle trimx2y="-4"$></MTArchiveList>";
?>

<script type="text/javascript">
//<![CDATA[
<MTArchiveList archive_type="Monthly"><MTArchiveDateHeader>
FoldNavigation('archive<$MTArchiveDate format="%Y"$>','off',false);
</MTArchiveDateHeader></MTArchiveList>

<?php
// 一番古い年と一番古い年を比較し、等しければ MTArchiveDateHeader で FoldNavigation を出力しないので、一番古い年の FoldNavigation を出力する。
if ($lastyear == $newyear) { ?>
FoldNavigation('archive<?php echo $lastyear; ?>','off',false);
<?php } ?>
FoldNavigation('monthly','off',false);
//]]>
</script>
--------------------------------------------------------------------------------

それでは。

[25] Posted by shin : April 16, 2008 2:55 PM

>shinさん
こんにちは。
情報ありがとうございました!
取り急ぎお礼まで。

[26] Posted by yujiro logo : April 16, 2008 5:05 PM

yujiroさま。こんにちわ。いつもお世話になっております。
文字化けしてしまってから色々といじっていたら訳が分からなくなり
再度、やり直しをしています(-_-;)URLが変更になっております。

月別アーカイブの年別ツリー化+折りたたみは出来ているのですが
2008年May [1]と2007年August [1]の最初と最後はちゃんと
表示されるのですが・・・間に増えてクリックするとスタイルシートが
崩れてしまい、月別アーカイブの中へLink下全部が入ってしまいます。

お忙しいとは思いますが・・・宜しくお願い致します。


[27] Posted by アプル logo : May 9, 2008 11:26 AM

>アプルさん
こんにちは。
ご質問の件ですが、月別アーカイブリストにul要素の終了タグが抜けているようです。
表示が崩れるのは大抵、HTMLマークアップ誤りなので、まずは下記のサイトでチェックしてみてはいかがでしょうか。

Another HTML-lint gateway

それではよろしくお願い致します。

[28] Posted by yujiro logo : May 9, 2008 1:21 PM

yujiroさま。こんにちわ。いつもお世話になっております。
早速のご指導をありがとうございます。

何とかスタイルシートの崩れはなくなったのですが・・・
今度は、最初と最後はいいのですが・・・
やはり間の月別アーカイブでジャンプをすると
ツリーが伸びっぱなしになってしまいます。

そして「月別アーカイブリスト」が月別アーカイブで正常に表示されない
不具合についてのように表示したいと思っていて下記を入れると

<MTArchiveListHeader><ul></MTArchiveListHeader>

<MTArchiveListFooter></ul></MTArchiveListFooter>

ジャンプした時に折りたたみが出来なくなってしまいます(-_-;)

お忙しいとは思いますが・・・宜しくお願い致します。


<

>

[29] Posted by アプル logo : May 9, 2008 4:51 PM

>アプルさん
こんばんは。
ご質問の件ですが、解消しましたでしょうか。
まだ不具合が残っているようでしたらご連絡ください。
それではよろしくお願い致します。

[30] Posted by yujiro logo : May 17, 2008 4:16 AM

yujiroさま。こんにちわ。いつもお世話になっております。
テンプレートのサイドバーの位置を変えようとしていたら
おかしくなり・・・再度、テンプレートをやり直しております。
って・・・↑の質問と同じになって悩んでおります。

カレンダーの日付けからジャンプするとMonthly Archivesの
ツリー表示(|)が伸びっぱなしとなり、閉じてくれません。(└)
下記のようになってしまいます。

2009年
├March月 [1]

お忙しいとは思いますが、ご指導を宜しくお願い致します。

[31] Posted by アプル logo : March 4, 2009 2:38 PM

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

何とかツリー化が出来ましたが・・・(-_-;)
今度は、折りたたみマークが出ずに年度が折りたたみに
なってしまいます。何が悪いのでしょうか?
カレンダーの日付からジャンプするとMonthly Archivesが
全表示しないのですが・・・折りたたみマークが出ない事が
原因なのでしょうか?

お忙しいとは思いますが、ご指導を宜しくお願い致します。

[32] Posted by アプル logo : May 14, 2009 12:12 PM

yujiroさま。こんにちわ。いつもお世話になっております。
お返事が遅れてしません(-_-;)
最初(Movable Type4.1)からやり直しし4.25に
UPしてエラーも出ましたが、自己解決致しました。
お手数をおかけしました。ありがとうございました。
これからも質問するかもしれませんが
宜しくお願い致します。

[33] Posted by アプル : May 27, 2009 9:59 PM

>アプルさん
こんにちは。
ご質問の件、お手伝いできず申し訳ありません。
無事に直ったようで良かったです。
また何かありましたらご連絡ください。
ではでは!

[34] Posted by yujiro logo : May 29, 2009 12:45 PM

こんにちは。参考にさせていただき、月別アーカイブをツリー化と折りたたみしてみました。

そこでちょっとうまくいっていないんですが、トップページはいいんですが、アーカイブを展開して、どこか適当な月の記事に移動した後、なぜかアーカイブメニューがその月の分しか表示されなくなってしまうんです。

何か間違えているのだとは思うのですが、修正方法などご教授いただければと・・・。

お忙しいところすみませんが、お助け下さい。

[35] Posted by なぐ : November 1, 2009 11:30 AM

>なぐさん
こんばんは。
ご利用ありがとうございます。
ご質問の件ですが、まずは普通の月別アーカイブリストを表示させて、どのよう表示されるかご確認願えますでしょうか。
それではよろしくお願い致します。

[36] Posted by yujiro logo : November 8, 2009 2:31 AM

はじめまして。
FC2ブログで「アーカイブのツリー化+折り畳み」を行おうとしています。
色々なサイトを見ていて、様々な方法を用いていますが、
思う様に「アーカイブのツリー化+折り畳み」が出来ないでいます。
小粋空間様で使えそうかなと思ってみたのですが、
FC2のブログでは、[.pl]がアップロード出来ません。
また、何処をいじれば上手く行くかも分からないでいます。
(他のサイト様でも同じように、ツリー化+折り畳みを試みていますが、崩れたり、表示されなかったり…)
たぶん、私は「plugins ディレクトリ」で躓いたかも…。

あ、HTMLやCSS、javascriptは分かる方です。

他のサイト様で恐縮なのですが、
『ぱろでい日記 月別アーカイブを折りたたむ』と言うのを見掛けました。
http://anabas.blog107.fc2.com/blog-entry-591.html
です。
こちらの方法を使おうとしても、なかなか上手く出来ず…。

私のブログは、2カラムの左サイドバー仕様です。
fc2で問い合わせようとしたところ、既に誰かが同じ事を聞いていました。

ん~、久々に頭が混乱しています。
(スクリプト自体、少ししか理解していないからかも…。
まして、.plとか「?」になりかけています…。)

fc2で出来る方法を探しているのですが、
「Movable Type」という言葉も多く見受けられ…。
(もしかして、根本的に飲み込めていないのか???(><)

何だか、夜通しPCと睨めっこが暫し続きそうです…。


やりたい事が出来ないのは、歯痒いものですね。
(あ、こんなの私だけか…。)

[37] Posted by momo : April 21, 2010 12:20 AM
コメントする
greeting

*必須

*必須(非表示)


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

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

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

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