大分類、小分類での絞り込み表示
Posted: 2007年11月02日(金) 12:02
いつもお世話になっております。
商品の一覧表示ページを作成しておりまして、大分類、小分類と分類が2種類あります。
しかも大分類、小分類ともに重複する商品がありますので、重複した場合はどちらの
一覧に表示しないといけませんので、まずスキーマを以下のようにしています。
それで、実際の表示を
大分類タイトル1
小分類タイトル1
・商品
・商品
・商品
小分類タイトル2
・商品
・商品
・商品
小分類タイトル3
・商品
・商品
・商品
大分類タイトル2
小分類タイトル1
・商品
・商品
・商品
小分類タイトル2
・商品
・商品
・商品
小分類タイトル3
・商品
・商品
・商品
という風にしたいのです。
さらに、小分類がない場合はタイトルごと表示しないようにしたいのですが、
色々悩んだ結果、デザイン定義ファイル内で if文による絞り込みが簡単かなと思い
以下のようなソースを書いたのですが、
これだと小分類分デザイン定義ファイルが必要になります。小分類が15種類ほどあるので、ファイル数が多くなり過ぎてしまうので、何か良い方法はないでしょうか?よろしくお願いします。
商品の一覧表示ページを作成しておりまして、大分類、小分類と分類が2種類あります。
しかも大分類、小分類ともに重複する商品がありますので、重複した場合はどちらの
一覧に表示しないといけませんので、まずスキーマを以下のようにしています。
コード: 全て選択
<data name="bunrui1A" type="menu" caption="大分類A" group="True">
<menuitem id="1">AAA</menuitem>
<menuitem id="2">BBB</menuitem>
<menuitem id="3">CCC</menuitem>
</data>
<data name="bunrui1B" type="menu" caption="大分類B" group="True">
<menuitem id="0">なし</menuitem>
<menuitem id="1">AAA</menuitem>
<menuitem id="2">BBB</menuitem>
<menuitem id="3">CCC</menuitem>
</data>
<data name="bunrui2A" type="menu" caption="小分類A" group="True">
<menuitem id="1">AAA</menuitem>
<menuitem id="2">BBB</menuitem>
<menuitem id="3">CCC</menuitem>
</data>
<data name="bunrui2B" type="menu" caption="小分類B" group="True">
<menuitem id="0">なし</menuitem>
<menuitem id="1">AAA</menuitem>
<menuitem id="2">BBB</menuitem>
<menuitem id="3">CCC</menuitem>
</data>
大分類タイトル1
小分類タイトル1
・商品
・商品
・商品
小分類タイトル2
・商品
・商品
・商品
小分類タイトル3
・商品
・商品
・商品
大分類タイトル2
小分類タイトル1
・商品
・商品
・商品
小分類タイトル2
・商品
・商品
・商品
小分類タイトル3
・商品
・商品
・商品
という風にしたいのです。
さらに、小分類がない場合はタイトルごと表示しないようにしたいのですが、
色々悩んだ結果、デザイン定義ファイル内で if文による絞り込みが簡単かなと思い
以下のようなソースを書いたのですが、
コード: 全て選択
<?xml version="1.0" encoding="UTF-8" ?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
<xsl:output method="xml" encoding="EUC-JP" omit-xml-declaration="yes" />
<xsl:template match="/entrylist">
<xsl:if test="entry">
<p><strong>小分類1</strong></p>
<ul>
<xsl:for-each select="entry">
<xsl:if test="(bunrui1A ='1') or (bunrui1B ='1') or (bunrui1C ='1')">
<xsl:if test="(bunrui2A ='2') or (bunrui2B ='2')">
<li>
<a href="touseki.php{@href}"><xsl:value-of select="title" disable-output-escaping="yes" /></a>
</li>
</xsl:if>
</xsl:if>
</xsl:for-each>
</ul>
</xsl:if>
</xsl:template>
</xsl:stylesheet>