リスト編集内の更新日について

「まったく何も分からない・・・」そんなユーザーさんの為のフォーラムです。どんなご質問でもお気軽にどうぞ。
返信
まいまい
アクティブユーザー
記事: 14
登録日時: 2008年8月24日(日) 21:10

リスト編集内の更新日について

投稿記事 by まいまい » 2008年12月06日(土) 15:14

プログラムは初心者なので、フォーラムやリファレンスを参考にしながら必死に作っています。

リスト編集内の項目にNEW!を付けたくて
フォーラムの「リスト編集内の非表示について」とリファレンスの「5.5.14 「NEW!」表示をする。」を参考に作ってみたのですが、NEW!が表示されません。
何が足りないのでしょうか?

スキーマには
<data name="oalist1" type="list" caption="一覧" >
<listitem caption="一覧" title="oaday,title" sortkey="oaday" sortorder="asc" >
<data name="visible" type="menu" caption="表示">
<menuitem id="show">表示</menuitem>
<menuitem id="hide">非表示</menuitem>
</data>
<data name="record" type="date" caption="更新日">
</data>
<data name="oaday" type="text" caption="月/日" output="text2" size="40" />
<data name="title" type="textarea" caption="タイトル" output="text2" size="70" />
</listitem>
</data>

デザイン定義には
<xsl:value-of select="title" disable-output-escaping="yes" />
<xsl:if test="@daysago<7"> New!</xsl:if>

としてみました。

まいまい
アクティブユーザー
記事: 14
登録日時: 2008年8月24日(日) 21:10

Re: リスト編集内の更新日について

投稿記事 by まいまい » 2008年12月13日(土) 22:21

考え方を変えてみたら、解決しました。

<xsl:if test="@daysago<7"> New!</xsl:if>
この5.5.14 「NEW!」表示をする。はエントリに設定した項目に表示させる場合なので
リスト編集内に設定した項目には5.5.15 現在日時を取得する。を使えば良いのですね。

デザイン定義
<xsl:if test="floor((/*/today/@time - record/@time)div(60*60*24))<=7">
NEW!
</xsl:if>
<xsl:if test="floor((/*/today/@time - record/@time)div(60*60*24))>7">
</xsl:if>

リスト編集内に設定した更新日の項目名はrecordにしたので
現在日時-更新日(record)が7日以内だったらNEW!を表示させる。
7日以上だったら何も表示しない。としたら上手くいきました。

スケジュールのページを作るのに、1ページに3ヶ月分を表示させたかったので
何か良い方法はない方考えていて
エントリに年月だけを入れて、そこにリスト編集に日ごとのスケジュールを入力すれば
絞込をしなくても月ごとに纏められる。と楽な方法を考えたのです。
日ごとのスケジュールに更新日が付けられればこれでいろいろ遊べます :D

CMS Designは知れば知るほど面白くなりますね。
こんな私でも出来るなんて感謝です!!

返信