ページリストでのトピック表示について(新着情報のカテゴリ表示)

2018年12月4日 at 19:04

トップページに、新着リストを制作中です。
そのリストに各ページのトピックを表示し、トピック毎に異なる画像を表示し、ブログのカテゴリーアイコンとして表示したいです。

●現在の設定
トピックツリー:blog_category
カテゴリー:ブログカテゴリ
トピック:ニュース
     グルメ
     レジャー

以下の過去質問を参考にしたのですが、画像は表示されるものの全てのトピックで同じ画像が表示されます。
http://concrete5-japan.org/community/forums/beginner/post-11126/

また、バージョン等は以下になります
# concrete5 Version
Core Version - 8.4.3
Version Installed - 8.4.3
Database Version - 20180716000000

# Server Software
Apache

# Server API
cgi-fcgi

# PHP Version
7.2.6

タグ:

Re: ページリストでのトピック表示について(新着情報のカテゴリ表示)

2018年12月4日 at 22:58
追加です 以下にてなんとかトピック毎の画像表示ができるようになったのですが

<?php
$topics = $page->getAttribute('blog_category');
$topics = $topics[0]->getTreeNodeName();

switch ($topics){

case 'ニュース':
echo '<img src="----blog_news.png" />';
break;
case 'グルメ':
echo '<img src="---blog_gourmet.png" />';
break;
case 'レジャー':
echo '<img src="---blog_leisure.png" />';
break;

default:
echo "カテゴリ未設定";

}
?>

トピックが選択されていないと「カテゴリ未設定」ではなく 
「Call to a member function getTreeNodeName() on null」
のエラーがでます。

初歩的なことかもしれませんが、解決方法を教えて頂けると助かります。
添付: null.png
 

Re: ページリストでのトピック表示について(新着情報のカテゴリ表示)

2018年12月5日 at 0:41
こんな感じでどうでしょうか?

<?php
$topics = $page->getAttribute('blog_category');
$treeNodeName = "";
if(is_array($topics)){
$treeNodeName = $topics[0]->getTreeNodeName();
}

switch($treeNodeName ){

case:

default:

}
?>
 

Re: Re: ページリストでのトピック表示について(新着情報のカテゴリ表示)

2018年12月5日 at 9:56
acliss様
早速のお返事ありがとうございます!
せっかく頂いたのですが、やはりエラーが出てしまいます・・・・。
添付: null.png