fleaphp常用方法分页之Pager使用方法

  Pager 分页函数

  

复制代码 代码如下:

  /**

  * 构造函数

  *

  * 如果 $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();

  }

  }

  Pager 参数说明

  $source 数据库操作类

  $currentPage 当前页

  $pageSize 每页显示记录数量

  $conditions 查询条件

  $sortby 排序方式

  $basePageIndex 页码基数

  Pager 使用示例(实例)

  

复制代码 代码如下:

  $dirname = dirname(__FILE__);

  define('APP_DIR', $dirname . '/APP');

  define('NO_LEGACY_FLEAPHP', true);

  require($dirname.'/FleaPHP/FLEA/FLEA.php');

  //设置缓存目录

  FLEA::setAppInf('internalCacheDir',$dirname.'/_Cache');

  //链接数据库

  $dsn = array(

  'driver' => 'mysql',

  'host' => 'localhost',

  'login' => 'root',

  'password' => '',

  'database' => 'wordpress'

  );

  FLEA::setAppInf('dbDSN',$dsn);

  //读取wp_posts的内容

  FLEA::loadClass('FLEA_Db_TableDataGateway');

  FLEA::loadClass('FLEA_Helper_Pager');

  //FLEA::loadHelper('pager');

  class Teble_Class extends FLEA_Db_TableDataGateway {

  var $tableName = 'wp_posts';

  var $primaryKey = 'ID';

  }

  $tableposts =& new Teble_Class();

  $pager =& new FLEA_Helper_Pager($tableposts,2,5);

  $page = $pager->getPagerData();

  print_r($page);

  getPagerData 返回一些数据供调用

  

复制代码 代码如下:

  $data = array(

  'pageSize' => $this->pageSize,

  'totalCount' => $this->totalCount,

  'count' => $this->count,

  'pageCount' => $this->pageCount,

  'firstPage' => $this->firstPage,

  'firstPageNumber' => $this->firstPageNumber,

  'lastPage' => $this->lastPage,

  'lastPageNumber' => $this->lastPageNumber,

  'prevPage' => $this->prevPage,

  'prevPageNumber' => $this->prevPageNumber,

  'nextPage' => $this->nextPage,

  'nextPageNumber' => $this->nextPageNumber,

  'currentPage' => $this->currentPage,

  'currentPageNumber' => $this->currentPageNumber,

  );