1: <?php
2: 3: 4: 5: 6: 7: 8: 9:
10:
11: if (!defined('XOOPS_ROOT_PATH')) exit();
12:
13: class Legacy_AbstractFilterForm
14: {
15: var $mSort = 0;
16: var $mSortKeys = array();
17: var $_mCriteria = null;
18: var $mNavi = null;
19:
20: var $_mHandler = null;
21:
22: function Legacy_AbstractFilterForm(&$navi, &$handler)
23: {
24: $this->mNavi =& $navi;
25: $this->_mHandler =& $handler;
26:
27: $this->_mCriteria =new CriteriaCompo();
28:
29: $this->mNavi->mGetTotalItems->add(array(&$this, 'getTotalItems'));
30: }
31:
32: function getDefaultSortKey()
33: {
34: }
35:
36: function getTotalItems(&$total)
37: {
38: $total = $this->_mHandler->getCount($this->getCriteria());
39: }
40:
41: function fetchSort()
42: {
43: $root =& XCube_Root::getSingleton();
44: $this->mSort = intval($root->mContext->mRequest->getRequest('sort'));
45:
46: if (!isset($this->mSortKeys[abs($this->mSort)])) {
47: $this->mSort = $this->getDefaultSortKey();
48: }
49:
50: $this->mNavi->mSort['sort'] = $this->mSort;
51: }
52:
53: function fetch()
54: {
55: $this->mNavi->fetch();
56: $this->fetchSort();
57: }
58:
59: function getSort()
60: {
61: $sortkey = abs($this->mNavi->mSort['sort']);
62: return isset($this->mSortKeys[$sortkey]) ? $this->mSortKeys[$sortkey] : null;
63: }
64:
65: function getOrder()
66: {
67: return ($this->mSort < 0) ? "DESC" : "ASC";
68: }
69:
70: function getCriteria($start = null, $limit = null)
71: {
72: $t_start = 0;
73: $t_limit = 0;
74: if ($start === null) {
75: $t_start = $this->mNavi->getStart();
76: } else {
77: $t_start = intval($start);
78: $this->mNavi->setStart($t_start);
79: }
80: if ($limit === null) {
81: $t_limit = $this->mNavi->getPerpage();
82: } else {
83: $t_limit = intval($limit);
84: $this->mNavi->setPerpage($t_limit);
85: }
86:
87: $criteria = $this->_mCriteria;
88:
89: $criteria->setStart($t_start);
90: $criteria->setLimit($t_limit);
91:
92: return $criteria;
93: }
94: }
95:
96: ?>
97: