/** * Remove a module from a dock in which the module displays * @param integer $moduleId * @param string $dockName */ function remove_module_dock($moduleId, $dockName) { $tbl = claro_sql_get_main_tbl(); // call of this function to remove ALL occurence of the module in any dock if ('ALL' == $dockName) { //1- find all dock in which the dock displays $sql = "SELECT `name` AS dockName\n FROM `" . $tbl['dock'] . "`\n WHERE `module_id` = " . (int) $moduleId; $dockList = claro_sql_query_fetch_all($sql); //2- re-call of this function which each dock concerned foreach ($dockList as $dock) { remove_module_dock($moduleId, $dock['dockName']); } } else { //find the rank of the module in this dock : $sql = "SELECT `rank` AS oldRank\n FROM `" . $tbl['dock'] . "`\n WHERE `module_id` = " . (int) $moduleId . "\n AND `name` = '" . $dockName . "'"; $module = claro_sql_query_get_single_row($sql); //move up all modules displayed in this dock $sql = "UPDATE `" . $tbl['dock'] . "`\n SET `rank` = `rank` - 1\n WHERE `name` = '" . $dockName . "'\n AND `rank` > " . (int) $module['oldRank']; claro_sql_query($sql); //delete the module line in the dock table $sql = "DELETE FROM `" . $tbl['dock'] . "`\n WHERE `module_id` = " . (int) $moduleId . "\n AND `name` = '" . $dockName . "'"; claro_sql_query($sql); generate_module_cache(); } }
$modulePerPage = get_conf('moduleDockPerPage', 10); //---------------------------------- // EXECUTE COMMAND //---------------------------------- $cmd = isset($_REQUEST['cmd']) ? $_REQUEST['cmd'] : null; $module_id = isset($_REQUEST['module_id']) ? $_REQUEST['module_id'] : null; if (!empty($dock)) { switch ($cmd) { case 'up': move_module_in_dock($module_id, $dock, 'up'); break; case 'down': move_module_in_dock($module_id, $dock, 'down'); break; case 'remove': remove_module_dock($module_id, $dock); $dialogBox->success(get_lang('The module has been removed from this dock')); break; } //---------------------------------- // FIND INFORMATION //---------------------------------- $sql = "SELECT M.`id` AS `id`,\n M.`label` AS `label`,\n M.`name` AS `name`,\n M.`activation` AS `activation`,\n M.`type` AS `type`,\n D.`rank` AS `rank`\n FROM `" . $tbl_module . "` AS M, `" . $tbl_dock . "` AS D\n WHERE D.`module_id`= M.`id`\n AND D.`name` = '" . $dock . "'\n ORDER BY `rank`\n "; //pager creation $offset = isset($_REQUEST['offset']) ? $_REQUEST['offset'] : 0; $myPager = new claro_sql_pager($sql, $offset, $modulePerPage); //$pagerSortDir = isset($_REQUEST['dir' ]) ? $_REQUEST['dir' ] : SORT_ASC; $moduleList = $myPager->get_result_list(); } //---------------------------------- // DISPLAY
if (deactivate_module($moduleId)) { $dialogBox->success(get_lang('Module deactivation succeeded')); $module['activation'] = 'deactivated'; } else { $dialogBox->error(get_lang('Cannot deactivate module')); $module['activation'] = 'activated'; } break; case 'movedock': if (is_array($dockList)) { if (isset($_REQUEST['displayDockList']) && is_array($_REQUEST['displayDockList'])) { foreach ($dockList as $dockId => $dockName) { if (in_array($dockId, $_REQUEST['displayDockList'])) { add_module_in_dock($moduleId, $dockId); } else { remove_module_dock($moduleId, $dockId); } } } $dialogBox->success(get_lang('Changes in the display of the module have been applied')); } break; case 'makeVisible': case 'makeInvisible': $visibility = 'makeVisible' == $cmd ? true : false; list($log, $success) = set_module_visibility($moduleId, $visibility); if ($success) { $dialogBox->success(get_lang('Module visibility updated')); } else { $dialogBox->error(get_lang('Failed to update module visibility')); }