以下の内容はhttp://10plate.blog44.fc2.com/blog-entry-134.htmlより取得しました。


アイコン付きツリー化カテゴリー

以前にカテゴリーのツリー化をする方法として、FCafeのdanielさんが作成した共有プラグインTree-CATEGORYを紹介しました。これを参考に各カテゴリごとにアイコンを表示できる『アイコン付きツリー化カテゴリー』を作成して共有プラグインに登録したのでこれを紹介します。

プラグインのHTMLは次のようになっています。

<style type="text/css" media="all">
<!--
#ICA p {
margin: 4px 0 2px;
}
#ICA ul {
margin:2px 0 4px;
padding:0;
}
#ICA li {
background-repeat: no-repeat;
list-style-type:none;
list-style-image: none;
margin:0;
padding:2px 0;
}
#ICA li.branch {
background-image: url(http://blog-imgs-19.fc2.com/1/0/p/10plate/branch.gif); /*ツリー画像 */
padding-left:20px;
}
#ICA li.branch_end {
background-image: url(http://blog-imgs-19.fc2.com/1/0/p/10plate/branch_end.gif); /*ツリー画像(最後尾) */
padding-left:20px;
}
//-->
</style>

<div class="tree" id="ICA"><ul>
<!--category--><li>
<a href="<%category_link>" title=""><%category_name>&nbsp;(<%category_count>)</a>
</li><!--/category-->
</ul></div>

<script type="text/javascript"><!--
var A=document.getElementById('ICA').getElementsByTagName('A');
var C=new Array(); var icon=new Array(); var n=1; I="";

/* ■ツリー化設定 */
C[1]="グループA,1,2";
C[2]="グループB,3,4";


/* ■アイコン画像URL */
icon[1] = "http://blog44.fc2.com/image/e/180.gif";
icon[2] = "http://blog44.fc2.com/image/e/181.gif";
icon[3] = "http://blog44.fc2.com/image/e/182.gif";
icon[4] = "http://blog44.fc2.com/image/e/183.gif";
icon[5] = "http://blog44.fc2.com/image/e/184.gif";
icon[6] = "http://blog44.fc2.com/image/e/185.gif";
icon[7] = "http://blog44.fc2.com/image/e/186.gif";
icon[8] = "http://blog44.fc2.com/image/e/187.gif";
icon[9] = "http://blog44.fc2.com/image/e/188.gif";


for (i=1;i<C.length;i++){ p=C[i].split(','); l=p.length; if(l>1){
I=I+'<p><img src='+icon[n++]+' align="absmiddle" border="0"> <b>'+p[0]+'</b></p>';
I=I+'<ul>';
for (k=1;k<l;k++){ q=p[k]-1;
if(k==l-1) {I+='<li class="branch_end"><a href="'+A[q].href+'" title="'+A[q].innerHTML+'">'+A[q].innerHTML+'</a></li>'; A[q].title="-";}
else {I+='<li class="branch"><a href="'+A[q].href+'" title="'+A[q].innerHTML+'">'+A[q].innerHTML+'</a></li>'; A[q].title="-";}
} I+='</ul>';
} }
for (i=0;i<A.length;i++){if (A[i].title!="-") {
p= A[i].innerHTML.split('&nbsp;');
I+='<ul><li><img src='+icon[n++]+' align="absmiddle" border="0"> <a href="'+A[i].href+'" title="'+p[0]+'">'+p[0]+'</a></li></ul>';
} }
document.getElementById('ICA').innerHTML=I;
--></script>



【ツリー化の手順】
FCafeのdanielさんのTree-CATEGORYと同様です。C[n]を編集します。

/* ■ツリー化設定 */
C[1]="グループA,1,2";
C[2]="グループB,3,4";

この場合1番目と2番目にあったカテゴリが『グループA』、3番目と4番目にあったカテゴリが『グループB』としてツリー化されます。C[3],C[4]…と好きなだけ追加してください。

【アイコン画像設定】
アイコン画像は各カテゴリごとに自由に変えられます。icon[n]を編集します。

/* ■アイコン画像URL */
icon[1] = "http://~/A.gif";
icon[2] = "http://~/B.gif";

icon[1]に設定したアイコン画像A.gifは、C[1]のアイコンとして表示されます。これもicon[3],icon[4]…と好きなだけ追加してください。

【アイコンは付けたいがグループ化は不要】
アイコンは付けたいけどグループ化(ツリー化)は必要ないという場合は

/* ■ツリー化設定 */
C[1]="グループA,1,2";
C[2]="グループB,3,4";

この部分を削除してください。

【行間を変えたい】
グループ(ツリー)内の行間を変更したい場合

#ICA li {
background-repeat: no-repeat;
list-style-type:none;
list-style-image: none;
margin:0;
padding:2px 0;
}

グループ(ツリー)同士の間を変更したい場合

#ICA ul {
margin:2px 0 4px;
padding:0;
}

この赤い数値をお好みの間隔になるように設定してください。

【グループの大見出しの色を個別に変えたい】

/* ■ツリー化設定 */
C[1]="グループA,1,2";
C[2]="グループB,3,4";
/* ■見出しの色設定 */
var col=new Array(); var r=1;
col[1]="#ff0000";
col[2]="#0000ff";

/* ■アイコン画像URL */

for (i=1;i<C.length;i++){ p=C[i].split(','); l=p.length; if(l>1){
I=I+'<p><img src='+icon[n++]+' align="absmiddle" border="0"> <b style="color:'+col[r++]+'">'+p[0]+'</b></p>';

この赤い部分の記述を加えてください。col[1]の色がC[1]の見出しの色に対応しています。
col[2],col[3]…と増やしてそれぞれの見出しの色を個別に設定できます。

関連記事
[ 2007/02/07 01:15 ] 共有プラグイン | TB(3) | CM(144)



以上の内容はhttp://10plate.blog44.fc2.com/blog-entry-134.htmlより取得しました。
このページはhttp://font.textar.tv/のウェブフォントを使用してます

不具合報告/要望等はこちらへお願いします。
モバイルやる夫Viewer Ver0.13