PR(記事内にアフィリエイト広告が含まれています)
スポンサーリンク
Nucleus

NP_ArchiveIndex

カテゴリごとに記事リストを出したくなったので、最初は NP_TitleList を改修しようかと考えてたんですが、そういう用途のプラグインが実は最初からありましたね。
plugins:archiveindex [Nucleus CMS Japan Wiki]
解説が充実してるので、特に問題なく使えました。


一点だけ注意するのは、CSS設定例を有効化するにはスキンで “archiveindex” というクラスで囲っておく必要がある点でしょうか。

スキン記載例
<div class="archiveindex">
<%ArchiveIndex%>
</div>

毎回スキンに書くのもちょっと面倒なので、オプション設定に入れ込んで、スキン上ではクラス指定をやめました。

オプション設定例
Template: List (begin)
<div class="archiveindex"><table><thead title="%catdesc%"><th><a href="%caturl%">%catname%</a></th><th></th></thead><tbody>
Template: List (end)
</tbody></table></div>

幾つか個人的な用途にあわせて、改造を行いました。
(1)cdesc(カテゴリの説明)でカテゴリをソート

378行付近の //sort by category の else 文
else {
//20180306_takehana_upd_s
//ksort($arr_out);
$query = 'SELECT catid FROM '. sql_table('category') .' WHERE cblog='.$blogid.' ORDER BY cdesc ASC';
$cl_res = sql_query($query);
$arr_out2 = $arr_out;
$arr_out = array();
while ($clrank = mysql_fetch_object($cl_res)) {
$icatName = $b->getCategoryName($clrank->catid);
$arr_out[] = $arr_out2[$icatName];
}
$arr_out2 = '';
//20180306_takehana_upd_e
}

(2)カテゴリ名クリックでアーカイブリストではなくカテゴリリンクにする

// buffer category nameの下、255行目付近
//20180307_takehana_upd_s
//$arclist_link = createArchiveListLink($blogid, $extra);
$arclist_link = createCategoryLink($icat);
//20180307_takehana_upd_e

(3)Moreをアーカイブリストではなくカテゴリリンクにする

// category description with more link の下、317行目付近
$extra = array('catid' => $icat);
//20180307_takehana_upd_s
//$arclist_link = '<a href="'. createArchiveListLink($blogid, $extra) .'">&raquo; More</a>';
$arclist_link = '<a href="'. createCategoryLink($icat) .'">&raquo; More</a>';
//20180307_takehana_upd_e

(4)カテゴリ未選択時でも、個別記事をカテゴリ選択状態にする

//buffer item titleの下、271行目付近
//20180307_takehana_add_s
if(strpos($itemlink,'&catid=') === false){
$itemlink = $itemlink . "&catid=" . $icat;
}
//20180307_takehana_add_e
$idetail  = $list_item[$inumber]['idetail'];

(5)Back to index をアーカイブリストではなくトップ移動にする

and make 'all category link'の下、376行目付近
//20180307_takehana_upd_s
//$arclist_link = '<a href="'. createArchiveListLink($blogid) .'">&raquo; Back to index</a>';
$arclist_link = '<a href="'. createBlogidLink($blogid) .'">&raquo; Back to Home</a>';
//20180307_takehana_upd_e

これで希望する挙動になったので満足しました。

コメント

タイトルとURLをコピーしました