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風のコーティングだと問題ないのですが・・・仕様的に挙動は問題ないのか?と思ってココにあげておきます。
