/** * Add module in claroline, giving its path * * @param string $modulePath * @return int module id or false * @todo remove the need of the Backlog and use Exceptions instead */ function register_module($modulePath) { $backlog = new Backlog(); if (file_exists($modulePath)) { /*$parser = new ModuleManifestParser; $module_info = $parser->parse($modulePath.'/manifest.xml');*/ $module_info = readModuleManifest($modulePath); if (false === $module_info) { $backlog->failure(get_lang('Cannot parse module manifest')); $moduleId = false; } elseif (is_array($module_info) && false !== ($moduleId = register_module_core($module_info))) { $backlog->failure(get_lang('Module %claroLabel registered', array('%claroLabel' => $module_info['LABEL']))); if ('TOOL' == strtoupper($module_info['TYPE'])) { if (false !== ($toolId = register_module_tool($moduleId, $module_info))) { $backlog->failure(get_lang('Module %label registered as tool', array('%claroLabel' => $module_info['LABEL']))); } else { $backlog->failure(get_lang('Cannot register tool %label', array('%label' => $module_info['LABEL']))); } } elseif ('APPLET' == strtoupper($module_info['TYPE'])) { if (array_key_exists('DEFAULT_DOCK', $module_info) && is_array($module_info['DEFAULT_DOCK'])) { foreach ($module_info['DEFAULT_DOCK'] as $dock) { add_module_in_dock($moduleId, $dock); $backlog->failure(get_lang('Module %label added in dock : %dock', array('%label' => $module_info['LABEL'], '%dock' => $dock))); } } } } else { $backlog->failure(get_lang('Cannot register module %label', array('%label' => $module_info['LABEL']))); } } else { $backlog->failure(get_lang('Cannot find module')); } return $moduleId; }
break; case 'deactiv': 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 {