いつもお世話になっております。現在、HPを作成しているのですが、
ユーザー管理画面で、トピックを何個か登録していき、その中のいくつかを
ピックアップしたものだけを一覧で表示させたく、スキーマファイルに
メニュー項目で、
<data name="pickup" type="menu" caption="ピックアップ選択" group="True">
<menuitem id="pick">ピックアップスする</menuitem>
<menuitem id="nopick">ピックアップしない</menuitem>
</data>
上記の様に選択させ、デザイン定義で、
<cmsd:entrylist name="topic" design="spot">
<cmsd:group key="pickup" value="pick" />
</cmsd:entrylist>
上記の様に埋めこみました。
その際に、もし全てのトピックが『ピックアップしない』を選択した場合、
『現在ピックアップはありません』というような文章を表示させたいのですが、
うまくいきません。下記URLの質問内容でためしてみたのですが、
うまく動作しませんでした。
http://cms.al-design.jp/phpbb/viewtopic ... 9%FE%A4%DF
<menuitem id="pick">が0の時か、
もしくは全てのトピックが<menuitem id="nopick">の際に、
『ピックアップはありません』という文章を表示させるには
どのようにすればよいのでしょうか?
よろしくお願い致します。
絞り込み条件に適合するエントリがないときにメッセージを表示させたい
もう一つ聞きたいのですが
すみません、もう一つ質問させて下さい。
絞り込み検索をさせた際に、
検索結果=X件のように、数字で検索数を表示させるには
どのようにしたらできるのでしょうか?
どうぞよろしくお願い致します
絞り込み検索をさせた際に、
検索結果=X件のように、数字で検索数を表示させるには
どのようにしたらできるのでしょうか?
どうぞよろしくお願い致します
Re: 絞り込み条件に適合するエントリがないときにメッセージを表示させたい
salさん、ご質問ありがとうございます。
絞込み結果が0件だった場合の表示ですが、引用して頂いているURLのページが
回答となります。
これでうまく行かないということなのですが、具体的にはどのような結果になって
いるでしょうか。
何かエラーが出ているでしょうか。
それとも、絞込み結果0件にも関わらず、意図したメッセージが出ない、という
感じでしょうか。
よろしければ作成したデザイン定義の一部を引用して頂けると助かります。
もう一つのご質問ですが、全件数については navi/@allcount で取得可能です。
次のように、xsl:template match="entrylist" の下に置いて下さい。
xsl:for-each select="entry"の内部で使う場合には、
のようにして下さい。
絞込み結果が0件だった場合の表示ですが、引用して頂いているURLのページが
回答となります。
これでうまく行かないということなのですが、具体的にはどのような結果になって
いるでしょうか。
何かエラーが出ているでしょうか。
それとも、絞込み結果0件にも関わらず、意図したメッセージが出ない、という
感じでしょうか。
よろしければ作成したデザイン定義の一部を引用して頂けると助かります。
もう一つのご質問ですが、全件数については navi/@allcount で取得可能です。
次のように、xsl:template match="entrylist" の下に置いて下さい。
コード: 全て選択
<xsl:template match="entrylist">
<xsl:value-of select="navi/@allcount" />件の記事があります。
:
コード: 全て選択
<xsl:value-of select="/entrylist/navi/@allcount" />件の記事があります。
お返事ありがとうございます。
検索数の表示に関しては、問題なく解消致しました。
該当するトピックがない場合、「トピックはありません」の表示をさせる件に関してですが、
引用URLのページを参考に下記のコードの様に、記述したのですが、
エントリがある場合でも無い場合でも
〜エントリ無し時の出力〜が表示されてしまいます。
試しに、</xsl:for-each>のすぐ下に記述した場合、
〜エントリ無し時の出力〜の文字は表示されませんでした。
html側では、前にも書きましたが下記の様に記述してあります。
よろしくお願い致します
検索数の表示に関しては、問題なく解消致しました。
該当するトピックがない場合、「トピックはありません」の表示をさせる件に関してですが、
引用URLのページを参考に下記のコードの様に、記述したのですが、
エントリがある場合でも無い場合でも
〜エントリ無し時の出力〜が表示されてしまいます。
試しに、</xsl:for-each>のすぐ下に記述した場合、
〜エントリ無し時の出力〜の文字は表示されませんでした。
コード: 全て選択
<?xml version="1.0" encoding="UTF-8" ?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
<xsl:output method="html" encoding="EUC-JP" omit-xml-declaration="yes" />
<xsl:template match="entrylist">
<table>
<xsl:for-each select="row">
<tr>
<xsl:for-each select="entry">
<td width="110" align="left" valign="top">
<xsl:if test="mainphoto=''"><img src="images/noimage.jpg" width="110" height="83" alt="no image" border="0" /></xsl:if>
<xsl:if test="not(mainphoto='')">
<img src="{mainphoto}&w=110&h=110" alt="{title}" border="0"/>
</xsl:if>
</td>
</xsl:for-each>
</tr>
</xsl:for-each>
</table>
<xsl:if test="count(entry)=0">
〜エントリ無し時の出力〜
</xsl:if>
</xsl:template>
</xsl:stylesheet>
コード: 全て選択
<cmsd:entrylist name="topic" design="spot">
<cmsd:group key="pickup" value="pick" />
</cmsd:entrylist>
salさん、お返事ありがとうございます。
貼り付けて頂いたデザイン定義に関して気になる点があります。
の記述があるのですが、これは、テーブル形式でエントリを出力したい
場合の方法です。
詳しくはこちらをご覧下さい。
http://cms.al-design.jp/phpbb/viewtopic.php?t=448
この方法を使いたい場合、埋め込みタグ側に「cols="2以上の数"」などの指定を
一緒に指定しないと、無効どころかそれ以下の出力が行われないと思うのですが、
拝見する限り、埋め込みタグにcols属性は指定されていないようです。
この埋め込みタグとあのデザイン定義の組み合わせですと、エントリ内容が
出力されないはずなのですが、出力されているでしょうか?
しかし、貼り付けて頂いたデザイン定義を拝見すると、
の記述が、rowsのfor-eachの外に配置されているので、もし本当にcols属性が
指定されていないのであれば、この部分は正しく動作するはずです。
エントリがあってもなくても「〜エントリ無し時の出力〜」が出力される
ということから想像するに、
・実際には埋め込みタグにはcols属性に2以上が指定されている。
ということなのではないかと思います。
それを前提にしますと、このままでは確かにうまく動作しないかと思います。
(colsが指定されている時の事を失念しておりました。)
これで代用してみて下さい。
こちらの方が、より汎用的な書き方になります。
貼り付けて頂いたデザイン定義に関して気になる点があります。
コード: 全て選択
<xsl:for-each select="row">
場合の方法です。
詳しくはこちらをご覧下さい。
http://cms.al-design.jp/phpbb/viewtopic.php?t=448
この方法を使いたい場合、埋め込みタグ側に「cols="2以上の数"」などの指定を
一緒に指定しないと、無効どころかそれ以下の出力が行われないと思うのですが、
拝見する限り、埋め込みタグにcols属性は指定されていないようです。
コード: 全て選択
<cmsd:entrylist name="topic" design="spot">
<cmsd:group key="pickup" value="pick" />
</cmsd:entrylist>
出力されないはずなのですが、出力されているでしょうか?
しかし、貼り付けて頂いたデザイン定義を拝見すると、
コード: 全て選択
<xsl:if test="count(entry)=0">
〜エントリ無し時の出力〜
</xsl:if>
指定されていないのであれば、この部分は正しく動作するはずです。
エントリがあってもなくても「〜エントリ無し時の出力〜」が出力される
ということから想像するに、
・実際には埋め込みタグにはcols属性に2以上が指定されている。
ということなのではないかと思います。
それを前提にしますと、このままでは確かにうまく動作しないかと思います。
(colsが指定されている時の事を失念しておりました。)
コード: 全て選択
<xsl:if test="/entrylist/navi/@allcount=0">
〜エントリ無し時の出力〜
</xsl:if>
こちらの方が、より汎用的な書き方になります。