XCL Web Application Platform 2.5.0
The XoopsCube Legacy Project
Loading...
Searching...
No Matches
MyPageNavi.class.php
1<?php
12
13if (!defined('XOOPS_ROOT_PATH')) {
14 exit();
15}
16
17require_once XOOPS_ROOT_PATH.'/core/XCube_PageNavigator.class.php';
18
20{
21 public $_mCriteria = null;
22 public $_mHandler = null;
23
24 public $mNavi = null;
25 public $_mPagenum = 10;
26 public $_mUrl = 'index.php';
27 public $_Total = 0;
28
29 public function __construct($handler, $criteria = null)
30 {
31 $this->_mUrl = XOOPS_URL.'/modules/message/index.php';
32 $this->_mHandler = $handler;
33 if (is_object($criteria)) {
34 $this->_mCriteria = $criteria;
35 } else {
36 $this->_mCriteria = new CriteriaCompo();
37 }
38 }
39
40 public function setPagenum($num)
41 {
42 $this->_mPagenum = $num;
43 }
44
45 public function setUrl($url)
46 {
47 $this->_mUrl = $url;
48 }
49
50 public function addSort($sort, $order = 'ASC')
51 {
52 $this->_mCriteria->setSort($sort, $order);
53 }
54
55 public function addCriteria($criteria)
56 {
57 $this->_mCriteria->add($criteria);
58 }
59
60 public function getTotalItems(&$total)
61 {
62 $total = $this->_Total;
63 }
64
65 public function fetch()
66 {
67 $this->_Total = $this->_mHandler->getCount($this->_mCriteria);
68 $this->mNavi = new XCube_PageNavigator($this->_mUrl);
69 $this->mNavi->mGetTotalItems->add([$this, 'getTotalItems']);
70 $this->mNavi->setPerpage($this->_mPagenum);
71 $this->mNavi->fetch();
72 }
73
74 public function getCriteria()
75 {
76 $this->_mCriteria->setStart($this->mNavi->getStart());
77 $this->_mCriteria->setLimit($this->mNavi->getPerpage());
78 return $this->_mCriteria;
79 }
80}