コード例 #1
0
ファイル: Pager.php プロジェクト: uwitec/01technology
 /**
  * 构造函数
  *
  * 如果 $source 参数是一个 TableDataGateway 对象,则 FLEA_Helper_Pager 会调用
  * 该 TDG 对象的 findCount() 和 findAll() 来确定记录总数并返回记录集。
  *
  * 如果 $source 参数是一个字符串,则假定为 SQL 语句。这时,FLEA_Helper_Pager
  * 不会自动调用计算各项分页参数。必须通过 setCount() 方法来设置作为分页计算
  * 基础的记录总数。
  *
  * 同时,如果 $source 参数为一个字符串,则不需要 $conditions 和 $sortby 参数。
  * 而且可以通过 setDBO() 方法设置要使用的数据库访问对象。否则 FLEA_Helper_Pager
  * 将尝试获取一个默认的数据库访问对象。
  *
  * @param TableDataGateway|string $source
  * @param int $currentPage
  * @param int $pageSize
  * @param mixed $conditions
  * @param string $sortby
  * @param int $basePageIndex
  *
  * @return FLEA_Helper_Pager
  */
 function FLEA_Helper_Pager(&$source, $currentPage, $pageSize = 20, $conditions = null, $sortby = null, $basePageIndex = 0)
 {
     $this->_basePageIndex = $basePageIndex;
     $this->_currentPage = $this->currentPage = $currentPage;
     $this->pageSize = $pageSize;
     if (is_object($source)) {
         $this->source =& $source;
         $this->_conditions = $conditions;
         $this->_sortby = $sortby;
         $this->totalCount = $this->count = (int) $this->source->findCount($conditions);
         $this->computingPage();
     } elseif (!empty($source)) {
         $this->source = $source;
         $sql = "SELECT COUNT(*) FROM ( {$source} ) as _count_table";
         $this->dbo =& FLEA::getDBO();
         $this->totalCount = $this->count = (int) $this->dbo->getOne($sql);
         $this->computingPage();
     }
 }