一覧表示の際,データ値による絞込みと組み合わせると表示件数が合わない

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

一覧表示の際,データ値による絞込みと組み合わせると表示件数が合わない

投稿記事 by kkn » 2005年3月04日(金) 15:20

こんにちは。
既出のことでしたらすみません;

一覧表示を,

<?php cmsview::listpage( "public_xxx", "▲△▲", 10 ) ?>

で表示していますが
.xsl の方で, <xsl:if test="naiyou/text()"> を使っていると,
実際の表示が 10 件以下になってしまうようです。
どうも, "naiyou/text()" でないモノをカウントして10件になっているような気がするのですが。

これに気付いたのは,ナビゲーションをつけて “次のページへ” “前のページへ” をつけて一覧表示したら
次ページがない筈なのに, “次のページへ” が出てしまった事からです。
(次のページへ をクリックすると何もデータがないページが出ます。)

記述の方法が適切でない為このようになってしまうのでしょうか?
それとも不具合といっていいのでしょうか・・・?
アドバイスをお願いいたします。

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

Re: 一覧表示の際,データ値による絞込みと組み合わせると表示件数が合わない

投稿記事 by webmaster » 2005年3月04日(金) 16:49

 webmasterです。

 ひょっとして私の勘違いかもしれませんが、おそらくこういうことだと思います。

 (1) cmsview::listpageで、絞込み条件を使った上で1ページ表示件数を10件にしている。
 (2) xsl側で、xsl:ifを使って、条件に合わないエントリを表示しないようにしている。

 ここで、処理される順番は(1)→(2)となります。
 つまり、まず、一旦絞り込み条件によって絞り込まれた結果が、10件(1ページ分)
のエントリデータとしてxslに渡されます。
 その後、xsl側で、その10件の一部(条件に合わないエントリ)を非表示にします。

 よって、結果的に1ページの全てのエントリがxsl側で非表示になる場合もあるかと
思います。

 基本的に、xsl側でエントリそのものを絞り込んで表示する方法は、cmsview::listpage
では上記の理由で使えません。
 その場合はcmsview::listtopを使うようにしてくださいませ。m(_ _)m

 どうしてもページ切替をしたい場合は、xslではなくCMSD自体のグループ絞込み
機能を使ってくださるよう、お願いいたします(それができなかったからxsl側で
絞り込んでいるのだとは思いますが・・・)。

 すいません、この辺、非常にややこしいかと思います。(-_-;;
 また分からない点などありましたらお気軽にご質問ください。

kkn
アクティブユーザー
記事: 20
登録日時: 2005年2月20日(日) 10:04

Re: 一覧表示の際,データ値による絞込みと組み合わせると表示件数が合わない

投稿記事 by kkn » 2005年3月04日(金) 17:30

> (1) cmsview::listpageで、絞込み条件を使った上で1ページ表示件数を10件にしている。

というのは,
 <?php cmsview::listpage( "エントリ名", "デザイン名", 表示件数, 絞込み条件) ?>

のことですよね。

現状では,
 <?php cmsview::listpage( "エントリ名", "デザイン名", 表示件数) ?>
の指定で 絞込み条件は使っていません。

ですが,ご指摘どおり,処理順番の問題で,
まず php の命令で 10 件に絞り込んだ後, xsl の方で条件に合わないものを非表示にするために目的の結果が得られないのだと思います。
cmsview::listtop でも結果は同じでした。(処理順で考えるなら当たり前ですよね;)

リスト表示(一覧表示)の際 xsl 側でデータ有無による絞込みをする事は出来ないと理解しました。
絞込みはやはり条件(キー)を設定しての絞込みでないとダメという事ですね。
(絞込み用のグループ条件を増やすのは負荷を考えると嫌だったので,極力少なくしてました・・・ (><; )

どちらにしろ後からグループ項目に定義し直す,というはいけないような気も・・・?
一度グループ項目に設定したものを変更したり削除するのは NG でしたよね。
でも後から追加したり,そうでなかったモノをグループに設定するのはアリでしょうか。

何だか質問がズレてきた気もしますが・・・

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

Re: 一覧表示の際,データ値による絞込みと組み合わせると表示件数が合わない

投稿記事 by webmaster » 2005年3月04日(金) 22:27

 webmasterです。
kkn さんが書きました: リスト表示(一覧表示)の際 xsl 側でデータ有無による絞込みをする事は出来ないと理解しました。
絞込みはやはり条件(キー)を設定しての絞込みでないとダメという事ですね。
(絞込み用のグループ条件を増やすのは負荷を考えると嫌だったので,極力少なくしてました・・・ (><; )
 はい、書いていただいた通りです。m(_ _)m
 xsl側でエントリそのものに対して絞込みをかけるのは、CMSDでは特殊な
テクニックで用途がかなり限られると思います。
kkn さんが書きました: どちらにしろ後からグループ項目に定義し直す,というはいけないような気も・・・?
一度グループ項目に設定したものを変更したり削除するのは NG でしたよね。
でも後から追加したり,そうでなかったモノをグループに設定するのはアリでしょうか。
 基本的にはナシなのですが、もしどうしてもスキーマを変更したい場合は、
スキーマ変更後にコンテンツ管理画面にログインしなおしてから、そのスキーマ
の全てのエントリを開いて「保存」しなおせば、新しいスキーマの状態が反映
されます。

 しかし、どうもこれは、早急に「スキーマの修正を全エントリに反映する機能」
が必要そうですね・・・。
 ちょっとアイデアが浮かんだので、なるべく近いうちに対処します。

 現在、例の「お手軽パック」の作成に追われていて、対処しなければいけない
リストが溜まってきています。(-_-;;
 一つ一つ解決していきますので、お待ち頂ければと思います。

返信