date(日付タグ)を使ったグループ絞込みは可能ですか?

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

date(日付タグ)を使ったグループ絞込みは可能ですか?

投稿記事 by kaoi » 2006年4月09日(日) 20:27

お世話になっております。
日々、CMSDと格闘中です。
カタツムリのように、ですが、少しずつ理解している感じが楽しいです :D

質問は表題の件です。

<data name="program-start" type="date" caption="開演" />

↑ スキーマにこういう項目を設定しているのですが、
ここにグループ絞込みを適用できるでしょうか。
ブログで言う、月別エントリー一覧のようなページを作りたいと思っているのです。
開演時期が2006年4月のものを集めて一覧表示、という感じで。

やはり、type="menu" を使わなければダメでしょうか?
その場合、やはり
year[2006~]
month[01-12]
というmenu項目をそれぞれ作る必要がありますよね・・・。

個別ページでは、日付自体(2006/4/9等)を表記する必要があるので、
できればdata項目ひとつのエントリーで済ませたいところなのですが、
お知恵を授けてくださいまし。

webmaster
Site Admin
記事: 1451
登録日時: 2004年12月10日(金) 10:09

Re: date(日付タグ)を使ったグループ絞込みは可能ですか?

投稿記事 by webmaster » 2006年4月10日(月) 19:16

 webmasterです。kaoiさんいつもお世話になっております。

 日付項目によるグループ絞込みは可能です。
 通常と同様に、スキーマに group="True" を指定していただけばOKです。

 絞込みの際には、例えば date 項目の場合、 "2006-04-10" のような値で
絞込みして頂ければOKです。

 年月の場合には、type="month" を使って頂くこともできます。
 month項目は、"2006-04"のような値が保存されているので、この値で
絞り込む事が可能です。

 ただ、実際の使い勝手を考えますと、絞込みをする為のリンクを動的に
生成することができない為(毎回、「2006年4月の一覧」のようなリンクを
自分で作る必要がある)、現実的とはいえないかと思います。

 現在、カレンダーと連動させてエントリ一覧を扱うことができるフレームワークを
検討しているところですが、それまではご不便をおかけすると思います。
 カレンダー機能が追加されますと、例えばイベント情報や空室予約状況などの
情報の扱いがしやすくなるかと思います。

 以上、よろしくお願い致します。

kaoi
アクティブユーザー
記事: 11
登録日時: 2006年4月07日(金) 01:08

うまくいきません;;

投稿記事 by kaoi » 2006年4月11日(火) 14:32

お世話になっております。
ご回答ありがとうございます!

ただ、なぜかうまくいかなくて・・・

dateにgroup="True"を指定し、

<xsl:if test="program-start='2005-11'">
<xsl:value-of select="program-h1" />
</xsl:if>

↑ 表示させる内容をものすごく単純化して、こういうxslを作ってみたのですが、

実出力側(deta内に作られるxml)では

<program-start year="2005" month="11" day="25" hour="00" minute="00" second="00" weekday="fri">2005-11-25</program-start>

↑ こういう出力になっていますので、日付(-25)が邪魔なんでしょうか?
/@year とか/@month を使って、xsl:if を組むのですか?

細かな質問で本当にお手数をおかけします。ご回答よろしくお願いしますm(_ _)m

webmaster
Site Admin
記事: 1451
登録日時: 2004年12月10日(金) 10:09

Re: うまくいきません;;

投稿記事 by webmaster » 2006年4月11日(火) 14:39

 webmasterです。kaoiさん、お世話になっております。

 おそらく、program-start が、スキーマ上で「type="date"」となっているのでは
ないかと推測します。
 これを、「type="month"」に変更し、該当のエントリをコンテンツ管理画面から
再度保存しなおしてみて下さい。

kaoi
アクティブユーザー
記事: 11
登録日時: 2006年4月07日(金) 01:08

Re: うまくいきません;;

投稿記事 by kaoi » 2006年4月11日(火) 14:52

即答ありがとうございます!
webmaster さんが書きました:おそらく、program-start が、スキーマ上で「type="date"」となっているのでは
ないかと推測します。
↑ なってますなってます。
ただ、「program-start」の日付と曜日は、別途使用する予定なのです。

スキーマ上で、month date(datetime?) weekday を全部指定すべきですか?
(その場合、monthをグループ化?)

webmaster
Site Admin
記事: 1451
登録日時: 2004年12月10日(金) 10:09

Re: うまくいきません;;

投稿記事 by webmaster » 2006年4月11日(火) 15:36

 webmasterです。

> ただ、「program-start」の日付と曜日は、別途使用する予定なのです。

 なるほど、申し訳ありません、ようやく状況が理解できました。

 この場合ですと、最適解はなさそうです。m(__;)m

 グループ絞込みの対象となるデータは、項目の値のみ(この場合ですと
"2006-11-05の部分)で、各種属性(この場合ですと、@yearとか@monthとか)は
絞込み対象として使用できません。

> スキーマ上で、month date(datetime?) weekday を全部指定すべきですか?
> (その場合、monthをグループ化?)

 これですと、

 [   ]年 [   ]月
 [   ]年 [   ]月 [   ]日

 という感じになってしまいます。(weekdayというスキーマ項目はありません)

 同じ内容を二回入力して頂いて良いのでしたら、この方法ぐらいしか思いつき
ません…。

 カレンダー的な使い方については元々このような問題がある事を認識しており、
そのためにカレンダー機能の実装を現在進めておりますので、もし可能でしたら
お待ちいただければ幸いです。m(__)m

 他にご質問がありましたら、引き続きご連絡をお待ちしております。

kaoi
アクティブユーザー
記事: 11
登録日時: 2006年4月07日(金) 01:08

了解しました!

投稿記事 by kaoi » 2006年4月11日(火) 15:52

> ようやく状況が理解できました。

説明がたどたどして申し訳ありません〜〜;;

> この場合ですと、最適解はなさそうです。m(__;)m

了解です。これまで全部手作業で入力、訂正、分類をしていたことを思えば、エントリー項目の増加など、なんてことはありません。

>  [   ]年 [   ]月
>  [   ]年 [   ]月 [   ]日

↑ こういう形で、上部を month グループ化
下部を date グループ化なし (自動的に曜日も入れてもらえる)

と考えれば良いですね。了解です。

> カレンダー的な使い方については元々このような問題がある事を認識しており、
> そのためにカレンダー機能の実装を現在進めておりますので、もし可能でしたら
> お待ちいただければ幸いです。m(__)m

機能が追加されるまでに、なんとか今ある機能をすべてマスターしたいものです。
実際に触ってみて、CMSDの得意なこと、不得意なことがゆっくりわかってきました。
ご回答ありがとうございました。
次々質問を繰り出します。よろしくお付き合いくださいませ。

webmaster
Site Admin
記事: 1451
登録日時: 2004年12月10日(金) 10:09

Re: 了解しました!

投稿記事 by webmaster » 2006年4月11日(火) 16:10

 こちらこそ、いろいろお手数をおかけしました。

 また何かありましたらご質問をお待ちしております。

kaoi
アクティブユーザー
記事: 11
登録日時: 2006年4月07日(金) 01:08

追加質問・・・エントリーの日付を使えないものか?

投稿記事 by kaoi » 2006年4月11日(火) 20:25

たびたびお邪魔します。。。
↑の件、一応は解決なのですが、ふと、エントリーの日付を、日付表示に使えないだろうか?と疑問を持った次第です。

<data name="program-start" type="date" caption="開演" />

↑ こういうスキーマを設定するのではなく、エントリー時に、未来だろうがなんだろうが所定日時を入力してしまう。
(そのほうが、エントリー一覧表示時にも整理されるし・・・)
そして、グループ化した month をスキーマに置く。

開演=entry date ということで、先の例でいうと、

 [   ]年 [   ]月
 [   ]年 [   ]月 [   ]日

↑ このうち、の下方(date側)の入力を省くことができるのかな?と。

もし可能であるとしたら、xsl側での表示のさせ方がわからないのです。

現在、

(<xsl:value-of select="program-start/@month" />/<xsl:value-of select="program-start/@day" /><xsl:value-of select="program-start/@weekday" />)

こんなxslを書いていて、無事に

(4/11tue)

という感じで、結果が表示されております。

エントリー日時を使えるとすると、
<xsl:value-of select="#/@month" />
#箇所には、なんと書けばよいでしょうか?

webmaster
Site Admin
記事: 1451
登録日時: 2004年12月10日(金) 10:09

Re: 追加質問・・・エントリーの日付を使えないものか?

投稿記事 by webmaster » 2006年4月12日(水) 08:09

 webmasterです。
 エントリ日付は、<xsl:value-of select="@date" /> や <xsl:value-of select="@year" />
などで表示可能です。

 詳しくはリファレンスマニュアルの「5。5。11 エントリの更新日付や、日付項目を表示する。」
をご参照下さい。:)

kaoi
アクティブユーザー
記事: 11
登録日時: 2006年4月07日(金) 01:08

ああっ

投稿記事 by kaoi » 2006年4月12日(水) 13:28

マニュアルに書いてある!!(印刷して首っ引きでやっているのに・・・)
申し訳ありません〜〜〜。
お忙しい中、ご回答ありがとうございましたm(_ _)m

追記:ちなみに、エントリー日付を日付表示に流用させると、
該当スキーマを別のデザインに転用しようとする際に、不都合が出るかも、
と考えはじめました。(作り方次第かもしれませんが・・・)
エントリー日付はそのまま置いておくほうが無難かもしれませんね・・・。
ともあれ、本当にお手数をおかけしました。申し訳ありません。

webmaster
Site Admin
記事: 1451
登録日時: 2004年12月10日(金) 10:09

Re: ああっ

投稿記事 by webmaster » 2006年4月12日(水) 14:42

 いえいえ、あのマニュアルはリファレンスマニュアルで、そもそも全てに目を通すのは
不可能と考えておりますので、読まずに気軽にご質問頂いて結構です。

 エントリ日付を他の用途に使うというアイデアは充分アリだと思います。
 現在検討中のカレンダー機能は、エントリ日付をカレンダー日付に対応させる予定
ですので、必ずしも「投稿日」にならないこともあるかと思います。

 いろいろと工夫していただいているようで大変嬉しいです。
 また何かありましたらお気軽にご質問ください。

返信