【現状】
リファレンスにも記載があるように、
CMS Designerでは、
list項目タグは、”使用するケースは稀”
と、位置づけられており、
スキーマのルート階層のデータ項目では可能な機能が、
list項目の中にデータが入ると、機能制限がある。
【要望】
list項目のデータの・・・
○ソート機能
○エントリ項目の直接出力
( <cmsd:entry name="エントリフォルダ名" dataname="項目名" /> )
○list項目のname=****の、n番目(最新)のデータを表示、といったタグ
【要望の理由】
list項目は、使用頻度の低い機能ではなく、ケースによっては、
結構活用されると個人的には思います。
私が、今このサイトの、CMS Designer化を進めているのですが、
http://www.house-kiya.co.jp/report/index.html
それぞれ建築中の家が随時追加されていて、
それぞれの家に、建築状況に応じた日記があるといった、
階層構造をなしています。
そして日によっては、写真が1枚だったり、3枚だったりと、
3階層の階層構造をなしている構成です。
---
以上ご検討よろしくお願いいたします。
list項目に入れたデータについての機能強化
Re: list項目に入れたデータについての機能強化
webmasterです。sasaiさん、たくさんのご意見ありがとうございます。
非常に分かりやすく、また実践的にまとめられている為、すぐ開発の方に
回せそうです。とても助かります。
全体的に早い段階で取り込めるものが多そうですので、今しばらく
お待ちいただければ幸いです。
取り急ぎ、こちらの投稿に対してまとめて書き込ませて頂きました。
非常に分かりやすく、また実践的にまとめられている為、すぐ開発の方に
回せそうです。とても助かります。
全体的に早い段階で取り込めるものが多そうですので、今しばらく
お待ちいただければ幸いです。
取り急ぎ、こちらの投稿に対してまとめて書き込ませて頂きました。
Re: list項目に入れたデータについての機能強化
webmasterです。
その後の経過です。
今回頂いたlist項目の機能強化案はとても実践的なもので、確かに実装されると
かなり活躍の幅が広がりそうです。
ただ、list項目の「何番目のデータを出力」のように外部から指定する
方法が少々難しく、特に多階層になるとかなり複雑にならざるを得ない為、
とりあえず一旦保留とさせて頂きました。
これについては現在、もう少し汎用的な「URLから任意のパラメータを
渡す機能」を検討中ですので、その機能を使ってある程度実現できる
ようにしたいと思います。
また、リスト項目のソートについては、XSLTのxsl:sort命令を使って
ある程度実現できるかもしれませんので、一度お試し頂ければ幸いです
http://www.cityfujisawa.ne.jp/~yanai/xm ... tep16.html
また追ってご連絡させて頂きます。
その後の経過です。
今回頂いたlist項目の機能強化案はとても実践的なもので、確かに実装されると
かなり活躍の幅が広がりそうです。
ただ、list項目の「何番目のデータを出力」のように外部から指定する
方法が少々難しく、特に多階層になるとかなり複雑にならざるを得ない為、
とりあえず一旦保留とさせて頂きました。
これについては現在、もう少し汎用的な「URLから任意のパラメータを
渡す機能」を検討中ですので、その機能を使ってある程度実現できる
ようにしたいと思います。
また、リスト項目のソートについては、XSLTのxsl:sort命令を使って
ある程度実現できるかもしれませんので、一度お試し頂ければ幸いです
http://www.cityfujisawa.ne.jp/~yanai/xm ... tep16.html
また追ってご連絡させて頂きます。
webmasterです。
仰るとおり、実行時ソートはxsl:sortでもある程度実現できます。
<for-each select="entry"> の直下に、ソートしたい内容でxsl:sortタグを
置けばOKです。
ただ、このやり方だと、ページ切替をしている場合に対応できないのです。
なぜなら、デザイン定義には「エントリ一覧のうち、1ページ分を抜き出した
後のデータのみ」が渡されるためです。
1,2,3,4,5,6,7,8,9,10 という順序で並んでいるエントリがあったとして、
1ページに5件ずつ表示すると、
ページ1: 1,2,3,4,5
ページ2: 6,7,8.9.10
となります。もしこれを「大きい方から降順に実行時ソート」しようとして、
xsl:sortを使ってソートしようとしても、xsl側に渡されるのは上記の1ページ分
のデータなので、ページ内でのみソートしてしまい、
ページ1: 5,4,3,2,1
ページ2: 10,9.8,7,6
のようにしか表示されないのです。
実行時ソート機能では、xsl側に渡す前にソートしますので、
ページ1: 10,9.8,7,6
ページ2: 5,4,3,2,1
のように表示することができます。
もちろん、1ページ内に全件表示している場合には、xsl:sortを使って思い通りの
ソートが実現できます。
もう一つ、実行時ソートには「URLパラメータからソート項目やソート順を
動的に指定できる」という機能もあります。
これを使って、一つのデザイン定義だけで複数のソートを実現することも
できます。
実行時ソートは負荷が高い機能ですので、十分にパフォーマンスの
検証をされてから採用されるよう、お願い致します。m(_ _)m
毎度ながら、sasaiさんの理解の早さに感服いたします。m(__)msasai さんが書きました:あれ? となると、
「実行時ソート」は、xsl:sortと、何が異なるのでしょうか?
同じことが、xsl:sort命令でもできるような・・・。
仰るとおり、実行時ソートはxsl:sortでもある程度実現できます。
<for-each select="entry"> の直下に、ソートしたい内容でxsl:sortタグを
置けばOKです。
ただ、このやり方だと、ページ切替をしている場合に対応できないのです。
なぜなら、デザイン定義には「エントリ一覧のうち、1ページ分を抜き出した
後のデータのみ」が渡されるためです。
1,2,3,4,5,6,7,8,9,10 という順序で並んでいるエントリがあったとして、
1ページに5件ずつ表示すると、
ページ1: 1,2,3,4,5
ページ2: 6,7,8.9.10
となります。もしこれを「大きい方から降順に実行時ソート」しようとして、
xsl:sortを使ってソートしようとしても、xsl側に渡されるのは上記の1ページ分
のデータなので、ページ内でのみソートしてしまい、
ページ1: 5,4,3,2,1
ページ2: 10,9.8,7,6
のようにしか表示されないのです。
実行時ソート機能では、xsl側に渡す前にソートしますので、
ページ1: 10,9.8,7,6
ページ2: 5,4,3,2,1
のように表示することができます。
もちろん、1ページ内に全件表示している場合には、xsl:sortを使って思い通りの
ソートが実現できます。
もう一つ、実行時ソートには「URLパラメータからソート項目やソート順を
動的に指定できる」という機能もあります。
これを使って、一つのデザイン定義だけで複数のソートを実現することも
できます。
実行時ソートは負荷が高い機能ですので、十分にパフォーマンスの
検証をされてから採用されるよう、お願い致します。m(_ _)m