記事があるときのみデザイン定義ファイルの内容を表示させたい

「まったく何も分からない・・・」そんなユーザーさんの為のフォーラムです。どんなご質問でもお気軽にどうぞ。
返信
bcacsato
パワーユーザー
記事: 233
登録日時: 2005年11月27日(日) 14:05

記事があるときのみデザイン定義ファイルの内容を表示させたい

投稿記事 by bcacsato » 2016年8月30日(火) 16:11

新着情報を表示させたく、下記のように作成しました。

コード: 全て選択

<div id="info">
	<h2>新着情報</h2>
	<dl>
		<xsl:for-each select="entry">
			<dt class="date"><xsl:value-of select="@year" />.<xsl:value-of select="@month" />.<xsl:value-of select="@day" /></dt>
			<dd><xsl:value-of select="title" disable-output-escaping="yes" /></dd>
		</xsl:for-each>
	</dl>
</div>
しかし、この形ですと、記事が全くないときでも下記のように書きだされるため、

コード: 全て選択

<div id="info">
	<h2>新着情報</h2>
	<dl> </dl>
</div>
「新着情報」という文字や、id="info"に設定されたCSSが表示されてしまいます。

そのため、記事がないときには、この <div id="info">~</div> 全体を表示させないようにしたいです。
それが無理な場合は「<h2>新着情報</h2>」の一行だけを表示しない形でもかまいません。

よい方法がありましたら、ご教示くださいますようお願いします。

webmaster
Site Admin
記事: 1451
登録日時: 2004年12月10日(金) 10:09

Re: 記事があるときのみデザイン定義ファイルの内容を表示させたい

投稿記事 by webmaster » 2016年9月01日(木) 18:10

bcacsatoさん、いつもご利用、ご質問ありがとうございます。webmasterです。

ご質問の件ですが、count命令を使って現在のページに表示されるエントリ件数を数える事が可能です。
リファレンスマニュアルに記載されていない情報で、ご不便をおかけしております。m(_ _;)m

コード: 全て選択

<xsl:if test="count(entry) = 0">
  件数は0件です。
</xsl:if>

<xsl:if test="count(entry) > 0">
  件数は <xsl:value-of select="count(entry)" />件です。
  <xsl:for-each select="entry">
    …
  </xsl:for-each>
</xsl:if>
このやり方でうまくいかない、あるいは別の方法を取りたい、という場合など、お手数をおかけしますが、再度ご連絡頂ければ幸いです。

bcacsato
パワーユーザー
記事: 233
登録日時: 2005年11月27日(日) 14:05

Re: 記事があるときのみデザイン定義ファイルの内容を表示させたい

投稿記事 by bcacsato » 2016年9月02日(金) 01:27

webmasterさま

ご回答ありがとうございます!
おかげさまで、希望通りの形にできました。
詳しいご説明ありがとうございましたm(_ _)m

返信