ページ 11

パラメーターをURLから外した場合

Posted: 2008年2月15日(金) 19:19
by mason
いつもお世話になっております。

すみませんが、パラメーターの絞込みについて質問させてください。

施設一覧をリストで表示しているページがあります。
こちらの一覧ページでは、タイトルと内容それぞれのデザイン定義をつくり、
パラメーターの絞込みによって内容とタイトルを変えております。

ところが、絞込みをせず、全ての施設を一覧で表示させたい場合があり
URLの後のパラメーターを外すと、全てのデータが表示されるのですが
タイトル部分だけは内容の一番最新のデータに合ったタイトルが出てしまいます。
この場合にタイトルを出さないようにしたいのですが、可能でしょうか?

例で言いますと、公民館の一覧ページを表示するときは
URLは http://×××?fac2=4となり、パラメーターを外して、施設全てを
表示したい場合のURLは http://×××になると思いますが
この場合に、内容の一番上に図書館の内容が表示されていると
施設は全て表示されているのに、タイトルは「図書館」となってしまいます。


デザイン定義は、以下のようになっております。
ご教授よろしくお願い致します。

▼タイトルのデザイン定義

コード: 全て選択

  <xsl:template match="/entry">
<xsl:if test="fac2='2'">
ホール・文化会館
</xsl:if>
<xsl:if test="fac2='3'">
図書館
</xsl:if>
<xsl:if test="fac2='4'">
公民館
</xsl:if>
<xsl:if test="fac2='5'">
博物館・資料館
</xsl:if>
<xsl:if test="fac2='6'">
コミュニティセンター
</xsl:if>
<xsl:if test="fac2='7'">
生涯学習センター
</xsl:if>
<xsl:if test="fac2='8'">
文化/生涯学習施設(その他)
</xsl:if>
</xsl:template>


<xsl:template match="noentry">
<xsl:for-each select="group">

<xsl:if test="@key='fac2'">
<xsl:if test="@value='2'">
ホール・文化会館
</xsl:if>
<xsl:if test="@value='3'">
図書館
</xsl:if>
<xsl:if test="@value='4'">
公民館
</xsl:if>
<xsl:if test="@value='5'">
博物館・資料館
</xsl:if>
<xsl:if test="@value='6'">
コミュニティセンター
</xsl:if>
<xsl:if test="@value='7'">
生涯学習センター
</xsl:if>
<xsl:if test="@value='8'">
文化/生涯学習施設(その他)
</xsl:if>
</xsl:if>

</xsl:if>

</xsl:for-each>
  </xsl:template>
▼内容のデザイン定義

コード: 全て選択

  <xsl:template match="/entrylist">
<xsl:for-each select="entry">
	<div class="unit" id="fac{@id}">
	<h4 class="title"><xsl:value-of select="title" disable-output-escaping="yes" /></h4>

<xsl:if test="image/@width >= 150">
<img src="{image}&w=150" alt="{image/@alt}" class="photo" />
</xsl:if>
<xsl:if test="image/@width <150">
<img src="{image}" alt="{image/@alt}" class="photo" />
</xsl:if>
	<dl>
<xsl:if test="not(add='')">
	<dt>所在地</dt><dd><xsl:value-of select="add" disable-output-escaping="yes" /></dd></xsl:if>
<xsl:if test="not(tel='')">
	<dt>電話</dt><dd><xsl:value-of select="tel" disable-output-escaping="yes" /></dd></xsl:if>
<xsl:if test="not(fax='')">
	<dt>FAX</dt><dd><xsl:value-of select="fax" disable-output-escaping="yes" /></dd></xsl:if>
<xsl:if test="not(open='')">
	<dt>開館時間</dt><dd><xsl:value-of select="open" disable-output-escaping="yes" /></dd></xsl:if>
<xsl:if test="not(holiday='')">
	<dt>休館日</dt><dd><xsl:value-of select="holiday" disable-output-escaping="yes" /></dd></xsl:if>
<xsl:if test="not(user='')">
	<dt>利用対象</dt><dd><xsl:value-of select="user" disable-output-escaping="yes" /></dd></xsl:if>
<xsl:if test="not(explain='')">
	<dt>施設概要</dt><dd><xsl:value-of select="explain" disable-output-escaping="yes" /></dd></xsl:if>
<xsl:if test="not(url='') and not(urltext='')">
	<dt>ホームページ</dt><dd><a href="{url}" target="blank"><xsl:value-of select="urltext" disable-output-escaping="yes" /></a></dd></xsl:if>
<xsl:if test="not(mail='')">
	<dt>お問い合わせ</dt><dd><xsl:value-of select="mail" disable-output-escaping="yes" /></dd></xsl:if>
	</dl>
	</div>

</xsl:for-each>

<xsl:if test="count(entry)=0"> 
<div id="facDT-box">
<p>該当のデータはございません</p>
</div>
</xsl:if>

  </xsl:template>

Re: パラメーターをURLから外した場合

Posted: 2008年2月25日(月) 17:37
by webmaster
 masonさん、ご質問ありがとうございます。

 タイトルのデザイン定義のところで、entryのデザインの中身を、noentryと
同じものにしてみて頂いてもよろしいでしょうか。

 現在のentryのデザインですと、仰る通り、最新のデータの内容を引っ張って
くると思います。

 ご不明な点はまたご連絡頂ければ幸いです。m(__)m

Posted: 2008年2月25日(月) 17:52
by mason
こんにちは。お世話になっております。

ご回答ありがとうございます。
タイトルのnoentryの内容をentryと同じにしたいのですが、
ページ内容が空の場合でも、タイトルはパラメータに合ったものを表示
させたいということで、このようにしております。

実は、以前にご質問させていただいたのと同じ部分になっております。
http://cms.al-design.jp/phpbb/viewtopic ... highlight=

やはり、このような記述の場合は最新のデータを引っ張るように
なっているのでしょうか?

Posted: 2008年2月25日(月) 18:07
by webmaster
 masonさん、お返事ありがとうございます。

 私の方の認識がズレているかもしれないのですが、entryの中身を、noentryと
同じにして頂ければ、おそらくご要望を実現できると思います。
(noentryの内容をentryと同じに、ではなく、逆になります)

 ちょっとややこしくて申し訳ありません。

 もしくは、この場合ですと、

コード: 全て選択

<xsl:template match="entry|noentry">
 ※内容は、noentryのものと同じ。
</xsl:template>
 で、一つにまとめる事ができそうです。

 match属性に「|」区切りで複数の要素名を書く書き方は、XSL上級者向け
ですので、分かりにくい場合は単にentryとnoentryの内容を同じにする
だけで良いと思います。

 一度お試し頂ければ幸いです。

Posted: 2008年2月25日(月) 18:54
by mason
早速ありがとうございます!

なるほど、そういう事だったのですね、失礼しました・・・。

早速試してみたところ、解決いたしました。
ありがとうございます :D