//load claroline kernel require_once dirname(__FILE__) . '/../../claroline/inc/claro_init_global.inc.php'; //security check if (!claro_is_in_a_course() || !claro_is_course_allowed()) { claro_disp_auth_form(true); } //load required libraries require_once get_path('incRepositorySys') . '/lib/forum.lib.php'; require_once get_path('incRepositorySys') . '/lib/user.lib.php'; //init general purpose vars claro_set_display_mode_available(true); $is_allowedToEdit = claro_is_allowed_to_edit() || claro_is_group_tutor() && !claro_is_course_manager(); $dialogBox = new DialogBox(); //handle user input and possible associated exceptions try { $userInput = Claro_UserInput::getInstance(); if ($is_allowedToEdit) { $userInput->setValidator('cmd', new Claro_Validator_AllowedList(array('rqPost', 'exSavePost', 'exDelete', 'show', 'exNotify', 'exdoNotNotify'))); $userInput->setValidator('mode', new Claro_Validator_AllowedList(array('add', 'edit', 'reply', 'quote'))); $userInput->setValidator('mode', new Claro_Validator_NotEmpty()); } else { $userInput->setValidator('cmd', new Claro_Validator_AllowedList(array('rqPost', 'exSavePost', 'show', 'exNotify', 'exdoNotNotify'))); $userInput->setValidator('mode', new Claro_Validator_AllowedList(array('add', 'reply', 'quote'))); $userInput->setValidator('mode', new Claro_Validator_NotEmpty()); } $userInput->setValidator('forum', new Claro_Validator_ValueType('numeric')); $userInput->setValidator('forum', new Claro_Validator_NotEmpty()); $userInput->setValidator('topic', new Claro_Validator_ValueType('numeric')); $userInput->setValidator('topic', new Claro_Validator_NotEmpty()); $userInput->setValidator('post', new Claro_Validator_ValueType('numeric')); $userInput->setValidator('post', new Claro_Validator_NotEmpty());
/** * Exceute the controller bound to the requested key * @param string $request requestable key, if null, trys to serve the default * Controller if any * @throws Claro_FrontController_Exception if if the requested key is not bound * @return string controller output */ public function serve($request = null) { if (empty($request) && $this->defaultController) { $request = $this->defaultController; } if (array_key_exists($request, $this->registry)) { $userInput = Claro_UserInput::getInstance(); $claroline = Claroline::getInstance(); $svc = $this->registry[$request]; return $svc->handleRequest($userInput, $claroline); } else { throw new Claro_FrontController_Exception("No controller bound to {$request}"); } }
<?php // $Id: index.php 13718 2011-10-20 09:24:38Z ffervaille $ require '../inc/claro_init_global.inc.php'; FromKernel::uses('utils/input.lib', 'utils/validator.lib'); $module = Claro_UserInput::getInstance()->get('module'); $block = Claro_UserInput::getInstance()->get('block'); if (!empty($module) && $module != 'platform' && file_exists(get_module_path($module) . '/templates/help.tpl.php')) { $tpl = new ModuleTemplate($module, 'help.tpl.php '); } else { $tpl = new CoreTemplate('help.tpl.php'); } if ($moduleName = get_module_data($module, 'moduleName')) { load_module_language($module); $tpl->assign('module', $moduleName); } else { $tpl->assign('module', $module); } $tpl->assign('block', $block); $claroline->setDisplayType(Claroline::POPUP); $claroline->display->header->setTitle(get_lang('Claroline help')); $claroline->display->body->appendContent($tpl->render()); echo $claroline->display->render();
* 1. Register Ajax remote service in module functions.php * Claroline::ajaxServiceBroker()->register( .... ); * 2. Execute AJAX requests on get_path('url').'/claroline/backends/ajaxbroker.php' * * @version $Revision: 14132 $ * @copyright (c) 2001-2011, Universite catholique de Louvain (UCL) * @author Claroline Team <*****@*****.**> * @author Frederic Minne <*****@*****.**> * @license http://www.gnu.org/copyleft/gpl.html * GNU GENERAL PUBLIC LICENSE version 2 or later * @package kernel.utils.ajax * @since Claroline 1.10 */ try { require_once dirname(__FILE__) . '/../inc/claro_init_global.inc.php'; if (!get_conf('ajaxRemoteServiceBrokerEnabled', false)) { $response = new Json_Error("Ajax Remote Service is not available (you can allow it in the " . "claroline configuration advanced settings)"); } else { $moduleLabel = Claro_UserInput::getInstance()->get('moduleLabel', false); if ($moduleLabel) { Ajax_Remote_Module_Service::registerModuleServiceInstance($moduleLabel); } $ajaxRequest = Ajax_Request::getRequest(Claro_UserInput::getInstance()); $response = Claroline::ajaxServiceBroker()->handle($ajaxRequest); } } catch (Exception $e) { $response = new Json_Exception($e); } header('Content-type: application/json; charset=utf-8'); echo $response->toJson(); exit;