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/AbstractEditAction.class.php";
14: require_once XOOPS_MODULE_PATH . "/legacy/admin/forms/BlockEditForm.class.php";
15:
16: class Legacy_BlockEditAction extends Legacy_AbstractEditAction
17: {
18: 19: 20:
21: var $_mOptionForm = null;
22:
23: function _getId()
24: {
25: return isset($_REQUEST['bid']) ? xoops_getrequest('bid') : 0;
26: }
27:
28: function prepare(&$controller, &$xoopsUser)
29: {
30: parent::prepare($controller, $xoopsUser);
31: if (is_object($this->mObject)) {
32: $handler =& xoops_gethandler('module');
33: $module =& $handler->get($this->mObject->get('mid'));
34: if (is_object($module)) {
35: $controller->mRoot->mLanguageManager->loadModinfoMessageCatalog($module->get('dirname'));
36: $controller->mRoot->mLanguageManager->loadModuleAdminMessageCatalog($module->get('dirname'));
37: }
38: }
39: }
40:
41: function isEnableCreate()
42: {
43: return false;
44: }
45:
46: function &_getHandler()
47: {
48: $handler =& xoops_getmodulehandler('newblocks');
49: return $handler;
50: }
51:
52: function _setupActionForm()
53: {
54: $this->mActionForm =new Legacy_BlockEditForm();
55: $this->mActionForm->prepare();
56: }
57:
58: 59: 60: 61: 62: 63:
64: function _isEditable()
65: {
66: if (is_object($this->mObject)) {
67: return ($this->mObject->get('visible') == 1);
68: }
69: else {
70: return false;
71: }
72: }
73:
74: function getDefaultView(&$controller, &$xoopsUser)
75: {
76: if (!$this->_isEditable()) {
77: return LEGACY_FRAME_VIEW_ERROR;
78: }
79:
80: $this->mObject->loadGroup();
81: $this->mObject->loadBmodule();
82:
83: return parent::getDefaultView($controller, $xoopsUser);
84: }
85:
86: function execute(&$controller, &$xoopsUser)
87: {
88: if (!$this->_isEditable()) {
89: return LEGACY_FRAME_VIEW_ERROR;
90: }
91:
92: $ret = parent::execute($controller, $xoopsUser);
93:
94: if ($ret == LEGACY_FRAME_VIEW_SUCCESS) {
95:
96:
97:
98: $handler =& xoops_getmodulehandler('block_module_link', 'legacy');
99: $handler->deleteAll(new Criteria('block_id', $this->mObject->get('bid')));
100: foreach ($this->mObject->mBmodule as $bmodule) {
101:
102:
103:
104: $bmodule->set('block_id', $this->mObject->get('bid'));
105: $handler->insert($bmodule);
106: }
107:
108:
109:
110:
111: $currentGroupid = array();
112: foreach ($this->mObject->mGroup as $group) {
113: $currentGroupid[] = $group->get('groupid');
114: }
115:
116: $permHandler =& xoops_gethandler('groupperm');
117: $criteria =new CriteriaCompo();
118: $criteria->add(new Criteria('gperm_modid', 1));
119: $criteria->add(new Criteria('gperm_itemid', $this->mObject->get('bid')));
120: $criteria->add(new Criteria('gperm_name', 'block_read'));
121:
122: $gpermArr =& $permHandler->getObjects($criteria);
123: foreach ($gpermArr as $gperm) {
124: if (!in_array($gperm->get('gperm_groupid'), $currentGroupid)) {
125: $permHandler->delete($gperm);
126: }
127: }
128:
129: foreach ($this->mObject->mGroup as $group) {
130: $insertFlag = true;
131: foreach ($gpermArr as $gperm) {
132: if ($gperm->get('gperm_groupid') == $group->get('groupid')) {
133: $insertFlag = false;
134: }
135: }
136:
137: if ($insertFlag) {
138: $gperm =& $permHandler->create();
139: $gperm->set('gperm_modid', 1);
140: $gperm->set('gperm_groupid', $group->get('groupid'));
141: $gperm->set('gperm_itemid', $this->mObject->get('bid'));
142: $gperm->set('gperm_name', 'block_read');
143:
144: $permHandler->insert($gperm);
145: }
146: }
147: }
148:
149: return $ret;
150: }
151:
152: function executeViewInput(&$controller, &$xoopsUser, &$render)
153: {
154: $render->setTemplateName("block_edit.html");
155: $render->setAttribute('actionForm', $this->mActionForm);
156:
157:
158:
159:
160: $this->mObject->loadModule();
161:
162: $render->setAttribute('object', $this->mObject);
163:
164:
165:
166:
167: $handler =& xoops_gethandler('module');
168: $moduleArr[0] =& $handler->create();
169: $moduleArr[0]->set('mid', -1);
170: $moduleArr[0]->set('name', _AD_LEGACY_LANG_TOPPAGE);
171:
172: $moduleArr[1] =& $handler->create();
173: $moduleArr[1]->set('mid', 0);
174: $moduleArr[1]->set('name', _AD_LEGACY_LANG_ALL_MODULES);
175:
176: $criteria =new CriteriaCompo();
177: $criteria->add(new Criteria('hasmain', 1));
178: $criteria->add(new Criteria('isactive', 1));
179:
180: $t_Arr =& $handler->getObjects($criteria);
181: $moduleArr = array_merge($moduleArr, $t_Arr);
182: $render->setAttribute('moduleArr', $moduleArr);
183:
184: $handler =& xoops_getmodulehandler('columnside');
185: $columnSideArr =& $handler->getObjects();
186: $render->setAttribute('columnSideArr', $columnSideArr);
187:
188: $handler =& xoops_gethandler('group');
189: $groupArr =& $handler->getObjects();
190: $render->setAttribute('groupArr', $groupArr);
191:
192:
193:
194:
195: $handler =& xoops_gethandler('cachetime');
196: $cachetimeArr =& $handler->getObjects();
197: $render->setAttribute('cachetimeArr', $cachetimeArr);
198:
199:
200:
201:
202: $this->_mOptionForm = $this->_getOptionForm();
203: $render->setAttribute('hasVisibleOptionForm', $this->_hasVisibleOptionForm());
204: $render->setAttribute('optionForm', $this->_mOptionForm);
205: }
206:
207: 208: 209: 210: 211: 212:
213: function _hasVisibleOptionForm()
214: {
215: $block =& Legacy_Utils::createBlockProcedure($this->mObject);
216: return $block->_hasVisibleOptionForm();
217: }
218:
219: 220: 221:
222: function _getOptionForm()
223: {
224: $block =& Legacy_Utils::createBlockProcedure($this->mObject);
225: return $block->getOptionForm();
226: }
227:
228: function executeViewSuccess(&$controller, &$xoopsUser, &$render)
229: {
230: $controller->executeForward("./index.php?action=BlockList");
231: }
232:
233: function executeViewError(&$controller, &$xoopsUser, &$render)
234: {
235: $controller->executeRedirect("./index.php?action=BlockList", 1, _MD_LEGACY_ERROR_DBUPDATE_FAILED);
236: }
237:
238: function executeViewCancel(&$controller, &$xoopsUser, &$render)
239: {
240: $controller->executeForward("./index.php?action=BlockList");
241: }
242: }
243:
244: ?>
245: