ページ 1 / 1
今月・来月・再来月発売予定で、絞込みを実現したいのですが・・・
Posted: 2007年6月21日(木) 13:38
by okakensanta
いつもお世話になっております。
この度、CMSDを利用してCD等の商品紹介サイトを依頼されました。
ただ、要望の中に
・今月新作一覧
・来月新作一覧
・再来月新作一覧
という機能を付けて欲しいというものがあり、
上記がCMSDで実現可能なのか悩んでおります。
絞込み機能で可能なのか。
また、どのようにしたら実現できるのか。
をお聞きしたくメッセージさせて頂きました。
私としては、
<data name="release" type="date" caption="発売日" />
を使うのだろうという予測しか付きません。
どうやって、今の月を取得するのか。

今月新作一覧
来月・再来月の表示はどうやるのか。

来月新作一覧、再来月一覧
お教え頂けると幸いです。
Posted: 2007年6月21日(木) 14:34
by tsu
okakenさん
現行バージョンより、xslt側から現在日時の取得が可能となってます。
今月は以下で取得可能です。
コード: 全て選択
<xsl:value-of select="/*/today/@month" />
来月などはこんな感じでいけそうです。
コード: 全て選択
<xsl:value-of select="/*/today/@month - 1" />
これを<data name="release" type="date" caption="発売日" />と比較すれば実現可能かと思います。
Posted: 2007年7月19日(木) 02:16
by tsu
読み直したらかなりおかしいことを書いていました。お恥ずかしい
コード: 全て選択
<xsl:value-of select="/*/today/@month -1" />
としてしまうと1月だったら0月になっちゃいますよね。0月の次は-1月と。
ようは、今月を基準にして来月と再来月という値を取得したいわけですから、
今月 - 発売日 = 0であれば今月
今月 - 発売日 = -1であれば来月
今月 - 発売日 = -2であれば再来月
とすれば問題ないですよね、、、。はぁ。
ということで、静的な絞り込みのサンプルを作ってみました。
コード: 全て選択
<xsl:template match="entrylist">
<xsl:variable name="toyear" select="/*/today/@year" />
<xsl:variable name="tomonth" select="/*/today/@month" />
<h3>今月の新作一覧</h3>
<xsl:for-each select="entry">
<xsl:if test="($toyear = year) and (($tomonth - release ) = 0)">
<div>
<h4>作品タイトル:<xsl:value-of select="title" /></h4>
<p style="font-size : 0.8em ; ">発売日:<xsl:value-of select="concat(year , '年' , month , '月' )" /></p>
<div>作品紹介:<xsl:value-of select="description" /></div>
</div>
</xsl:if>
</xsl:for-each>
</xsl:template>
上記の実行例(適当に書いたXMLを使ってます)
http://cmsd.pdy.jp/refcmsd/sample/date/date2.xml