http://wa.otesei.com/item/291
サブカテゴリ無限階層版 NP_MultipleCategories(v0.40)用のカテゴリリスト表示プラグインです。今までは
NP_ContentsList2.0 を使ってカテゴリリストを表示させてましたが、サブカテゴリを表示するために上位カテゴリをクリックする必要があるのが個人的に気になってきたので、こちらのプラグインに乗り換えてみました。
当サイトではカテゴリ数をクリックするとアーカイブリスト(タイトル一覧)が出るようにしてますので、今回はソースをちょっと修正して実現してみました。
echo '<ul style="list-style-type: '.$this->marker_type.'">';
↓
echo '<ul class="contentlist">';
仕様に反してますが、CSSで後々からでも柔軟にデザイン変更できるように、表示を修正させました。
$link_url = $this->blogurl.(($CONF['URLMode'] == 'pathinfo') ? "category/" : $this->aaa."catid=").$row_cat->catid;
↓
$link_url = "index.php?catid=".$row_cat->catid;
当サイトはIISサーバー使ってる影響なのか、URL取得がうまくいかなかったり、アーカイブリストページではカテゴリリンクがアーカイブリンクに化けてしまう不具合があったので思い切って書き換えました。
echo '('.$this->getCatNumberOfBelonging($row_cat->catid).')';
$cat_str = $this->childSubCat($row_cat->catid, 0); //カテゴリを親に持つサブカテゴリ用
if ($cat_str) echo '<ul style="list-style-type: '.$this->marker_type.'">'.$cat_str.'</ul>';
↓
echo ' ( <a title=ArchiveList href=index.php?archivelist='.$blogid.'&catid='.$row_cat->catid.'>'.$this->getCatNumberOfBelonging($row_cat->catid).'</a> )';
$cat_str = $this->childSubCat($row_cat->catid, 0,$blogid); //カテゴリを親に持つサブカテゴリ用
if ($cat_str) echo '<ul class="contentlist2">'.$cat_str.'</ul>';
カテゴリ数の中をアーカイブリストへのリンクへ変更してます。あとサブカテゴリ用のCSSも追加。
function childSubCat($parentid, $level){
↓
function childSubCat($parentid, $level, $blogid){
アーカイブリストを表示させるにはブログIDを取得する必要があるので、関数宣言にて追加。
$link_url = $this->blogurl.(($CONF['URLMode'] == 'pathinfo') ? "category/" : $this->aaa."catid=").$row_scat->catid;
↓
$link_url = "index.php?catid=".$row_scat->catid;
さっき書いたURL化けに対応するための表記。
$scat_str .= '('.$this->getSubCatNumberOfBelonging($row_scat->scatid).')';
$child_str = $this->childSubCat($row_scat->scatid, 1); //サブカテゴリを親に持つサブカテゴリ用
↓
$scat_str .= ' ( <a title=ArchiveList href=index.php?archivelist='.$blogid.'&catid='.$row_scat->catid.'&subcatid='.$row_scat->scatid.'>'.$this->getSubCatNumberOfBelonging($row_scat->scatid).'</a> )';
$child_str = $this->childSubCat($row_scat->scatid, 1,$blogid); //サブカテゴリを親に持つサブカテゴリ用
サブカテゴリでのアーカイブリストへのリンク部分を追加。
なお、今回の改造では孫カテゴリは使わない(無限階層カテゴリは使わない)という前提で書き換えてますのでご了承ください。