Exemplo n.º 1
0
/**
 * 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;
}
Exemplo n.º 2
0
     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 {