|
22 | 22 | * |
23 | 23 | */ |
24 | 24 |
|
| 25 | +use Xmf\Request; |
| 26 | + |
25 | 27 | // Define main template |
26 | 28 | $templateMain = 'modulebuilder_modules.tpl'; |
27 | 29 |
|
28 | 30 | require __DIR__ . '/header.php'; |
29 | 31 | // Recovered value of argument op in the URL $ |
30 | | -$op = \Xmf\Request::getString('op', 'list'); |
31 | | -$modId = \Xmf\Request::getInt('mod_id'); |
| 32 | +$op = Request::getString('op', 'list'); |
| 33 | +$modId = Request::getInt('mod_id'); |
32 | 34 |
|
33 | 35 | switch ($op) { |
34 | 36 | case 'list': |
35 | 37 | default: |
36 | | - $start = \Xmf\Request::getInt('start', 0); |
37 | | - $limit = \Xmf\Request::getInt('limit', $helper->getConfig('modules_adminpager')); |
| 38 | + $start = Request::getInt('start', 0); |
| 39 | + $limit = Request::getInt('limit', $helper->getConfig('modules_adminpager')); |
38 | 40 | $GLOBALS['xoTheme']->addScript('modules/modulebuilder/assets/js/functions.js'); |
39 | 41 | $GLOBALS['xoTheme']->addStylesheet('modules/modulebuilder/assets/css/admin/style.css'); |
40 | 42 | $GLOBALS['xoopsTpl']->assign('navigation', $adminObject->displayNavigation('modules.php')); |
|
89 | 91 | } else { |
90 | 92 | $modulesObj = $helper->getHandler('Modules')->create(); |
91 | 93 | } |
92 | | - $moduleDirname = \preg_replace('/[^a-zA-Z0-9]\s+/', '', \mb_strtolower(\Xmf\Request::getString('mod_dirname', '', 'POST'))); |
| 94 | + $moduleDirname = \preg_replace('/[^a-zA-Z0-9]\s+/', '', \mb_strtolower(Request::getString('mod_dirname', '', 'POST'))); |
93 | 95 | //Form module save |
94 | 96 | $modulesObj->setVars( |
95 | 97 | [ |
96 | | - 'mod_name' => \Xmf\Request::getString('mod_name', '', 'POST'), |
| 98 | + 'mod_name' => Request::getString('mod_name', '', 'POST'), |
97 | 99 | 'mod_dirname' => $moduleDirname, |
98 | | - 'mod_version' => \Xmf\Request::getString('mod_version', '', 'POST'), |
99 | | - 'mod_since' => \Xmf\Request::getString('mod_since', '', 'POST'), |
100 | | - 'mod_min_php' => \Xmf\Request::getString('mod_min_php', '', 'POST'), |
101 | | - 'mod_min_xoops' => \Xmf\Request::getString('mod_min_xoops', '', 'POST'), |
102 | | - 'mod_min_admin' => \Xmf\Request::getString('mod_min_admin', '', 'POST'), |
103 | | - 'mod_min_mysql' => \Xmf\Request::getString('mod_min_mysql', '', 'POST'), |
104 | | - 'mod_description' => \Xmf\Request::getString('mod_description', '', 'POST'), |
105 | | - 'mod_author' => \Xmf\Request::getString('mod_author', '', 'POST'), |
106 | | - 'mod_author_mail' => \Xmf\Request::getString('mod_author_mail', '', 'POST'), |
107 | | - 'mod_author_website_url' => \Xmf\Request::getString('mod_author_website_url', '', 'POST'), |
108 | | - 'mod_author_website_name' => \Xmf\Request::getString('mod_author_website_name', '', 'POST'), |
109 | | - 'mod_credits' => \Xmf\Request::getString('mod_credits', '', 'POST'), |
110 | | - 'mod_license' => \Xmf\Request::getString('mod_license', '', 'POST'), |
111 | | - 'mod_release_info' => \Xmf\Request::getString('mod_release_info', '', 'POST'), |
112 | | - 'mod_release_file' => \Xmf\Request::getString('mod_release_file', '', 'POST'), |
113 | | - 'mod_manual' => \Xmf\Request::getString('mod_manual', '', 'POST'), |
114 | | - 'mod_manual_file' => \Xmf\Request::getString('mod_manual_file', '', 'POST'), |
| 100 | + 'mod_version' => Request::getString('mod_version', '', 'POST'), |
| 101 | + 'mod_since' => Request::getString('mod_since', '', 'POST'), |
| 102 | + 'mod_min_php' => Request::getString('mod_min_php', '', 'POST'), |
| 103 | + 'mod_min_xoops' => Request::getString('mod_min_xoops', '', 'POST'), |
| 104 | + 'mod_min_admin' => Request::getString('mod_min_admin', '', 'POST'), |
| 105 | + 'mod_min_mysql' => Request::getString('mod_min_mysql', '', 'POST'), |
| 106 | + 'mod_description' => Request::getString('mod_description', '', 'POST'), |
| 107 | + 'mod_author' => Request::getString('mod_author', '', 'POST'), |
| 108 | + 'mod_author_mail' => Request::getString('mod_author_mail', '', 'POST'), |
| 109 | + 'mod_author_website_url' => Request::getString('mod_author_website_url', '', 'POST'), |
| 110 | + 'mod_author_website_name' => Request::getString('mod_author_website_name', '', 'POST'), |
| 111 | + 'mod_credits' => Request::getString('mod_credits', '', 'POST'), |
| 112 | + 'mod_license' => Request::getString('mod_license', '', 'POST'), |
| 113 | + 'mod_release_info' => Request::getString('mod_release_info', '', 'POST'), |
| 114 | + 'mod_release_file' => Request::getString('mod_release_file', '', 'POST'), |
| 115 | + 'mod_manual' => Request::getString('mod_manual', '', 'POST'), |
| 116 | + 'mod_manual_file' => Request::getString('mod_manual_file', '', 'POST'), |
115 | 117 | ] |
116 | 118 | ); |
117 | 119 | //Form mod_image |
|
128 | 130 | $modulesObj->setVar('mod_image', $uploader->getSavedFileName()); |
129 | 131 | } |
130 | 132 | } else { |
131 | | - $modulesObj->setVar('mod_image', \Xmf\Request::getString('mod_image', '', 'POST')); |
| 133 | + $modulesObj->setVar('mod_image', Request::getString('mod_image', '', 'POST')); |
132 | 134 | } |
133 | 135 | //Form module save |
134 | 136 | $modulesObj->setVars( |
135 | 137 | [ |
136 | | - 'mod_demo_site_url' => \Xmf\Request::getString('mod_demo_site_url', '', 'POST'), |
137 | | - 'mod_demo_site_name' => \Xmf\Request::getString('mod_demo_site_name', '', 'POST'), |
138 | | - 'mod_support_url' => \Xmf\Request::getString('mod_support_url', '', 'POST'), |
139 | | - 'mod_support_name' => \Xmf\Request::getString('mod_support_name', '', 'POST'), |
140 | | - 'mod_website_url' => \Xmf\Request::getString('mod_website_url', '', 'POST'), |
141 | | - 'mod_website_name' => \Xmf\Request::getString('mod_website_name', '', 'POST'), |
142 | | - 'mod_release' => \Xmf\Request::getString('mod_release', '', 'POST'), |
143 | | - 'mod_status' => \Xmf\Request::getString('mod_status', '', 'POST'), |
144 | | - 'mod_donations' => \Xmf\Request::getString('mod_donations', '', 'POST'), |
145 | | - 'mod_subversion' => \Xmf\Request::getString('mod_subversion', '', 'POST'), |
| 138 | + 'mod_demo_site_url' => Request::getString('mod_demo_site_url', '', 'POST'), |
| 139 | + 'mod_demo_site_name' => Request::getString('mod_demo_site_name', '', 'POST'), |
| 140 | + 'mod_support_url' => Request::getString('mod_support_url', '', 'POST'), |
| 141 | + 'mod_support_name' => Request::getString('mod_support_name', '', 'POST'), |
| 142 | + 'mod_website_url' => Request::getString('mod_website_url', '', 'POST'), |
| 143 | + 'mod_website_name' => Request::getString('mod_website_name', '', 'POST'), |
| 144 | + 'mod_release' => Request::getString('mod_release', '', 'POST'), |
| 145 | + 'mod_status' => Request::getString('mod_status', '', 'POST'), |
| 146 | + 'mod_donations' => Request::getString('mod_donations', '', 'POST'), |
| 147 | + 'mod_subversion' => Request::getString('mod_subversion', '', 'POST'), |
146 | 148 | ] |
147 | 149 | ); |
148 | | - $moduleOption = \Xmf\Request::getArray('module_option', []); |
| 150 | + $moduleOption = Request::getArray('module_option', []); |
149 | 151 | $modulesObj->setVar('mod_admin', \in_array('admin', $moduleOption)); |
150 | 152 | $modulesObj->setVar('mod_user', \in_array('user', $moduleOption)); |
151 | 153 | $modulesObj->setVar('mod_blocks', \in_array('blocks', $moduleOption)); |
|
157 | 159 |
|
158 | 160 | if ($helper->getHandler('Modules')->insert($modulesObj)) { |
159 | 161 | if ($modulesObj->isNew()) { |
160 | | - \redirect_header('tables.php', 5, \sprintf(\_AM_MODULEBUILDER_MODULE_FORM_CREATED_OK, \Xmf\Request::getString('mod_name', '', 'POST'))); |
| 162 | + \redirect_header('tables.php', 5, \sprintf(\_AM_MODULEBUILDER_MODULE_FORM_CREATED_OK, Request::getString('mod_name', '', 'POST'))); |
161 | 163 | } else { |
162 | | - \redirect_header('modules.php', 5, \sprintf(\_AM_MODULEBUILDER_MODULE_FORM_UPDATED_OK, \Xmf\Request::getString('mod_name', '', 'POST'))); |
| 164 | + \redirect_header('modules.php', 5, \sprintf(\_AM_MODULEBUILDER_MODULE_FORM_UPDATED_OK, Request::getString('mod_name', '', 'POST'))); |
163 | 165 | } |
164 | 166 | } |
165 | 167 |
|
|
208 | 210 | } else { |
209 | 211 | $xoopsconfirm = new \XoopsModules\Modulebuilder\Common\XoopsConfirm( |
210 | 212 | ['ok' => 1, 'mod_id' => $modId, 'op' => 'delete'], |
211 | | - \Xmf\Request::getString('REQUEST_URI', '', 'SERVER'), |
| 213 | + Request::getString('REQUEST_URI', '', 'SERVER'), |
212 | 214 | $modulesObj->getVar('mod_name') |
213 | 215 | ); |
214 | 216 | $form = $xoopsconfirm->getFormXoopsConfirm(); |
|
217 | 219 | break; |
218 | 220 | case 'display': |
219 | 221 | $modFieldArray = ['admin', 'user', 'blocks', 'search', 'comments', 'notifications', 'permissions']; |
220 | | - $id = \Xmf\Request::getInt('mod_id', 0, 'POST'); |
| 222 | + $id = Request::getInt('mod_id', 0, 'POST'); |
221 | 223 | if ($id > 0) { |
222 | 224 | $modulesObj = $helper->getHandler('Modules')->get($id); |
223 | 225 | foreach ($modFieldArray as $moduleField) { |
|
231 | 233 | } |
232 | 234 | $GLOBALS['xoopsTpl']->assign('error', $modulesObj->getHtmlErrors()); |
233 | 235 | } |
| 236 | + break; |
| 237 | + case 'clone': |
| 238 | + $modIdSource = Request::getInt('mod_id', 0); |
| 239 | + if ($modIdSource > 0) { |
| 240 | + //clone data table modules |
| 241 | + $modulesHandler = $helper->getHandler('Modules'); |
| 242 | + $tablesHandler = $helper->getHandler('Tables'); |
| 243 | + $fieldsHandler = $helper->getHandler('Fields'); |
| 244 | + $moduleSource = $modulesHandler->get($modIdSource); |
| 245 | + $moduleTarget = $modulesHandler->create(); |
| 246 | + $sourceVars = $moduleSource->getVars(); |
| 247 | + foreach ($sourceVars as $varKey => $varArray) { |
| 248 | + if ('mod_id' !== $varKey) { |
| 249 | + if (in_array($varKey, ['mod_name', 'mod_dirname'])) { |
| 250 | + for ($i = 1; $i <= 10; $i++) { |
| 251 | + $uniqValue = $varArray['value'] . $i; |
| 252 | + $result = $GLOBALS['xoopsDB']->query( |
| 253 | + 'SELECT * FROM ' . $GLOBALS['xoopsDB']->prefix('modulebuilder_modules') . " as ms WHERE ms.{$varKey} = '{$uniqValue}'" |
| 254 | + ); |
| 255 | + $num_rows = $GLOBALS['xoopsDB']->getRowsNum($result); |
| 256 | + if ($num_rows == 0) { |
| 257 | + break; |
| 258 | + } |
| 259 | + } |
| 260 | + $moduleTarget->setVar($varKey, $uniqValue); |
| 261 | + } else { |
| 262 | + $moduleTarget->setVar($varKey, $varArray['value']); |
| 263 | + } |
| 264 | + } |
| 265 | + } |
| 266 | + |
| 267 | + if ($modulesHandler->insert($moduleTarget)) { |
| 268 | + //get new mod_id |
| 269 | + $modIdTarget = $GLOBALS['xoopsDB']->getInsertId(); |
| 270 | + } else { |
| 271 | + \redirect_header('modules.php', 5, \_AM_MODULEBUILDER_MODULE_CLONE_ERROR); |
| 272 | + } |
| 273 | + |
| 274 | + //clone data table tables |
| 275 | + $resultTables = $GLOBALS['xoopsDB']->query( |
| 276 | + 'SELECT table_id FROM ' . $GLOBALS['xoopsDB']->prefix('modulebuilder_tables') . " as ts WHERE ts.table_mid = '{$modIdSource}'" |
| 277 | + ); |
| 278 | + $num_rows1 = $GLOBALS['xoopsDB']->getRowsNum($resultTables); |
| 279 | + if ($num_rows1 > 0) { |
| 280 | + while (false !== ($myTables = $GLOBALS['xoopsDB']->fetchArray($resultTables))) { |
| 281 | + $tableIdSource = $myTables['table_id']; |
| 282 | + $tableSource = $tablesHandler->get($tableIdSource); |
| 283 | + $tableTarget = $tablesHandler->create(); |
| 284 | + $sourceVars = $tableSource->getVars(); |
| 285 | + foreach ($sourceVars as $varKey => $varArray) { |
| 286 | + //skip table_id |
| 287 | + if ('table_id' !== $varKey) { |
| 288 | + //replace mod_id by new mod_id |
| 289 | + if ('table_mid' === $varKey) { |
| 290 | + $tableTarget->setVar($varKey, $modIdTarget); |
| 291 | + } else { |
| 292 | + $tableTarget->setVar($varKey, $varArray['value']); |
| 293 | + } |
| 294 | + } |
| 295 | + } |
| 296 | + if ($tablesHandler->insert($tableTarget)) { |
| 297 | + //get new table_id |
| 298 | + $tableIdTarget = $GLOBALS['xoopsDB']->getInsertId(); |
| 299 | + } else { |
| 300 | + \redirect_header('modules.php', 5, \_AM_MODULEBUILDER_MODULE_CLONE_ERROR); |
| 301 | + } |
| 302 | + |
| 303 | + //clone data table fields |
| 304 | + $resultFields = $GLOBALS['xoopsDB']->query( |
| 305 | + 'SELECT field_id FROM ' . $GLOBALS['xoopsDB']->prefix('modulebuilder_fields') . " as fs WHERE fs.field_tid = '{$tableIdSource}'" |
| 306 | + ); |
| 307 | + $num_rows2 = $GLOBALS['xoopsDB']->getRowsNum($resultFields); |
| 308 | + if ($num_rows2 > 0) { |
| 309 | + while (false !== ($myField = $GLOBALS['xoopsDB']->fetchArray($resultFields))) { |
| 310 | + $fieldIdSource = $myField['field_id']; |
| 311 | + $fieldsSource = $fieldsHandler->get($fieldIdSource); |
| 312 | + $fieldsTarget = $fieldsHandler->create(); |
| 313 | + $sourceVars = $fieldsSource->getVars(); |
| 314 | + foreach ($sourceVars as $varKey => $varArray) { |
| 315 | + //skip field_id |
| 316 | + if ('field_id' !== $varKey) { |
| 317 | + if ('field_mid' === $varKey) { |
| 318 | + //replace mod_id by new mod_id |
| 319 | + $fieldsTarget->setVar($varKey, $modIdTarget); |
| 320 | + } elseif ('field_tid' === $varKey) { |
| 321 | + //replace table_id by new table_id |
| 322 | + $fieldsTarget->setVar($varKey, $tableIdTarget); |
| 323 | + } else { |
| 324 | + $fieldsTarget->setVar($varKey, $varArray['value']); |
| 325 | + } |
| 326 | + } |
| 327 | + } |
| 328 | + if (!$fieldsHandler->insert($fieldsTarget)) { |
| 329 | + \redirect_header('modules.php', 5, \_AM_MODULEBUILDER_MODULE_CLONE_ERROR); |
| 330 | + } |
| 331 | + } |
| 332 | + } |
| 333 | + } |
| 334 | + } |
| 335 | + |
| 336 | + \redirect_header('modules.php', 5, \_AM_MODULEBUILDER_MODULE_CLONE_SUCCESS); |
| 337 | + } |
| 338 | + |
| 339 | + |
| 340 | + |
| 341 | + |
| 342 | + |
234 | 343 | break; |
235 | 344 | } |
236 | 345 |
|
237 | 346 | require __DIR__ . '/footer.php'; |
238 | | - |
|
0 commit comments