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