プラグインのインストール
NucleusWikiからダウンロードしてきた「NP_ContentsList218.zip」を解凍して中身を /var/www/example/nucleus/plugins/にアップロードし、管理画面のプラグイン管理からインストールします。
設定
- 管理画面の左側メニューの「プラグイン管理」を選択
- Contents Listの「オプション編集」を選択
- [NP_MultipleCategories0.30j以降がインストールされている場合、サブカテゴリー用のテンプレートを使用する]を[いいえ]から[はい]に変更
- 管理画面の左側メニューの「プラグイン管理」を選択
- Contents Listの「管理」を選択
- 使用可能なテンプレートの「default」を複製
- cloneddefaultというテンプレートが新たに作成されるため、テンプレート名をsubtemplateに変えてから以下の通り編集(ここでは当サイトのチューニングを例に挙げますが、お好みにあわせて実施して下さい。)
カテゴリーリスト本体
<li<%catflag%>><a href="<%catlink%>"><%catname%></a>(<%amount%>)</li><li<%catflag%>><a href="<%catlink%>" style="font-size:90%"><%catname%></a><%subcategorylist%></li> サブカテゴリーリストヘッダー <ul style="line-height:150%;margin:5px 0px 15px 20px;padding:0px;"> サブカテゴリーリスト本体 <li<%subcatflag%>><a href="<%sublink%>"><%subname%></a>(<%subamount%>)</li> サブカテゴリーリストフッター </ul> [空白行] カレントサブカテゴリーのフラグ style="list-style-type:square;font-weight:bold;"※カレントサブカテゴリーのフラグには文頭に空白を入れます。
- 管理画面の左側メニューの「スキン編集」を選択
- Sidebarを選択して以下の通り修正
<%if(skintype,error)%> <%elseifnot(skintype,member)%> <!-- category list, not on error or member page --> <div class="sidebar"> <dl class="sidebardl"> <dt>カテゴリ</dt>
<%categorylist(default/categorylist)%><%ContentsList(>subtemplate)%> </dl> </div> <%endif%>
上記設定の完了後、サイトにアクセスすると、サブカテゴリが階層表示されるようになっています。
サブカテゴリーに含まれる記事一覧のページについて
NP_ContentsListの導入によって左側のメニューにサブカテゴリー表示されるようになりましたが、サブカテゴリー名をクリックすると一つ上のカテゴリーに含まれる記事の一覧が表示されてしまいます。
そこで、サブカテゴリーの記事が表示されるように以下の通り修正を行います。
- スキン編集→メインの目次ページを選択
- 以下の箇所を修正します。
<%blog(default/index,10)%><%MultipleCategories(default/index,10)%>修正後、サブカテゴリー名をクリックして、サブカテゴリーの記事のみが表示されることを確認します。
サブカテゴリーの並び替え対応
NP_Multiplecategories管理画面上でサブカテゴリーの並び替えをしても、肝心のサイトのメニューではサブカテゴリーが並び替えられませんでした。
そこで、スクリプトの書き換えは気が引けますが、以下の修正を実施したところ、想定通りの並び順になりました。
# vi /var/www/example/nucleus/plugins/NP_ContentsList.php ...
$sres = sql_query("SELECT scatid as subcatid, sname as subname, sdesc as subdesc FROM ".sql_table('plug_multiple_categories_sub')." WHERE catid=".$catdata['catid']);$sres = sql_query("SELECT scatid as subcatid, sname as subname, sdesc as subdesc FROM ".sql_table('plug_multiple_categories_sub')." WHERE catid=".$catdata['catid']." ORDER BY ordid"); ...- 参考文献
-
Nucleusでつくる!最強のブログサイトのp.256~265
More from my site