エントリ数を取得する方法について

「まったく何も分からない・・・」そんなユーザーさんの為のフォーラムです。どんなご質問でもお気軽にどうぞ。
返信
bcacsato
パワーユーザー
記事: 234
登録日時: 2005年11月27日(日) 14:05

エントリ数を取得する方法について

投稿記事 by bcacsato » 2005年11月27日(日) 14:26

たびたび、恐れ入ります。

グループによる絞り込み機能を使って、カテゴリ毎のリンクを作成する際、
そのカテゴリに所属するエントリ数を自動的に表示することは可能でしょうか?

たとえば、↓こちらのページで、
http://cms.al-design.jp/sample/starter/reviewlist.php

 全て(15)
 本(10)
 CD・VIDEO(5)

といった具合です。

よろしくお願いいたします。

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

Re: エントリ数を取得する方法について

投稿記事 by webmaster » 2005年11月27日(日) 20:34

 webmasterです。
 はい、可能ですが、現在のところ少々面倒な方法しかありません。

 xsltのcount関数を使います。count関数は、同じ名前の要素が何件あるかを
数えて返す関数です。

コード: 全て選択

(前半省略)
<xsl:template match="/entrylist">
  <xsl:value-of select="count(entry)" />
</xsl:template>
 上記のようなデザイン定義を作ります。
 これは、エントリ一覧の件数だけを出力するデザイン定義です。
 例えばこれにcountとでも名前をつけます。

コード: 全て選択

<cmsd:entrylist name="review1" design="count" pageno="top" rows="99999">
  <cmsd:group key="category" value="book" />
</cmsd:entrylist>
 のように書くと、category='book'(本)のエントリ一覧に対して先ほどの
countデザインを適用する為、カテゴリが「本」の件数を得る事ができます。
 cmsd:group要素を書かなければ、全件を取得できます。

 ただ、あまり使い勝手が良いとは言えない為、現状ではあまりお勧めできるとは
言い難いです。m(_ _)m

 カテゴリ名を自動的にリストアップする機能もありませんし、この辺の機能も
含めて良い方法を検討したいと思います。

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

投稿記事 by bcacsato » 2005年11月29日(火) 21:11

webmasterさま、詳しいご回答ありがとうございます。

この方法は、カテゴリ表示がphpファイル内にある場合にだけ利用できるのでしょうか?
御社サンプルサイトのように、テンプレート(xslファイル)内にある場合はどのようにすればよいのでしょうか?
急ぎませんが、今後のために教えていただけますと幸いです。

CMSデザイナーは通常のブログに比べてもとても使いやすいのですが、カテゴリの使い勝手がいまいちに感じます。
管理画面よりカテゴリの追加・編集ができるようにはできないものでしょうか?
(もしでもできるようでしたら、そのやり方を教えていただけますでしょうか。)

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

投稿記事 by webmaster » 2005年11月30日(水) 01:06

 webmasterです。
bcacsato さんが書きました:この方法は、カテゴリ表示がphpファイル内にある場合にだけ利用できるのでしょうか?
御社サンプルサイトのように、テンプレート(xslファイル)内にある場合はどのようにすればよいのでしょうか?
 申し訳ありません、その場合には、利用することができません。m(_ _;)m
 また、管理画面よりのカテゴリの追加・編集も現在のところ出来ません。

 これらの点については、以前より優先的な課題として取り組んでいるのですが、
もともとのツールの発想が「カテゴリ」という概念を無くしてシンプルな管理を
目指したというところもあって、良い方法が見つかっておりません。

 ただ、少なくともメニュー項目の内容を管理画面から追加・編集できるようには
したいと考えております。
 また、それにともない、xsltからメニュー項目の値を取得できるようにもします。
 (各メニュー項目毎のエントリ件数の自動取得は、パフォーマンス的な面から
まだ具体的な方法が見つかっておりません)

 実装はできれば今年中、遅くとも来年の早い段階で行う予定です。
 お待ちいただければ幸いです。m(_ _)m

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

投稿記事 by bcacsato » 2005年11月30日(水) 02:31

了解しました!楽しみにしてます :D

tsu
パワーユーザー
記事: 208
登録日時: 2006年1月16日(月) 12:00
お住まい: さいたま

投稿記事 by tsu » 2006年2月10日(金) 02:10

menu項目の値をとれると最高に使いやすそうですね。
この記事も読まずにずっと格闘してました、、、。いつも「ダメだ〜」と思ってから「これは使えません。」という記事を見つけてしまいます。

とりあえずlist項目でブログ風(カテゴリ hoge(2) )にしてみたのですが、やはりソート出来ないと使えないですよね、、、。

h1ro
記事: 6
登録日時: 2006年9月26日(火) 17:51

投稿記事 by h1ro » 2006年10月03日(火) 11:25

webmasterさま始めまして。
どこかで読み落しがあったら申し訳ございません。
発見できなかったので質問をさせてください。

本件は実装済でしたでしょうか?

>bcacsato wrote:
>たとえば、↓こちらのページで、
http://cms.al-design.jp/sample/starter/reviewlist.php

> 全て(15)
> 本(10)
> CD・VIDEO(5)

この様なカテゴリ分けのものに加えて、アーティスト分けも同時にしたいと思っています。

カテゴリー
 全て(15)
 本(10)
 CD・VIDEO(5)
アーティスト
 岡野玲子(1)


さらに、これら項目名(全て、とか岡野玲子など)をcmsd入力画面より自由に増減させることは可能でしょうか?

商品登録をしたら、どちらにもカウントされる(無かったら新たに現れる)ようなことを想定しております。

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

投稿記事 by webmaster » 2006年10月04日(水) 03:11

 webmasterです。お返事が遅れまして大変申し訳ありません。

 ご質問の件ですが、申し訳ありません、実装が遅れておりまして、現在もまだ
この機能はございません。m(__)m

 カテゴリ毎の件数を出す方法につきましては、xslt側で出力する方法をこのトピックの
過去ログでご紹介させて頂いておりますが、「menu項目の選択肢をコンテンツ管理画面
から追加・削除する機能」がまだございませんので、おそらくご要望には沿えないとは
思います。

 よって、
h1ro さんが書きました: カテゴリー
 全て(15)
 本(10)
 CD・VIDEO(5)
アーティスト
 岡野玲子(1)
 については(面倒な方法ですが)可能ですが、
h1ro さんが書きました: さらに、これら項目名(全て、とか岡野玲子など)をcmsd入力画面より自由に増減させることは可能でしょうか?
 につきましては現状では実現することができません。

 尚、カテゴリ毎の件数を出す方法につきましては、もう少し効率的な方法をその後
見つけておりますが、XSLTにかなり詳しくないと細部の理解は難しい方法となって
おります。もし必要でしたら、ソースのみになりますが開示させて頂きます。

 以上、追加のご質問がありましたらよろしくお願い致します。

tsu
パワーユーザー
記事: 208
登録日時: 2006年1月16日(月) 12:00
お住まい: さいたま

投稿記事 by tsu » 2006年10月04日(水) 10:43

おはようございます。

XSLT

コード: 全て選択

<a href="test.php?select=php">PHP(<xsl:value-of select="count(entry[select='php'])" />)</a>
埋め込みタグ

コード: 全て選択

<cmsd:entrylist name="test" design="entry" rows="9999" >
   <cmsd:group key="select" />
</cmsd:entrylist>
これだとXSLT側であれこれと出来るのですが、カテゴリが増えたり減ったりするとやや面倒ですよね、、、。

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

投稿記事 by webmaster » 2006年10月04日(水) 10:53

 tsuさん、いつもありがとうございます。
 非常に分かり安い形でまとめて頂きありがとうございます。m(__)m

 現在、スキーマを編集してmenu項目の選択肢を増減させた場合に、増減に自動追尾できる
デザイン定義の書き方を簡単にまとめている所です。
 ただ、かなり複雑ですので、職業プログラマレベルの方向けとなってしまいます。
 デザイナーの皆様にもなるべく理解しやすいように書いてみたいと思います。

 しばしお待ち下さい。

h1ro
記事: 6
登録日時: 2006年9月26日(火) 17:51

投稿記事 by h1ro » 2006年10月04日(水) 11:48

webmasterさま、tsuさま
早速のお返事と分かりやすいご説明、誠にありがとうございます!
本当に本当に助かります・・・

ご指示いただいたとおりの直接ソース編集であれば、カテゴリ毎のカウントは問題なくだせました。増減の際には都度XSLTに修正が入るといったところも理解できました。
確かに面倒ですね。。

>現在、スキーマを編集してmenu項目の選択肢を増減させた場合に、増減に自動追>尾できる デザイン定義の書き方を簡単にまとめている所です。
> ただ、かなり複雑ですので、職業プログラマレベルの方向けとなってしまいます。
> デザイナーの皆様にもなるべく理解しやすいように書いてみたいと思います。

楽しみにお待ち申し上げております!

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

投稿記事 by webmaster » 2006年10月05日(木) 17:53

 webmasterです。

 下記のTIPSを書き下ろしましたので、よろしければご覧下さい。m(__)m
 
 カテゴリ毎の件数を出力する/メニュー項目選択肢をデザイン定義に読み込む
 http://cms.al-design.jp/phpbb/viewtopic.php?p=1764

h1ro
記事: 6
登録日時: 2006年9月26日(火) 17:51

できました!

投稿記事 by h1ro » 2006年10月05日(木) 20:09

webmasterさま
またもや分かりやすいご説明、誠にありがとうございます!

親切なコード内コメントで助かり、なんとか実現出来ました。
外部ファイル(スキーマ)もいけるのですね、非常に勉強になりました!

:D

返信