NP_ContentsListの設定

投稿者: | 2010年12月19日
Pocket

プラグインのインストール

NucleusWikiからダウンロードしてきた「NP_ContentsList218.zip」を解凍して中身を /var/www/example/nucleus/plugins/にアップロードし、管理画面のプラグイン管理からインストールします。

設定

  1. 管理画面の左側メニューの「プラグイン管理」を選択
  2. Contents Listの「オプション編集」を選択
  3. [NP_MultipleCategories0.30j以降がインストールされている場合、サブカテゴリー用のテンプレートを使用する]を[いいえ]から[はい]に変更
  4. 管理画面の左側メニューの「プラグイン管理」を選択
  5. Contents Listの「管理」を選択
  6. 使用可能なテンプレートの「default」を複製
  7. 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;"
    

    ※カレントサブカテゴリーのフラグには文頭に空白を入れます。

  8. 管理画面の左側メニューの「スキン編集」を選択
  9. 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の導入によって左側のメニューにサブカテゴリー表示されるようになりましたが、サブカテゴリー名をクリックすると一つ上のカテゴリーに含まれる記事の一覧が表示されてしまいます。

そこで、サブカテゴリーの記事が表示されるように以下の通り修正を行います。

  1. スキン編集→メインの目次ページを選択
  2. 以下の箇所を修正します。
    <%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");
    
    ...
    
    
    参考文献

    NucleusWiki

    C↓C←C↑Cさんのサイト

    Nucleusでつくる!最強のブログサイトのp.256~265

    Pocket

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です