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