1: <?php
2: 3: 4: 5: 6:
7:
8: if (!defined('XOOPS_ROOT_PATH')) exit();
9:
10: require_once XOOPS_MODULE_PATH . "/profile/class/AbstractFilterForm.class.php";
11:
12: define('PROFILE_DATA_SORT_KEY_UID', 1);
13: define('PROFILE_DATA_SORT_KEY_DEFAULT', PROFILE_DATA_SORT_KEY_UID);
14:
15: class Profile_DataFilterForm extends Profile_AbstractFilterForm
16: {
17: public $mSortKeys = array(
18: PROFILE_DATA_SORT_KEY_UID => 'uid'
19: );
20:
21: public $mFields = array();
22:
23: 24: 25:
26: function getDefaultSortKey()
27: {
28: return PROFILE_DATA_SORT_KEY_DEFAULT;
29: }
30:
31: 32: 33: 34: 35: 36: 37:
38: protected function _addSortKeys()
39: {
40: foreach($this->mFields as $field){
41: $this->mSortKeys[$field->getShow('field_id')] = $field->get('field_name');
42: }
43: }
44:
45: 46: 47: 48: 49: 50: 51: 52:
53: public function prepare( &$navi, &$handler)
54: {
55: $this->mFields = xoops_getmodulehandler('definitions', 'profile')->getFields4DataShow(Legacy_Utils::getUid());
56:
57: $this->_addSortKeys();
58: parent::prepare($navi,$handler);
59: }
60:
61: 62: 63:
64: function fetch()
65: {
66: parent::fetch();
67:
68: $root =& XCube_Root::getSingleton();
69:
70: if (($value = $root->mContext->mRequest->getRequest('uid')) !== null) {
71: $this->mNavi->addExtra('uid', $value);
72: $this->_mCriteria->add(new Criteria('uid', $value));
73: }
74:
75: foreach($this->mFields as $field){
76: $value = $root->mContext->mRequest->getRequest($field->get('field_name'));
77: if (isset($value) && $value!=="") {
78: $this->mNavi->addExtra($field->get('field_name'), $value);
79: if($field->get('type')==Profile_FormType::STRING || $field->get('type')==Profile_FormType::TEXT){
80: $value = '%'.$value.'%';
81: }
82: $this->_mCriteria->add(new Criteria($field->get('field_name'), $value, 'LIKE'));
83: }
84: }
85:
86: $this->_mCriteria->addSort($this->getSort(), $this->getOrder());
87: }
88: }
89:
90: ?>
91: