見出し部分を繰り返さずに表示する方法

「まったく何も分からない・・・」そんなユーザーさんの為のフォーラムです。どんなご質問でもお気軽にどうぞ。
返信
きょうこ
アクティブユーザー
記事: 15
登録日時: 2006年11月08日(水) 17:20

見出し部分を繰り返さずに表示する方法

投稿記事 by きょうこ » 2006年11月30日(木) 18:52

webmaster様 いつもお世話になります。
わからない点があり、教えて頂きたく書き込み致します。

マニュアルやフォーラムで同じような書き込みがないか調べてはみたのですが、
「リファレンスマニュアル 5−5−5:繰り返し項目を出力する」等を参照すればよいのか等、色々と試しているのですが、うまくいきません。
どういう機能を使えばいいのかを正しく理解していないせいで、フォーラムのトピックもうまく検索できずにいます。
お手数ですが、既出の場合やマニュアルに掲載されている場合はご指摘下さい。

次のようなリスト形式の一覧ページを作りたいと考えています。

★aaa.php
====================================
見出し部分:今日の日記

日付:yy/mm/dd
出来事:あああ

日付:yy/mm/dd
出来事:いいい

====================================

名前と住所はCMS Desingerの入力項目から引用します。

見出し部分〜住所までをデザイン定義ファイルに書き込んでみました。
すると、複数のエントリがある場合、次のように繰り返されてしまいました。

====================================
見出し部分:今日の日記

日付:yy/mm/dd
出来事:あああ

見出し部分:今日の日記

日付:yy/mm/dd
出来事:いいい
====================================

見出し部分を、更新したいページ(aaa.php)に入れ込んでしまい、

名前:●●●
住所:●●●

だけをデザイン定義ファイルに記入したところ、思い通りに表示されるのですが、今度はエントリがない場合、次のように見出し部分だけが表示されてしまいます。

====================================
見出し部分:今日の日記
====================================

エントリがない場合、見出し部分も表示させたくありません。

webmaster様の書かれていた下記のTipsを利用しようとも考えたのですが、内容的に「エントリがありません」という記述がそぐわず、他の方法がないものかと悩み中です。

「エントリが1件も無かった場合の表示」
http://cms.al-design.jp/phpbb/viewtopic.php?t=487


見出し部分をCMS Desingerで入力せず、デザイン定義ファイルか更新したいファイル(aaa.php)に何らかの記述をして対応したい場合、どのような方法でやれば実現できるでしょうか。

ご教授、よろしくお願い致します。

blue
パワーユーザー
記事: 70
登録日時: 2005年1月31日(月) 20:49

投稿記事 by blue » 2006年11月30日(木) 20:30

考え方としては次のようになるかと思います。
詳しくはマニュアル5.5.6 を参照いただきたいですが、
見出し部分はデザイン定義に組み込み、データが有る無しで表示/非表示というやり方ですね。
<xsl:if test="not(データ名='')">
見出し部分:今日の日記
</xsl:if>
 これでデータ「出来事」に入力があれば、見出しを表示するようになるかと思います。

きょうこ
アクティブユーザー
記事: 15
登録日時: 2006年11月08日(水) 17:20

★解決★

投稿記事 by きょうこ » 2006年12月05日(火) 11:13

blueさん、早速レスいただきありがとうございました :)

表示させたいファイル(aaa.php)か、デザイン定義ファイルに
<xsl:if test="not(データ名='')">
見出し部分:今日の日記
</xsl:if>
の部分を設定したところ、うまくいきました。

ただ、テーブルが絡むとうまくいかず悩んでいました。
デザイン定義ファイルに不適切な部分があるらしく、サブルーチンエラーが出てしまいました。
そのためデザイン定義ファイルに記述するよう教えていただきましたが、今はデザイン定義を変更せず、更新させたいファイル(aaa.php等)にif〜を記述しました。
リファレンスを見ると、テーブルデザインの場合の記述方法が決まっているCMS Desinger設定法があるみたいなので、もう一度そちらを読み直したいと思います。
原因はわからないのですが、どうもその部分の記述が間違っている気がします。。

リファレンスを見て勉強しているのですが、タイトルだけではいまいち機能を理解できず、自分の求めている機能がどれで実現できるのかを理解するまでに時間がかかっています。

今回はどうもありがとうございました!

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

Re: ★解決★

投稿記事 by webmaster » 2006年12月11日(月) 00:59

 webmasterです。きょうこさんご質問ありがとうございます。
 また、blueさん、回答ありがとうございました。

 既に解決されているかもしれませんが、ひょっとしてこういうことでしょうか?

コード: 全て選択

<xsl:template match="entrylist">
<xsl:if test="entry">
今日の日記
</xsl:if>
<xsl:for-each select="entry">
 :
 ズレていましたら申し訳ありません。
 マニュアルについてはなかなか分かり易いものを作れておらず、ご迷惑を
おかけしております。
 ご不明な点はどんな些細な事でも結構ですのでフォーラムにてご質問頂ければ
幸いです。

返信