スケジュールページ

「まったく何も分からない・・・」そんなユーザーさんの為のフォーラムです。どんなご質問でもお気軽にどうぞ。
返信
シンP

スケジュールページ

投稿記事 by シンP » 2005年12月18日(日) 10:49

お世話になっています。

現在CMSDを利用してスケジュールページをつくっているのですが
その過程で自分では分からない点が出てきたので質問させていただきますm(_ _)m

今回のスケジュールページには、その月のスケジュールだけを表示して
さらに前の月・次の月へのリンクをつけたいと思っています。

まずCMSD単体でその月のスケジュール(エントリ)だけを表示させることは可能でしょうか?
現在はschemaにmonthを設定し、それをグループ化>絞り込み(2005-12等で)
という方法でその月のスケジュールだけ表示することが可能となっています。
しかし、この方法だと、どうしても毎月FTP経由でのファイル更新が必要になってしまいます。
またschemaにスケジュールの日付であるdateに加え
絞り込みのためだけにmonthを設定しているため
入力が二度手間になってしまっているという問題もあります。

1:dateの入力だけ済み(絞り込み用の項目を設定する必要が無く)
2:FTP経由でファイルを更新する必要の無い
3:当月のエントリだけを表示してくれる

スケジュールページというのは可能でしょうか?

絞り込み項目(month)を設定して、URLからの動的な絞り込みと、PHPを組み合わせれば
可能な気もしますが、CMSDの機能だけで出来るのであれば
それで済ませてたいので、質問させていただきました。

年末でお忙しいとは思いますがよろしくお願いします。

シンP

追加の質問です

投稿記事 by シンP » 2005年12月18日(日) 12:02

追加の質問です

コード: 全て選択

<cmsd:entry name="config" dataname="subtitle" />
というような記述で、エントリ内の特定の項目を
直接表示出来るという便利機能ですが

これを応用してエントリのリスト項目内の特定の項目を
直接表示させるということは可能でしょうか?

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

Re: スケジュールページ

投稿記事 by webmaster » 2005年12月18日(日) 13:08

 webmasterです。
 取り急ぎご報告いたします。

 「年」や「月」などの単位でエントリを扱う方法については現在、最優先で仕様を
実装中ですが、現状では申し訳ありませんが難しいようです。

 特に、「今月の」という指定ができない為、おっしゃる通り毎月ファイル更新が
必要になってしまいます。

 尚、monthなどのデータについては、通常の「更新日時」から値を取得可能です。
 絞込み項目名として "@month"などを指定することができます。
 PHPスクリプトと組み合わせて「今月」や「今年」などを取得し、CMSDへ渡すという
方法もあるかと思いますが、多少複雑になります。
(ご要望があれば後ほど試してみたいと思いますが、多少お時間を頂きます。m(_ _)m)

 以上、取り急ぎで大変失礼致します。

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

Re: 追加の質問です

投稿記事 by webmaster » 2005年12月18日(日) 13:08

 webmasterです。

 エントリ内の項目直接出力機能は、リスト項目に対しては用いる事ができません。
 申し訳ありませんがご了承頂ければ幸いです。m(_ _)m

シンP

ありがとうございます。

投稿記事 by シンP » 2005年12月18日(日) 14:20

素早いご回答ありがとうございます。

日付と連携させたエントリの表示はバージョンアップを待った方が良さそうですね(^^)
とりあえずはPHPを使った方法を考えてみます。
PHPを学習したいと思っていたので、いい練習になりそうです。

リスト項目の直接表示に関しては了解いたしました。

あと更新日時の@monthなどで絞り込みが可能とのことですが
通常通り
<cmsd:entrylist name="hoge" design="hoge">
<cmsd:group key="@month" value="1" />
</cmsd:enttrylist>
で出来るのでしょうか?
ちょっと試してみたのですが出来ませんでした。

ここでいう「絞り込み」とはXSLT側でif文等を使った絞り込みのことでしょうか?

シンP

ちょっとしたことですが…

投稿記事 by シンP » 2005年12月18日(日) 15:54

リファレンスの文中に
<は">"とありますが、実際は”<”ではないでしょうか?

間違ってたらすみません。

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

Re: ありがとうございます。

投稿記事 by webmaster » 2005年12月19日(月) 02:06

 webmasterです。
 シンPさん、大変申し訳ありません、@monthのグループ絞込み指定の件は、
当方の勘違いでした。余計な手間を取らせてしまい、失礼致しました。m(_ _;;)m

 スキーマのsortkeyに@idや@year、@monthなどが指定できるという件と
間違えておりました…。

 カレンダー関係の機能追加をお待ち頂ければ幸いです。

 また、マニュアルのご指摘ありがとうございます。さっそく修正しておきます。
 引き続きご利用頂ければ幸いです。

bcacsato
パワーユーザー
記事: 233
登録日時: 2005年11月27日(日) 14:05

投稿記事 by bcacsato » 2007年11月13日(火) 19:41

私もシンPさんと同じく、当月の記事のみを表示させたいと思っています。

CMS Designerのバージョンアップにより、現在日時の取得機能が追加されたとのことですが、
ということは、当月の記事のみを表示することも可能になったということでしょうか?

もし可能であれば、その方法についても教えていただけますでしょうか。
よろしくお願いいたします。

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

投稿記事 by webmaster » 2007年11月14日(水) 17:10

 bcacsatoさん、いつもありがとうございます。

 「当月の記事を表示する」という機能はまだCMS Designerの基本機能としては
用意されていないのですが、bcacsatoさんの仰る通り、現在日時の取得機能を
使って実現可能かもしれません。アイデアありがとうございます。

 試している時間が取れない為、こんな感じでいけるのではないかというソース
だけなのですが、エントリ一覧用のデザインで、次のような感じでどうでしょうか。

コード: 全て選択

<xsl:template match="entrylist">
  <xsl:variable name="year" select="today/@year" />
  <xsl:variable name="month" select="today/@month" />
  <xsl:for-each select="entry[@year=$year and @month=$month]">
   <!-- 通常通り、ここにエントリを表示するソースを書く -->
  </xsl:for-each>
</xsl:template>
 yearとmonthを事前にtoday/@yearとtoday/@monthから取得して変数に
保存しておき、for-eachの entry の後に条件式をつけ、年と月が今日の年月と
一致するものだけを選択するようにしています。

 エラーなどありましたら申し訳ありませんが、一度お試し頂ければ幸いです。

bcacsato
パワーユーザー
記事: 233
登録日時: 2005年11月27日(日) 14:05

投稿記事 by bcacsato » 2007年11月18日(日) 13:13

webmasterさま

ご回答ありがとうございます。
ご教授いただいた方法を試させていただきます!

bcacsato
パワーユーザー
記事: 233
登録日時: 2005年11月27日(日) 14:05

日時の特定の項目で絞り込みたい

投稿記事 by bcacsato » 2009年11月27日(金) 21:55

これとはちょっと使い方は違うのですが、
エントリ更新日時もしくはスキーマのdataタグで入力した日付について、
「年」で絞り込み表示させたいと思っています。

シンP様と同じように、

コード: 全て選択

<cmsd:entrylist name="hoge" design="hoge"> 
<cmsd:group key="@yaer" value="2008" /> 
</cmsd:enttrylist> 
のようにやってもダメだったため、webmasterさまの回答を参考に、

コード: 全て選択

<xsl:variable name="year" select="@year" />
あるいは

コード: 全て選択

<xsl:variable name="year" select="hogeday/@year" />
のようにして、「年」を事前に取得して「year」という変数に保存させてから、

コード: 全て選択

<cmsd:entrylist name="hoge" design="hoge"> 
<cmsd:group key="yaer" value="2008" /> 
</cmsd:enttrylist> 
としてみましたが、うまくいきません。

試しに、

コード: 全て選択

<xsl:value-of select="year" disable-output-escaping="yes" />
のようにして表示させてみても何も表示されないため、何も保存されてないのかと思います。

何か手順が間違ってますでしょうか?ご教示くださいませ。

返信