CodingFirst

C言語、Perl、JavaScript、最近はPythonも。出来上がったものより、プログラムを書くことが好き。あと、スイーツ。

スポンサーサイト

  • このエントリーをはてなブックマークに追加
  • web拍手 by FC2
上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

FC2の月別アーカイブを階層化する

  • このエントリーをはてなブックマークに追加
  • web拍手 by FC2

FC2の公式プラグインの月別アーカイブの表示を1段階層化してすっきりさせる。

まず、テンプレ部分。

ポイントは、

  • 改行・空白を取り除く
  • ulにidタグを付ける
  • liにnameタグを付ける("/"をセパレータに階層化のルールを書く)

その直後で javascriptで ulのリストをカテゴリ分けに振り直す。


liのリストを取得して、順にliを自身のnameに書かれた階層化へ移動する。 階層が無い時は追加する...という感じ。めんどくさいので再帰はなし。

年を複数かかなくなった分だけ見栄えがよくなったが、 行数が増えたのがちょっとやだな。

#monthly ul li {
 display : inline;
 list-style-type : none;
}

と悪あがき。でも、あまり見栄えがよくならない。css追加はなしで、pluginをちょっと書き換えて調整。

(function (id){
var ul=document.getElementById(id);
for (var li=ul.firstChild;li;){
 var name=li.attributes["name"].value;
 var cat=name.split("/",1)[0]; 
 var cname=name.slice(cat.length+1);
 var cid=id+cat;
 var cli=document.getElementById(cid);
 if(!cli){
  cli=document.createElement("li");
  cli.innerHTML=cat + "年
"; cli.setAttribute("id",cid); ul.insertBefore(cli,li); } cli.innerHTML += " " + li.innerHTML; var n=li.nextSibling; ul.removeChild(li); li=n; }})("monthly");

innerHTMLとか使うあたり、ゴリ押し感があるけど、一応、満足。

スポンサーサイト


★☆★コメント★☆★

コメントの投稿

Name
Subject
Mail
URI
Comment
Pass
Secret 管理者にだけ表示を許可する

トラックバック

http://iyukki.blog56.fc2.com/tb.php/28-c8dd5689

 | HOME | 

Search

Recent Entries

Foot Print



Categories

Monthly

Recent Comments

Recent Trackbacks

Profile

上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。