1: <?php
2: 3: 4: 5: 6: 7: 8: 9:
10:
11: if (!defined('XOOPS_ROOT_PATH')) exit();
12:
13: require_once XOOPS_MODULE_PATH . "/legacy/class/AbstractFilterForm.class.php";
14:
15: define('COMMENT_SORT_KEY_COM_ID', 1);
16: define('COMMENT_SORT_KEY_COM_PID', 2);
17: define('COMMENT_SORT_KEY_COM_ROOTID', 3);
18: define('COMMENT_SORT_KEY_COM_MODID', 4);
19: define('COMMENT_SORT_KEY_COM_ITEMID', 5);
20: define('COMMENT_SORT_KEY_COM_ICON', 6);
21: define('COMMENT_SORT_KEY_COM_CREATED', 7);
22: define('COMMENT_SORT_KEY_COM_MODIFIED', 8);
23: define('COMMENT_SORT_KEY_COM_UID', 9);
24: define('COMMENT_SORT_KEY_COM_IP', 10);
25: define('COMMENT_SORT_KEY_COM_TITLE', 11);
26: define('COMMENT_SORT_KEY_COM_TEXT', 12);
27: define('COMMENT_SORT_KEY_COM_SIG', 13);
28: define('COMMENT_SORT_KEY_COM_STATUS', 14);
29: define('COMMENT_SORT_KEY_COM_EXPARAMS', 15);
30: define('COMMENT_SORT_KEY_DOHTML', 16);
31: define('COMMENT_SORT_KEY_DOSMILEY', 17);
32: define('COMMENT_SORT_KEY_DOXCODE', 18);
33: define('COMMENT_SORT_KEY_DOIMAGE', 19);
34: define('COMMENT_SORT_KEY_DOBR', 20);
35:
36: define('COMMENT_SORT_KEY_DEFAULT', COMMENT_SORT_KEY_COM_ID);
37: define('COMMENT_SORT_KEY_MAXVALUE', 20);
38:
39: class Legacy_CommentFilterForm extends Legacy_AbstractFilterForm
40: {
41: var $mSortKeys = array(
42: COMMENT_SORT_KEY_COM_ID => 'com_id',
43: COMMENT_SORT_KEY_COM_PID => 'com_pid',
44: COMMENT_SORT_KEY_COM_ROOTID => 'com_rootid',
45: COMMENT_SORT_KEY_COM_MODID => 'com_modid',
46: COMMENT_SORT_KEY_COM_ITEMID => 'com_itemid',
47: COMMENT_SORT_KEY_COM_ICON => 'com_icon',
48: COMMENT_SORT_KEY_COM_CREATED => 'com_created',
49: COMMENT_SORT_KEY_COM_MODIFIED => 'com_modified',
50: COMMENT_SORT_KEY_COM_UID => 'com_uid',
51: COMMENT_SORT_KEY_COM_IP => 'com_ip',
52: COMMENT_SORT_KEY_COM_TITLE => 'com_title',
53: COMMENT_SORT_KEY_COM_TEXT => 'com_text',
54: COMMENT_SORT_KEY_COM_SIG => 'com_sig',
55: COMMENT_SORT_KEY_COM_STATUS => 'com_status',
56: COMMENT_SORT_KEY_COM_EXPARAMS => 'com_exparams',
57: COMMENT_SORT_KEY_DOHTML => 'dohtml',
58: COMMENT_SORT_KEY_DOSMILEY => 'dosmiley',
59: COMMENT_SORT_KEY_DOXCODE => 'doxcode',
60: COMMENT_SORT_KEY_DOIMAGE => 'doimage',
61: COMMENT_SORT_KEY_DOBR => 'dobr'
62: );
63:
64: var $mKeyword = "";
65: var $mSearchField = "";
66:
67: function getDefaultSortKey()
68: {
69: return COMMENT_SORT_KEY_DEFAULT;
70: }
71:
72: function fetch()
73: {
74: parent::fetch();
75:
76: $root =& XCube_Root::getSingleton();
77: $com_modid = $root->mContext->mRequest->getRequest('com_modid');
78: $dirname = $root->mContext->mRequest->getRequest('dirname');
79: $com_icon = $root->mContext->mRequest->getRequest('com_icon');
80: $com_uid = $root->mContext->mRequest->getRequest('com_uid');
81: $com_ip = $root->mContext->mRequest->getRequest('com_ip');
82: $com_status = $root->mContext->mRequest->getRequest('com_status');
83: $keyword = $root->mContext->mRequest->getRequest('keyword');
84: $search_field = $root->mContext->mRequest->getRequest('search_field');
85:
86: if (isset($_REQUEST['com_modid']) && intval(xoops_getrequest('com_modid')) > 0) {
87: $this->mNavi->addExtra('com_modid', xoops_getrequest('com_modid'));
88: $this->_mCriteria->add(new Criteria('com_modid', xoops_getrequest('com_modid')));
89: }
90: elseif (isset($_REQUEST['dirname'])) {
91: $this->mNavi->addExtra('dirname', xoops_getrequest('dirname'));
92:
93: $handler =& xoops_gethandler('module');
94: $module =& $handler->getByDirname(xoops_getrequest('dirname'));
95: if (is_object($module)) {
96: $this->_mCriteria->add(new Criteria('com_modid', $module->get('mid')));
97: }
98: }
99:
100: if (isset($_REQUEST['com_icon'])) {
101: $this->mNavi->addExtra('com_icon', xoops_getrequest('com_icon'));
102: $this->_mCriteria->add(new Criteria('com_icon', xoops_getrequest('com_icon')));
103: }
104:
105: if (isset($_REQUEST['com_uid'])) {
106: $this->mNavi->addExtra('com_uid', xoops_getrequest('com_uid'));
107: $this->_mCriteria->add(new Criteria('com_uid', xoops_getrequest('com_uid')));
108: }
109:
110: if (isset($_REQUEST['com_ip'])) {
111: $this->mNavi->addExtra('com_ip', xoops_getrequest('com_ip'));
112: $this->_mCriteria->add(new Criteria('com_ip', xoops_getrequest('com_ip')));
113: }
114:
115: if (xoops_getrequest('com_status') > 0) {
116: $this->mNavi->addExtra('com_status', xoops_getrequest('com_status'));
117: $this->_mCriteria->add(new Criteria('com_status', xoops_getrequest('com_status')));
118: }
119:
120:
121: if (!empty($keyword)&&isset($search_field)) {
122: $this->mKeyword = $keyword;
123: $this->mSearchField = $search_field;
124: $this->mNavi->addExtra('keyword', $this->mKeyword);
125: $this->mNavi->addExtra('search_field', $this->mSearchField);
126:
127: if ( $this->mSearchField == "com_both" ) {
128:
129: $search_criteria = new CriteriaCompo(new Criteria('com_title', '%' . $this->mKeyword . '%', 'LIKE'));
130: $search_criteria->add(new Criteria('com_text', '%' . $this->mKeyword . '%', 'LIKE'), $condition='OR');
131: $this->_mCriteria->add($search_criteria);
132: }
133: elseif ( $this->mSearchField == "com_title" ) {
134:
135: $this->_mCriteria->add(new Criteria('com_title', '%' . $this->mKeyword . '%', 'LIKE'));
136: }
137: elseif ( $this->mSearchField == "com_text" ) {
138:
139: $this->_mCriteria->add(new Criteria('com_text', '%' . $this->mKeyword . '%', 'LIKE'));
140: }
141: elseif ( $this->mSearchField == "com_uid" ) {
142:
143: if ( $this->mKeyword != "guest") {
144:
145: $cm_handler =& xoops_gethandler('member');
146: $cm_user =& $cm_handler->getUsers(new Criteria('uname', $this->mKeyword));
147: if(count($cm_user) == 1 && is_object($cm_user[0])) {
148: $cm_user_uid = $cm_user[0]->getVar('uid');
149: $this->_mCriteria->add(new Criteria('com_uid', $cm_user_uid));
150: }
151: else {
152:
153: $this->_mCriteria->add(new Criteria('com_uid', -1));
154: }
155: }
156: else {
157:
158: $this->_mCriteria->add(new Criteria('com_uid', 0));
159: }
160:
161: }
162: else{
163:
164: $this->_mCriteria->add(new Criteria('com_title', '%' . $this->mKeyword . '%', 'LIKE'));
165: }
166:
167: }
168:
169: $this->_mCriteria->addSort($this->getSort(), $this->getOrder());
170: }
171: }
172:
173: ?>
174: