kazpgmの日記

『プログラム自動作成@自動生成』作成の日記

TOOL更新_Ver0.1Zd(次期バージョン)ページ制御のNG発見。の続き

TOOL更新_Ver0.1Zd(次期バージョン)ページ制御のNG発見。の続き
★以下のように対応することにした。
1.Pagerが$_REQUESTを使わなくするため'currentPage' に直接値を入れることにする。

■LogininfoaUtil.php 各MODELクラスのリスト
    public function editList($db, &$o, $conditions, &$result) {
・・・
__SQL__;
        $count = $db->getOne( $sql, $valary);
        $pageNavi =& new PageNavi(array(
            'totalItems' => $count,
            'perPage'    => $limit,
<<追加>>
            'currentPage'    => $o['pageID'],

2.$_GET、$_POSTを使わなくする。

■PageNavi.php
<<修正前>>
  function getLinkURL($formdata)
  {
    if(!is_array($formdata))
    {
      $formdata = (array)$formdata;
    }
//   $formdata[$this->_urlVar] = $pageID;
    if($_SERVER['REQUEST_METHOD'] == 'GET')
    {
      $formdata += $_GET; // keyが被ってる場合は $formdata が優先される
    }
    elseif($_SERVER['REQUEST_METHOD'] == 'POST')
    {
      $formdata += $_POST; // keyが被ってる場合は $formdata が優先される
    }

    if(is_array($this->_extraVars) && count($this->_extraVars) > 0)
    { // extraVars が設定されているなら加える
        $formdata = array_merge($formdata, $this->_extraVars); // keyが被ってる場合は $this->_extraVars が優先される
//      $formdata += $this->_extraVars;
    }

    return $this->_fileName2 . '?' . http_build_query($formdata);
  }
<<修正後>>
  function getLinkURL($formdata)
  {
    if(!is_array($formdata))
    {
      $formdata = (array)$formdata;
    }
//   $formdata[$this->_urlVar] = $pageID;
//    if($_SERVER['REQUEST_METHOD'] == 'GET')
//    {
//      $formdata += $_GET; // keyが被ってる場合は $formdata が優先される
//    }
//    elseif($_SERVER['REQUEST_METHOD'] == 'POST')
//    {
//      $formdata += $_POST; // keyが被ってる場合は $formdata が優先される
//    }

    if(is_array($this->_extraVars) && count($this->_extraVars) > 0)
    { // extraVars が設定されているなら加える
        $formdata = array_merge($formdata, $this->_extraVars); // keyが被ってる場合は $this->_extraVars が優先される
//      $formdata += $this->_extraVars;
    }

    return $this->_fileName2 . '?' . http_build_query($formdata);
  }

修正後の画面:バグが取れた。


3.デバックしやすくするためにZend_Registryにロガーオブジェクトを入れることにする。

■ControllerBase.php 修正
    protected function _preDo() 
    {
        // ログ
        $this->_logger = new AppLogr($this->_getDebugDir(), $this->_getDebugFlg());
<<追加>>
Zend_Registry::set('logger',$this->_logger);

■xxxxx.php ダンプを出したいところに以下のように書けばLOGが出る。
<<デバックで追加する>>
require_once 'Zend/Log.php';
require_once 'Zend/Log/Writer/Stream.php';
$logger  = Zend_Registry::get('logger');
$logger->outDbgLog('$debugdata=', $debugdata);   

2011/03/01 21:30-01:00 http://kazpgm.ddo.jp/samples/kazBase/kaz/upload/doc/samples.zipも更新した。