ウィジェットエリアでのブログ記事(新着情報等)がない場合にエリアごと非表示にしたい

seto > Re: ウィジェットエリアでのブログ記事(新着情報等)がない場合にエリアごと非表示にしたい @ 2018/9/10 10:14
こんにちは

以下のコードでいかがでしょうか。

<?php
$posts = $this->BcBaser->getBlogPosts('news', 5);
if ($posts) {
	echo '<h2>タイトル<h2>';
	$this->BcBaser->blogPosts('news', 5);
}
?>
funi > ウィジェットエリアでのブログ記事(新着情報等)がない場合にエリアごと非表示にしたい @ 2018/9/7 10:55
いつもお世話になっております。

現在制作中の試作サイトで、右カラムにブログ記事をPHPテンプレートで読み込み表示させ、カテゴリ(地域)毎にウィジェットエリア化した情報掲載を行ないつつイベント開催予定のないカテゴリはその部分のウィジェットエリアを丸ごと非表示にしたいと思っています。

PHPテンプレートに下記のように記載した場合、標準的な仕様では記事がなくてもタイトル+「記事がありません」などと表示されます。
※ウィジェットで「タイトルを表示」指定しています。
<?php $this->BcBaser->blogPosts('news', 5) ?>


記事がありませんは /theme/my_theme/Blog/xxx/posts.php で消すことが可能ですが
タイトルを表示を指定したまま中身がない場合にタイトルも表示しない、あるいはこのウィジェットエリア部分を表示させないようにさせる良い方法が見つかりません。

/theme/my_theme/Elements/widgets/php_template.php にて
※.nopost は「記事がありません」に指定したclass、#my_widget$id はウィジェットエリアに追加したid
<script type="text/javascript">
$(function(){ $(".nopost").parents("#my_widget<?php echo $id ?>").css("display","none");});
</script>

を追加して非表示にはなったのですが、全てのウィジェットエリアで読み込まれるため無駄にソースが増える形になります。

他に、もっと良い方法があればと思い質問させて頂きました。

アドバイス頂ければ幸いです。何卒宜しくお願い致します。

■ BaserCMS Ver:3.0.6.1 〜 4.1.0.1
■ サーバー名:lolipop
■ スマートURLの利用:ON
■ 設置フォルダ:サブフォルダ、サブドメイン等
■ 利用しているDB:SQLite

ログイン
ユーザー名:
パスワード:


  新規登録 / パスワード紛失

検索

facebook
フォーラムで悩みが解決した場合など、よかったら「いいね!」をポチっとクリックしてください!質問の回答者や開発者の励みになります

フォーラムガイド


関連リンク

オンライン状況
29 人のユーザが現在オンラインです。 (28 人のユーザが フォーラム を参照しています。)

登録ユーザ: 0
ゲスト: 29