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