こんにちは。
現在、店舗を何件か経営するペットショップのホームページを作成しているのですが、
トップページには、ペット情報として、全てのショップごとにユーザー権限を与え、
一つのスキーマの中にどんどん登録していってもらい、
各ショップの詳細ページには、各ショップユーザーが登録した分だけを
表示させたいのですが、その際の、ユーザーごとのソートはどのように
すればよいのでしょうか?
ショップとしては、たくさん数があり、これからも増える可能性があるため
一件ごとに、いちいち定義するというわけにはいかず困っています。
そして、もう一つ質問があるのですが、メニュー(menu)項目を利用して、
各県ごとにショップ情報を登録していくようにしたいのですが、
もし、登録のない県があった場合、
・その県の表示をしないようにさせる
・『こちらの県には登録はありません』のような文章を表示させる
以上どちらかでもよいのですが、xsl:ifで実現する事は可能でしょうか?
もし可能でしたら、どのように表記をすればよいのでしょうか?
どうかよろしくお願い致します
まとめて登録したエントリを各ユーザーごとに表示するには
まとめて登録したエントリを各ユーザーごとに表示する方法
>各ショップの詳細ページには、各ショップユーザーが登録した分だけを
>表示させたいのですが、その際の、ユーザーごとのソートはどのように
>すればよいのでしょうか?
ソートについて、ちょっと意味がとれていないので間違っているかもしれませんが、
「まとめて登録したエントリを各ユーザーごとに表示する」には、
以下のような感じでできるかと。
●●●● にユーザーIDを入れれば、そのユーザーのエントリーのみ表示されます。
>表示させたいのですが、その際の、ユーザーごとのソートはどのように
>すればよいのでしょうか?
ソートについて、ちょっと意味がとれていないので間違っているかもしれませんが、
「まとめて登録したエントリを各ユーザーごとに表示する」には、
以下のような感じでできるかと。
コード: 全て選択
<ul>
<xsl:for-each select="entry">
<xsl:if test="@author='●●●●'">
<li> エントリーを表示 </li>
</xsl:if>
</xsl:for-each>
</ul>
お返事ありがとうございます
moheji様
お返事ありがとうございます。私の説明がわかりにくくて申し訳ありません。
moheji様がお答え下さった
「まとめて登録したエントリを各ユーザーごとに表示する」
という内容で間違いはないのですが、ショップ一件ごとにエントリを作成し、
ユーザーidを設定するという表示の仕方ではなく、
ショップ詳細のページに、各ショップが登録したペットだけを自動で
表示させたいのです。
site.config.xmlには、
と、ショップの詳細と、ペットの登録が出来るようにして、
トップページのphpファイルには、
と、埋め込み、全ショップのペットの登録を表示させ、
ショップ詳細ページのphpファイルには、
と、埋め込みました。
そして、ショップ詳細ページのphpファイルのペット情報のデザイン定義には、
以上のように、定義したのですが、ここにxsl:if文等を利用して、ユーザー1件分の
ペット情報を表示させればよいのだろうというのはわかるのですが、
その命令文は、どのように書けばよいのでしょうか?
またまたわかりにくい説明で申し訳ありませんが、
どうかよろしくお願い致します。
お返事ありがとうございます。私の説明がわかりにくくて申し訳ありません。
moheji様がお答え下さった
「まとめて登録したエントリを各ユーザーごとに表示する」
という内容で間違いはないのですが、ショップ一件ごとにエントリを作成し、
ユーザーidを設定するという表示の仕方ではなく、
ショップ詳細のページに、各ショップが登録したペットだけを自動で
表示させたいのです。
site.config.xmlには、
コード: 全て選択
<entry name="separator1" type="separator" caption="ショップ詳細登録" />
<entry name="shop" schema="shop" caption="ショップ詳細登録">
<permit users="(publisher)" mine="edit" others="none" />
</entry>
<entry name="separator2" type="separator" caption="ペット登録" />
<entry name="pets" schema="pets" caption="ペット登録">
<permit users="(publisher)" mine="all" others="none" />
</entry>
トップページのphpファイルには、
コード: 全て選択
<cmsd:entrylist name="pets" design="top">
ショップ詳細ページのphpファイルには、
コード: 全て選択
<cmsd:entry name="shop" design="info"/>
<cmsd:entry name="pets" design="shop" cols="4" />
そして、ショップ詳細ページのphpファイルのペット情報のデザイン定義には、
コード: 全て選択
<xsl:template match="/entrylist">
<table>
<xsl:for-each select="row">
<tr>
<xsl:for-each select="entry">
<td width="120" align="left" valign="top">
<a href="{petimg}" target="_blank"><img src="{petimg}&w=120&h=120" alt="{petimg/@alt}" border="0" /></a><br/>
<xsl:value-of select="petname" disable-output-escaping="yes" />
</td>
</xsl:for-each>
</tr>
</xsl:for-each>
</table>
</xsl:template>
ペット情報を表示させればよいのだろうというのはわかるのですが、
その命令文は、どのように書けばよいのでしょうか?
またまたわかりにくい説明で申し訳ありませんが、
どうかよろしくお願い致します。
まとめて登録したエントリを各ユーザーごとに表示する方法
ショップとペットのエントリに、同じ番号を割り当てれば出来ます。
■スキーマ
■スキーマ