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('NEWBLOCKS_SORT_KEY_BID', 1);
16: define('NEWBLOCKS_SORT_KEY_MID', 2);
17: define('NEWBLOCKS_SORT_KEY_FUNC_NUM', 3);
18: define('NEWBLOCKS_SORT_KEY_OPTIONS', 4);
19: define('NEWBLOCKS_SORT_KEY_NAME', 5);
20: define('NEWBLOCKS_SORT_KEY_TITLE', 6);
21: define('NEWBLOCKS_SORT_KEY_CONTENT', 7);
22: define('NEWBLOCKS_SORT_KEY_SIDE', 8);
23: define('NEWBLOCKS_SORT_KEY_WEIGHT', 9);
24: define('NEWBLOCKS_SORT_KEY_VISIBLE', 10);
25: define('NEWBLOCKS_SORT_KEY_BLOCK_TYPE', 11);
26: define('NEWBLOCKS_SORT_KEY_C_TYPE', 12);
27: define('NEWBLOCKS_SORT_KEY_ISACTIVE', 13);
28: define('NEWBLOCKS_SORT_KEY_DIRNAME', 14);
29: define('NEWBLOCKS_SORT_KEY_FUNC_FILE', 15);
30: define('NEWBLOCKS_SORT_KEY_SHOW_FUNC', 16);
31: define('NEWBLOCKS_SORT_KEY_EDIT_FUNC', 17);
32: define('NEWBLOCKS_SORT_KEY_TEMPLATE', 18);
33: define('NEWBLOCKS_SORT_KEY_BCACHETIME', 19);
34: define('NEWBLOCKS_SORT_KEY_LAST_MODIFIED', 20);
35:
36: define('NEWBLOCKS_SORT_KEY_DEFAULT', NEWBLOCKS_SORT_KEY_SIDE);
37: define('NEWBLOCKS_SORT_KEY_MAXVALUE', 20);
38:
39: class Legacy_BlockFilterForm extends Legacy_AbstractFilterForm
40: {
41: var $mSortKeys = array(
42: NEWBLOCKS_SORT_KEY_BID => 'bid',
43: NEWBLOCKS_SORT_KEY_MID => 'mid',
44: NEWBLOCKS_SORT_KEY_FUNC_NUM => 'func_num',
45: NEWBLOCKS_SORT_KEY_NAME => 'name',
46: NEWBLOCKS_SORT_KEY_TITLE => 'title',
47: NEWBLOCKS_SORT_KEY_SIDE => 'side',
48: NEWBLOCKS_SORT_KEY_WEIGHT => 'weight',
49: NEWBLOCKS_SORT_KEY_BLOCK_TYPE => 'block_type',
50: NEWBLOCKS_SORT_KEY_C_TYPE => 'c_type',
51: NEWBLOCKS_SORT_KEY_DIRNAME => 'dirname',
52: NEWBLOCKS_SORT_KEY_TEMPLATE => 'template',
53: NEWBLOCKS_SORT_KEY_BCACHETIME => 'bcachetime',
54: NEWBLOCKS_SORT_KEY_LAST_MODIFIED => 'last_modified'
55: );
56:
57: var $mKeyword = "";
58: var $mModule = null;
59: var $mOptionField = "all";
60:
61: function getDefaultSortKey()
62: {
63: return NEWBLOCKS_SORT_KEY_DEFAULT;
64: }
65:
66: function fetch()
67: {
68: parent::fetch();
69:
70: $root =& XCube_Root::getSingleton();
71: $mid = $root->mContext->mRequest->getRequest('mid');
72: $side = $root->mContext->mRequest->getRequest('side');
73: $weight = $root->mContext->mRequest->getRequest('weight');
74: $block_type = $root->mContext->mRequest->getRequest('block_type');
75: $c_type = $root->mContext->mRequest->getRequest('c_type');
76: $dirname = $root->mContext->mRequest->getRequest('dirname');
77: $search = $root->mContext->mRequest->getRequest('search');
78: $option_field = $root->mContext->mRequest->getRequest('option_field');
79:
80: if (isset($_REQUEST['mid'])) {
81: $this->mNavi->addExtra('mid', xoops_getrequest('mid'));
82: $this->_mCriteria->add(new Criteria('mid', xoops_getrequest('mid')));
83: }
84:
85: if (isset($_REQUEST['side'])) {
86: $this->mNavi->addExtra('side', xoops_getrequest('side'));
87: $this->_mCriteria->add(new Criteria('side', xoops_getrequest('side')));
88: }
89:
90: if (isset($_REQUEST['weight'])) {
91: $this->mNavi->addExtra('weight', xoops_getrequest('weight'));
92: $this->_mCriteria->add(new Criteria('weight', xoops_getrequest('weight')));
93: }
94:
95: if (isset($_REQUEST['block_type'])) {
96: $this->mNavi->addExtra('block_type', xoops_getrequest('block_type'));
97: $this->_mCriteria->add(new Criteria('block_type', xoops_getrequest('block_type')));
98: }
99:
100: if (isset($_REQUEST['c_type'])) {
101: $this->mNavi->addExtra('c_type', xoops_getrequest('c_type'));
102: $this->_mCriteria->add(new Criteria('c_type', xoops_getrequest('c_type')));
103: }
104:
105: if (isset($_REQUEST['dirname']) and !$_REQUEST['dirname'] == 0) {
106: if (intval($dirname) == -1){
107: $this->_mCriteria->add(new Criteria('block_type', 'C'));
108: $this->mModule = "cblock";
109: }
110: else {
111: $this->_mCriteria->add(new Criteria('dirname', xoops_getrequest('dirname')));
112:
113: $handler =& xoops_gethandler('module');
114: $this->mModule =& $handler->getByDirname($dirname);
115: }
116: $this->mNavi->addExtra('dirname', xoops_getrequest('dirname'));
117: }
118:
119:
120: if (isset($_REQUEST['search'])) {
121: $this->mKeyword = $search;
122: $this->mNavi->addExtra('search', $this->mKeyword);
123: $this->_mCriteria->add(new Criteria('name', '%' . $this->mKeyword . '%', 'LIKE'));
124: }
125:
126: if (isset($_REQUEST['option_field'])) {
127: $this->mOptionField = $option_field;
128: if ( $this->mOptionField != "all" ) {
129: $this->_mCriteria->add(new Criteria('side', intval($this->mOptionField)));
130: }
131: $this->mNavi->addExtra('option_field', $this->mOptionField);
132: }
133:
134:
135:
136: $this->_mCriteria->add(new Criteria('visible', $this->_getVisible()));
137: $this->_mCriteria->add(new Criteria('isactive', 1));
138:
139:
140:
141:
142: $this->_mCriteria->addSort($this->getSort(), $this->getOrder());
143:
144:
145:
146:
147: if (abs($this->mSort) == NEWBLOCKS_SORT_KEY_MID) {
148: $this->_mCriteria->addSort('c_type', $this->getOrder());
149: }
150:
151: if (abs($this->mSort) != NEWBLOCKS_SORT_KEY_SIDE) {
152: $this->_mCriteria->addSort('side', $this->getOrder());
153: }
154:
155: if (abs($this->mSort) != NEWBLOCKS_SORT_KEY_WEIGHT) {
156: $this->_mCriteria->addSort('weight', $this->getOrder());
157: }
158: }
159:
160: function _getVisible()
161: {
162: return 1;
163: }
164: }
165:
166: ?>
167: