スポンサーサイト

スポンサー広告 | --.--.--
上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

FC2 で カテゴリー を ツリー化

[ カスタマイズ ] FC2ブログ で カスタマイズ | 2009.05.22

ツリー化 というのをご存知ですか?
今回は カテゴリー を ツリー化 する 方法 を
ご紹介したいと思います。
私は FC2ブログ を使っているので、
FC2ブログ での 方法 をご説明します。

ツリー化 とは?


私の ブログ の カテゴリー ・ コメント の欄を
見てもらえたらわかると思いますが、
ツリー化 されて リスト が表示されていますよねっ。
これが ツリー化 です。

そして今回は カテゴリー の ツリー化 の方法をご紹介します。

ツリー化スクリプト を挿入


まずは、管理画面にある「 テンプレートの設定 」を開くと、
「 HTMLの編集 」と「 スタイルシートの編集 」の2つがありますよねっ。
「 HTMLの編集 」画面を見てください。
たくさんの暗号みたいなものが並んでいますよねっ。
全然分からないという方でも簡単ですので順を追ってご説明しますねっ。

右にスクロールバーがあるので、一番下までスクロールさせてください。
すると</body>があると思います。
この</body>の直前(上)に
下記の ツリー化スクリプト をコピーして貼り付けてください。

<script type="text/javascript">
<!--
function makeTreeElements (idName,objList) {
if (!objList.innerHTML) return;
var objLink = objList.getElementsByTagName('a')[0];
var linkUrl = objLink.getAttribute('href');
if (idName.indexOf('comment') > -1 || idName.indexOf('tb') > -1) {
var tmpText = objList.innerHTML.split("⇒");
tmpText[0] = tmpText[0].slice(0,tmpText[0].search(/<BR/i));
this.base = Array('<a href="',linkUrl,'">',tmpText[0],'</a>').join('');
this.elem = objLink.innerHTML;
} else if (idName.indexOf('entry') > -1) {
var tmpText = objList.innerHTML;
tmpText.match(/\((\d\d\/\d\d)\)/);
this.base = Array('<strong>',RegExp.$1,'</strong>').join('');
this.elem = Array('<a href="',linkUrl,'">',objLink.innerHTML,'</a>').join('');
} else if (idName.indexOf('link') > -1) {
var tmpText = objList.innerHTML;
if ( tmpText.match(/\[(.+)\](.+)/) ) {
this.base = Array('<strong>',RegExp.$1,'</strong>').join('');
this.elem = Array('<a href="',linkUrl,'" target="_blank">',RegExp.$2,'</a>').join('');
}
} else if (idName.indexOf('category') > -1) {
var tmpText = objList.innerHTML;
if ( tmpText.match(/\[(.+)\](.+)/) ) {
this.base = Array('<strong>',RegExp.$1,'</strong>').join('');
this.elem = Array('<a href="',linkUrl,'">',RegExp.$2).join('');
}
} else if (idName.indexOf('archive') > -1) {
var tmpText = objList.innerHTML;
tmpText.match(/\((\d+)\)/);
var tmpCnt = Array(' (', RegExp.$1, ')').join('');
tmpText = objLink.innerHTML;
tmpText.match(/(.+) (\d+)/);
this.base = Array('<strong>',RegExp.$2,'</strong>').join('');
this.elem = Array('<a href="',linkUrl,'">',RegExp.$1,'</a>', tmpCnt).join('');
}
return this;
}
function createTreeList(idName,option) { // version 2.2
var objFocus = this.document.getElementById(idName);
if (!objFocus) return;
if (!objFocus.innerHTML) return;
var objLists = objFocus.getElementsByTagName('li');
var linkList = new Array();
var outText = new Array();
if (objLists.length > 0) {
for (i=0;i<objLists.length;i++) {
var chckFlag = true;
var elemText = new makeTreeElements(idName,objLists[i]);
if (!elemText.base || !elemText.elem) return;
for (j=0;j<linkList.length;j++) {
if ( linkList[j].base.indexOf(elemText.base) > -1 ) {
chckFlag = false;
linkList[j][linkList[j].length] = elemText.elem;
}
}
if (chckFlag) {
var tmpNum = linkList.length;
linkList[tmpNum] = new Array();
linkList[tmpNum][0] = elemText.elem;
linkList[tmpNum].base = elemText.base;
}
}
if (linkList.length > 0) {
outText[outText.length] = '<ul>\n';
for (i=0;i<linkList.length;i++) {
outText[outText.length] = Array('<li>',linkList[i].base,option.top).join('');
if (linkList[i].length > 0 && option.sort) linkList[i].reverse();
for (j=0;j<linkList[i].length;j++) {
outText[outText.length] = (j == linkList[i].length - 1) ? option.end : option.list;
outText[outText.length] = Array(linkList[i][j],option.leef).join('');
}
outText[outText.length] = Array(option.btm,'</li>').join('');
}
outText[outText.length] = '</ul>\n';
objFocus.innerHTML = outText.join('');
}
}
}
var gTreeOption = new Array;
gTreeOption['sort'] = false; /* ツリー内の表示順 true:並び替える false:そのまま */
gTreeOption['list'] = '├ '; /* ツリー用マーク(通常) */
gTreeOption['end'] = '└ '; /* ツリー用マーク(末端) */
gTreeOption['leef'] = '<br />\n'; /* 各枝の末尾 */
gTreeOption['top'] = '<br />\n'; /* ツリー本体の最初 */
gTreeOption['btm'] = ''; /* ツリー本体の最後 */
createTreeList('newentrylist',gTreeOption); // 最新エントリリストのツリー化
createTreeList('entrylist',gTreeOption); // エントリリストのツリー化
createTreeList('commentlist',gTreeOption); // 最新コメントリストのツリー化
createTreeList('tblist',gTreeOption); // 最新トラックバックリストのツリー化
createTreeList('linklist',gTreeOption); // リンクリストのツリー化
createTreeList('categorylist',gTreeOption); // カテゴリリストのツリー化
// -->
</script>


カテゴリー の HTML 編集


では次にプラグインの HTML を 編集 しましょう。
  • 「プラグインの設定」を開いてください。
  • カテゴリーのプラグインを開いてください。
  • 【HTMLの編集】 というのがありますよねっ。これを開いてください。

開くと カテゴリー の HTML がありますよねっ。
このままの HTML では ツリー化 がムリなので、すべて消しちゃってください。
そして下記をコピーして貼り付けてください。

<div id="categorylist">
<ul>
<!--category-->
<li><a href="<%category_link>"><%category_name></a> (<%category_count>)</li>
<!--/category-->
</ul>
</div>


カテゴリー名 を 編集


カテゴリー がたくさんあるという方はめんどくさいかも・・・。
でも1度やってしまえばオッケーなのでがんばりましょう。
  • 「カテゴリーの編集」を開く。
  • すべてのカテゴリー名を [見出し]カテゴリー名 に変更する。
  • [見出し]カテゴリー名 の[ ]の部分は、半角にする。
  • すべてのカテゴリー名[見出し]カテゴリー名 の形にする。

どうですか?わかりましたか?
例えばこの記事の カテゴリー で説明しますと
[見出し]カテゴリー名 → [カスタマイズ]HTMLとスタイルシート
ということになります。


ということで

今回は カテゴリー の ツリー化 の 方法 をご紹介しました。
めんどくさい作業がたくさんありますが、
1度やってしまえば簡単ですので、
ツリー化 をしたいという方はぜひやってみてください。

関連記事


 ≫ FC2 で コメント を ツリー化
 ≫ FC2 で トラックバック を ツリー化
関連記事
人気ブログランキング この記事がお役に立てましたら1クリックお願いします

FC2 で パンくずリスト の 作り方 | h1 タグ ( 見出し タグ )の 使い方









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