entry数でデザイン定義の切り替えをするには?
Posted: 2008年2月26日(火) 11:42
どうすると実現できるかご指導頂ければと思います。
やりたいことは
アルバム系のスキーマを作ってデザイン定義でカテゴリー内の
1)entry(写真登録数)が20を超えたら横にx列で縮小写真を並べる
2)entry(写真登録数)が20以下なら縦に写真を並べる
という処理をしたいのです。
少ししか登録のないカテゴリーまで小さなサムネイル写真を並べるよりも
詳細データつきで縦並べにしたいと思うので。
で、単純に myalbum.list.default.design.xsl というデザイン定義内で
こんなことが出来ればいいのですが
埋め込み内容
とは出来ないですよね。
というわけでデザイン定義を2つ作って埋め込むPHP側で処理出来るならそれでもいいのですが、count(entry)を{count(entry)}などで呼び出せますか?
まだ試してないのですけれど・・・。
何かもっといい方法があればと思い投稿させて頂きました。
やりたいことは
アルバム系のスキーマを作ってデザイン定義でカテゴリー内の
1)entry(写真登録数)が20を超えたら横にx列で縮小写真を並べる
2)entry(写真登録数)が20以下なら縦に写真を並べる
という処理をしたいのです。
少ししか登録のないカテゴリーまで小さなサムネイル写真を並べるよりも
詳細データつきで縦並べにしたいと思うので。
で、単純に myalbum.list.default.design.xsl というデザイン定義内で
こんなことが出来ればいいのですが
コード: 全て選択
<?xml version="1.0" encoding="UTF-8" ?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
<xsl:output method="html" encoding="EUC-JP" omit-xml-declaration="yes" />
<xsl:template match="/entrylist">
<xsl:value-of select="count(entry)" />件
<xsl:if test="count(entry)>=20">
<table border="1">
<xsl:for-each select="row">
<tr>
<xsl:for-each select="entry">
<td>
写真のみ表示(横任意列並び)
</td>
</xsl:for-each>
</tr>
</xsl:for-each>
</table>
</xsl:if>
<xsl:if test="count(entry)<20">
<table border="1">
<xsl:for-each select="entry">
<tr>
<td>
写真と内容表示(縦並び)
</td>
</tr>
</xsl:for-each>
</table>
</xsl:if>
</xsl:template>
コード: 全て選択
<cmsd:entrylist name="myalbum" design="default" cols="4" />
というわけでデザイン定義を2つ作って埋め込むPHP側で処理出来るならそれでもいいのですが、count(entry)を{count(entry)}などで呼び出せますか?
まだ試してないのですけれど・・・。
何かもっといい方法があればと思い投稿させて頂きました。