2006年10月09日

カテゴリをツリー化

サイドバーのカテゴリが増えてくると見にくくなってしまいます。
ただ並んでいるだけでなく綺麗に整理したいですよね。

カテゴリをツリー化してみましょう。

ツリー化を行うことによってサブカテゴリが作られ、
カテゴリーが増えても綺麗に整理できます。

実際にどのようになるのかはこのブログのカテゴリの部分を見てください。

Des notes de KOHtanさんで紹介されている方法を元に私も設置してみました。
以下に自分なりに分かりやすく設置方法を纏めておきます。



【設置方法】

1.Javascriptを作る

◆ 日記       ←メインカテゴリ
├バトン(10)   ←サブカテゴリ

カテゴリが上記のようになるのを目指します。

メモ帳などに以下をコピペして下さい。

<SCRIPT language="JavaScript">
<!--

//////////////////////////////////////////////////////////////////////////////////
tree("カテゴリ","右or左");   //←自分のブログのカテゴリ名
//////////////////////////////////////////////////////////////////////////////////


function tree(title,position)
{
var category=new Array();
var subcategory=new Array();
category[0]=null; subcategory[0]=null;

if(position=="左"){
position="links-left";
}else if(position=="右"){
position="links";
}else{
return;
}

var tmp=document.getElementById(position).getElementsByTagName('div');

for(var i=0;i<tmp.length;i++){
if(tmp[i].innerHTML==title) break;
}
if(i==tmp.length) return;

var target=tmp[i+1];
var tmp2=target.getElementsByTagName('a');
for(var j=0;j<tmp2.length;j++){
var link=tmp2[j].innerHTML;
if(tmp2[j].innerHTML.indexOf(">")==-1){
category[j+1]="<a href="+tmp2[j].getAttribute('href')+">"+ link+"</a>";
subcategory[j+1]=null;
}else{
category[j+1]=link.substring(0,link.indexOf(">"));
subcategory[j+1]="<a href="+tmp2[j].getAttribute('href')+">"
+link.substring(link.indexOf(">")+1,link.length)+"</a>";
}
}
category[j+1]=null; subcategory[j+1]=null;

//出力
var tmpHTML="<br>";
for(i=1;i<(category.length-1);i++){
if(subcategory[i]==null){
tmpHTML+=("◆ "+category[i]+"<br><br>");
}else{
if(category[i]!=category[i-1]) tmpHTML+=("◆ "+category[i]+"<br>");
if(category[i]==category[i+1]){
tmpHTML+=("├"+subcategory[i]+"<br>");
}else{
tmpHTML+=("└"+subcategory[i]+"<br><br>");
}
}
}
target.innerHTML=tmpHTML;
}

// -->
</SCRIPT>

上記の赤い部分を自分のブログに合わせて変更する。

tree("カテゴリ名","カテゴリがあるのはどちらのサイドバーか");

例)右サイドバーにカテゴリがあり、カテゴリ名が「カテゴリ」の場合
tree("カテゴリ","右");

注1)カテゴリ名はメインカテゴリ名ではありません。
  うちのブログで「カテゴリ」となっている部分です。
  大抵のブログは「カテゴリ」や「Category」という名称のはずです。


注2)上記ソースの「◆ 」は各メインカテゴリの頭に付きます。
  各自好きなように変更してください。


2.HTML編集

マイブログ→デザイン→HTML→HTMLの追加
(過去に追加している場合はそれを編集するか、
 今回追加したものに過去のも合わせて編集)

一番最後の「</div>」と「</body></html>」の間に上で作ったスクリプトを
コピペして保存する。

注)今回作ったものを「適用」するのを忘れずに。


3.コンテンツHTML編集

マイブログ→デザイン→コンテンツ→カテゴリ
→右上の「コンテンツHTMLの編集」

変更前
<div class="sidetitle"><% content.title %></div>
<div class="side">
<% content.header -%>
<% loop:list_category -%>
<a href="<% category.page_url %>"><% category.name | tag_break %></a>(<% category.article_count | __or__ | echo("0") %>)<br />
<% /loop -%>
<% content.footer -%>
</div>


変更後
<div class="sidetitle"><% content.title %></div>
<div class="side">
<% content.header -%>
<% loop:list_category -%>
<a href="<% category.page_url %>"><% category.name | tag_break %>(<% category.article_count | __or__ | echo("0") %>)</a><br />
<% /loop -%>
<% content.footer -%>
</div>

</a>の位置が変わっただけ。

これを行うことで以下のようにサブカテゴリに記事数が表示される。
◆ 日記
├バトン(10)


4.サブカテゴリを作成

◆ 日記
バトン(10)

この赤い部分です。

通常カテゴリを追加するのと同様に
マイブログ→記事→記事カテゴリ

カテゴリ名を「メインカテゴリ名>サブカテゴリ名」とします。
「>」は全角であることに注意して下さい。

例)メインカテゴリ「日記」にサブカテゴリとして「バトン」を追加
記事カテゴリ名「日記>バトン」

メインカテゴリ、サブカテゴリは今後いくらでも増やせます。


5.再構築する

まずトップページを再構築して、出来てるか確認します。
ちゃんと出来ていたらブログ全体を再構築しましょう。
カテゴリがツリー化されていれば成功です。



読んでいるだけで理解するのは大変なので、一度上記の手順で編集してみましょう。
実際にやることによって「意外にに簡単かも」って思えるでしょう。


もし分からないことがあれば、コメントにて質問していただければ
答えられる範囲でお答えします。
posted by シス at 14:51 | Comment(5) | 日記>ブログカスタマイズ | *
この記事へのコメント
だめだああああああ
サッパリワカラン・・・_| ̄|○
私の頭のOSをなんとかしてくらさい・・・_| ̄|○
でも、おかげでシスさんの知的な部分に
ご飯3杯いけますた(*´д`*)ハァハァ

お洋服、いいの買えたですか〜♪?
漫画読み終わったのですが、あれって途中でおわっちゃってるよね〜><??
Posted by リトルラビ at 2006年10月10日 07:46
私もわからん分からん言いながら朝からずっとやってたんよorz
でも出来たのは超地味という・・・
というかJavascriptは拾ってきたのに何処でこんなに迷ったのかとw

後はラビさんのブログっぽく、自分のコメントだけ色付けたいんだけどね〜。
どっかにJavascriptおっこって無いかしらw

洋服は・・・洋服は・・・
連休引きこもってたよ私orz
買い物行こうって言われた気がするけど断ったしなぁ・・・
恋をしたら頑張るよ(ぉぃ
Posted by シス at 2006年10月10日 07:59
ぁ、あと漫画は1日2ページ更新らしいよ。
Posted by シス at 2006年10月10日 08:27
ありがとうございました!
どこで探して説明文を読んでも、チンプンカンプンなわたしで
諦めていましたが、シス様のおかげで、なんとかこんなわたしでも
できました!
本当にありがとうございました!
すごくわかりやすかったです(*^_^*)
感謝しております!
ありがとうございました!
Posted by ありん at 2007年10月31日 14:30
ぉ〜、稚拙な文章だったと思いますが
お役に立てて嬉しいです!><
しかし、シス様なんて((((;゚Д゚)))
私は他サイト様からやり方を教えてもらってるだけのヘタレorz

シーサーブログは色々カスタマイズできますからね。
うちのブログも色々やってますが
その中でも「クッキー保存」なんて便利ですよ!
もしよければ、右のカテゴリから「ブログカスタマイズ」でやり方が乗ってます。
Posted by シス at 2007年10月31日 14:50
コメントを書く
お名前: [必須入力]

メールアドレス:

ホームページアドレス:

保存しますか?

コメント: [必須入力]