1: <?php
2: if (!defined('XOOPS_ROOT_PATH')) exit();
3: require_once XOOPS_ROOT_PATH.'/core/XCube_PageNavigator.class.php';
4:
5: class MyPageNavi
6: {
7: var $_mCriteria = null;
8: var $_mHandler = null;
9:
10: var $mNavi = null;
11: var $_mPagenum = 10;
12: var $_mUrl = 'index.php';
13: var $_Total = 0;
14:
15: public function __construct($handler, $criteria = null)
16: {
17: $this->_mUrl = XOOPS_URL.'/modules/message/index.php';
18: $this->_mHandler = $handler;
19: if ( is_object($criteria) ) {
20: $this->_mCriteria = $criteria;
21: } else {
22: $this->_mCriteria = new CriteriaCompo();
23: }
24: }
25:
26: public function setPagenum($num)
27: {
28: $this->_mPagenum = $num;
29: }
30:
31: public function setUrl($url)
32: {
33: $this->_mUrl = $url;
34: }
35:
36: public function addSort($sort, $order = 'ASC')
37: {
38: $this->_mCriteria->setSort($sort, $order);
39: }
40:
41: public function addCriteria($criteria)
42: {
43: $this->_mCriteria->add($criteria);
44: }
45:
46: public function getTotalItems(&$total)
47: {
48: $total = $this->_Total;
49: }
50:
51: public function fetch()
52: {
53: $this->_Total = $this->_mHandler->getCount($this->_mCriteria);
54: $this->mNavi = new XCube_PageNavigator($this->_mUrl);
55: $this->mNavi->mGetTotalItems->add(array($this, 'getTotalItems'));
56: $this->mNavi->setPerpage($this->_mPagenum);
57: $this->mNavi->fetch();
58: }
59:
60: public function getCriteria()
61: {
62: $this->_mCriteria->setStart($this->mNavi->getStart());
63: $this->_mCriteria->setLimit($this->mNavi->getPerpage());
64: return $this->_mCriteria;
65: }
66: }
67: ?>
68: