説明が足りませんでした・・・
「O-midashi(大見出し)」というスキーマを作成します。
コード: 全て選択
<?xml version="1.0" encoding="UTF-8"?>
<schema name="O-midashi" caption="大見出し" >
<data name="O-midashi" type="text" output="html1" caption="大見出しタイトル" />
<data name="contents" type="textarea" caption="地の文" />
<data name="sub-link" type="list" caption="下位ページ" >
<listitem caption="下位ページ" >
<data name="sub-title" type="text" output="html1" caption="下位ページタイトル" />
<data name="sub-contents" type="textarea" caption="地の文" />
</listitem>
</data>
</schema>
ここで大見出しに「事業概要」や「キャンペーン」などのエントリを作成します。これが大カテゴリです。その下の小カテゴリとして、リスト項目を使って「下位ページ」を作成します。
そして、エントリの一覧とリスト項目のデザインを分けたいのです。
そして、デザイン定義(O-midashi.list.default.design.xsl)にて、(これはサイトのメニュー一覧のサイドバーなんかを思い浮かべてください。)
例:
事業概要
・沿革
・理念
・採用情報
コード: 全て選択
<xsl:for-each select="entry">
<li>
<a href="big.php{@href}"><xsl:value-of select="O-midashi" disable-output-escaping="yes" /></a>
<xsl:for-each select="sub-link/listitem">
<br /><a href="small.php?eid={../../@id}"><xsl:value-of select="sub-title" disable-output-escaping="yes" /></a>
</xsl:for-each>
</li>
とし、これを
HTML上で、
コード: 全て選択
<ul>
<cmsd:entrylist name="O-midashi" design="default" />
</ul>
で一覧として出力したいのです。
<a href="small.php?eid={../../@id}"><xsl:value-of select="sub-title" disable-output-escaping="yes" /></a>のところが問題です。このとき、リスト項目に各々のリストのIDを取得して自動リンクを貼り、個々のリスト項目ひとつだけを呼び出して、ほかのテンプレートに表示させたいのですが、現在これでいくと、リスト全てが表示されてしまいます。
たとえば、このリスト項目の中に
沿革
理念
採用情報
の三つを作ります。
すると、この三つにリンクが貼られていますが、リンク先には、繰り返し項目として沿革、理念
、採用情報、 三つすべての内容が表示されてしまっています。
これを、「沿革」を押したときには「沿革」のデータのみがリンク先に表示されるようにしたいのです。理念、採用情報も然りです。こうしてサイトのメニュー構造を二階層分管理したいのです。
おそらく、この
<a href="small.php?eid={../../@id}">
のリンクの書き方でどうにかできると思うのですが・・・
長くなってしまいましたが、おわかりいただけたでしょうか?
ご教授お願いします![/quote]