スタッフブログ

  • 最新配信
  • RSS

d3blogカテゴリー一覧件数が0の時は件数を表示しない

mik : XOOPS » TIPS小ネタ 2012/11/9 17:44

Blogger's Avatar

RYUSサイトをてこ入れしています!特に人気のあるスタッフブログ(d3blog)をもっと読んでいただこうと思い、カテゴリーブロックを表示してみました。その際、XOOPSというカテゴリにまとめてblogを書いてきたのですが、わかりにくいかと思ってさらにもう一段階カテゴリを作ってそのカテゴリに分類してみました。

カテゴリを変更するのは手作業で(^^;大変でしたがようやくできました。せっかくなので今まで出してなかったカテゴリ一覧ブロックも出すことにしました。

カテゴリ一覧はこのように表示されました。表示してみて初めて「そうか?ここはカスタマイズしたいな」と思うところがありました。




d3blogでは親カテゴリにも直接結びつけられるのでカウントが出ます。ですが今回の場合には「親カテゴリ」を大分類として使い、同じカテゴリ内では一番小さいカテゴリだけにコンテンツを書くことにしました。なのでこの場合はXOOPSのカウント0を表示しないようにしたいのです。

ということでブロックをカスタマイズしてみました。



templateではなくPHPをいじります



d3blog_block_category_list.html

がこのブロックを表示しているhtmlです。これを開いて直すつもりでしたが開いてみると

<{$block.categoryTree}>

とだけ、書かれていました。こういう場合は既にPHPで編集済みの文字列がBlockという配列のcategoryTreeというキーのエリアに入っているということのようです。

なのでこの categoryTree という名前を検索して編集しているところを見つけてみました。

xoops_trust_path\modules\d3blog\class\category.class.php

というファイルの renderCategoryTree というメソッドで編集しているようです。

親カテゴリかどうかという判定をするのはちょっとややこしいかなと思ったので、

そのカテゴリに一件も登録がなければ何も表示しない

というようにしてみようと思いました。

該当部分はそのメソッドの

$tree .= str_pad('', ($level - 1) * 2 + 1, "\t").'<li>'.$category->renderImgurl().'<a href="'.sprintf("%s/modules/%s/index.php?cid=%d", XOOPS_URL, $mydirname4show, intval($id)).'">'.$category->name().'</a>('.$count.')';
,

というところなので、ここをこんな風にしてみました

$tree .= str_pad('', ($level - 1) * 2 + 1, "\t").'<li>'.$category->renderImgurl().'<a href="'.sprintf("%s/modules/%s/index.php?cid=%d", XOOPS_URL, $mydirname4show, intval($id)).'">'.$category->name().'</a>';
// カウントが0より大きければカウントを()付けて表示する
if ($count > 0){
     $tree .= '('.$count.')';
}

ということでこういう表示になりました





合算して表示する方法ならオプションを指定するだけ



上記の他、ブロックの編集画面のオプションで合算を指定することも出来ます。



デフォルトはいいえですので上記のようにそのカテゴリに直接ひもづいているものしかカウントされませんが、ここを はい にすると合算されるので以下のような表示になります。



このほうが件数が多い感じがしていいかも?なときはhackしたりせずオプション指定でOKですね♪

トラックバック

スタッフブログ最新
カテゴリ一覧

〒104-0061 東京都中央区銀座1丁目3番3号 G1ビル7階
お問い合わせ TEL 03-3524-8860

Copyright(c) 2012 RYUS.All Rights Reserved.