SOY CMSマニュアル
全体の目次へ戻る
よく使う項目
ブロック内の記事数が0件の場合、周辺のHMTLごと非表示にする
SOY CMS 1.7.2以降
ブロック設定した箇所の記事数が0件の場合に周辺のHTMLごと非表示する方法を説明します。
<div class="news"> <h2>新着一覧</h2> <ul> <!-- block:id="news" --> <li cms:id="title">新着タイトル</li> <!-- /block:id="news" --> </ul> </div>
上記のような新着一覧を表示するエリアを作成したとします。
たとえば新着が0件の場合は<div class="news">から</div>まで非表示にしたいということがあります。
このような場合にif:id="{ブロックID}:has_entry"を利用し、1件以上記事がある時に囲った箇所を表示するということができます。
<!-- if:id="news:has_entry" --> <div class="news"> <h2>新着一覧</h2> <ul> <!-- block:id="news" --> <li cms:id="title">新着タイトル</li> <!-- /block:id="news" --> </ul> </div> <!-- /if:id="news:has_entry" -->
ブロック内の記事が0件の時は全く別のHTMLを出力したいという時には
<!-- if:id="news:no_entry" -- > <h2>何かのタイトル</h2> <p>何かの文章</p> <!-- /if:id="news:no_entry" -- >
ブロック内の記事が0件の時は全く別のHTMLを出力したいという時には、if:id="{ブロックID}:no_entry"で囲えば、記事数が0件の時に表示されます。