Welcome, Guest! Log In | Create Account

ページナビのgetTotalItems()の挙動について

バグ報告のほか、バグかもしれないと感じたことの投稿、ローカルコミュニティに報告されていたバグの回覧、トラッカーに報告されたバグの検討などを行うバグ討伐用フォーラムです。

Moderator: JA Bug moderators

Forum rules
試験運営中です。
バグ報告では必ず環境を明記してください。バグトラッカーへは原則としてモデレーターが代行上げします。

ページナビのgetTotalItems()の挙動について

Postby beabo » Mon Aug 24, 2009 5:00 am

ページナビのクラスで、setTotalItems()を使って合計数を指定した場合に、$_mIsSpecifiedTotalがtrueにセットされますが、
getTotalItems()を使って、ページ合計を取得するとsetTotalItems()でセットした合計数が反映されません。

これは、アクションフォームでデータをオブジェクトで取り出す場合、影響は特にありません。

しかし、複数のデータベースからデータを取得するのにSQLを直接記述て取得した場合に問題が発生します。
ページナビのクラスを手動で設定する場合です。

$this->mFilter->mNavi->setTotalItems(10); // 合計数
とした場合に 実際は getTotalItems() の値がセットされないという状況です。
$_mIsSpecifiedTotalは、trueにセットされています。

XOOPS Cube Legacy デベロッパーズ・バイブルで調べてみると・・・162ページのgetTotalItems()の説明では
XOOPS Cube Legacy デベロッパーズ・バイブルより引用
getTotalItems()を使うと$_mIsSpecifiedTotalがfalseの場合は、getTotalItemsのデリケートを実行します。
プロパティmTotalを返します。


XOOPS Cube Legacy デベロッパーズ・バイブルの説明どおりだとgetTotalItems()の動きが変です。
以下のように修正してみると良くなりました。

/core/XCube_PageNavigator.class.php
_mIsSpecifedTotalItemsを_mIsSpecifiedTotalと入れかえる。

Line 95[-] var $_mIsSpecifedTotalItems = false;
Line 95[+] var $_mIsSpecifiedTotal = false;

Line 296[-] if ($this->_mIsSpecifedTotalItems == false) {
Line 295[+] if ($this->_mIsSpecifiedTotal == false) {

Line 299[-] $this->_mIsSpecifedTotalItems = true;
Line 299[+] $this->_mIsSpecifiedTotal = true;

バグなのか?は、XCL風のコーティングだと問題ないのですが・・・仕様的に挙動は問題ないのか?と思ってココにあげておきます。
beabo
 
Posts: 16
Joined: Sat Dec 06, 2008 8:06 am

Re: ページナビのgetTotalItems()の挙動について

Postby minahito » Thu Aug 27, 2009 8:32 am

すみません完全に記憶から抜けていたので、コードチェックしてみました
http://xoopscube.svn.sourceforge.net/vi ... iew=markup

これを見る限りでは、
Code: Select all
- $this->_mIsSpecifiedTotal = true;
+ $this->_mIsSpecifiedTotalItems = true;

になると思います。

書籍の記述と一致しなくなるのはアレですが、
protected メンバ変数で、提供しなければいけないのは setTotalItems を設定するとそちらが優先されるというところにあるので、修正としては上のようになるかなと思います。
User avatar
minahito
Site Admin
 
Posts: 162
Joined: Sat Sep 20, 2008 6:13 am
Location: Japan

Re: ページナビのgetTotalItems()の挙動について

Postby beabo » Fri Sep 04, 2009 2:31 pm

パソコンが壊れて組みなおしてたので、返事が遅くなりました。
細かい突っ込みみたいなところで、申し訳なかったですが・・仕様で使い方が変わるなと思ったもので質問しました。

minahito wrote:書籍の記述と一致しなくなるのはアレですが、
protected メンバ変数で、提供しなければいけないのは setTotalItems を設定するとそちらが優先されるというところにあるので、修正としては上のようになるかなと思います。


なるほど、挙動が分かりました。修正の方は行っておきましょうか?
beabo
 
Posts: 16
Joined: Sat Dec 06, 2008 8:06 am


Return to Bug Report (バグ報告)

Who is online

Users browsing this forum: No registered users and 1 guest

cron