コード例 #1
0
 /**
  * Given an action, find the controller and method responsible for
  * handling the action.
  *
  * In addition, send some extra variables to the controller
  * and initialize it.
  *
  * @param string $action
  * @return array
  */
 public function resolve_controller_callback($action)
 {
     /** @var $controller \mod_hsuforum\controller\controller_abstract */
     list($controller, $method) = $this->router->route_action($action);
     $controller->set_renderer($this->renderer);
     $controller->init($action);
     return array($controller, $method);
 }
コード例 #2
0
require_once dirname(dirname(__DIR__)) . '/config.php';
require_once __DIR__ . '/lib.php';
require_once __DIR__ . '/classes/controller/kernel.php';
require_once __DIR__ . '/classes/controller/router.php';
require_once __DIR__ . '/classes/controller/export_controller.php';
require_once __DIR__ . '/classes/controller/posters_controller.php';
require_once __DIR__ . '/classes/controller/flag_controller.php';
require_once __DIR__ . '/classes/controller/posts_controller.php';
require_once __DIR__ . '/classes/controller/edit_controller.php';
global $PAGE, $DB;
$contextid = required_param('contextid', PARAM_INT);
$action = optional_param('action', 'view', PARAM_ALPHAEXT);
list($context, $course, $cm) = get_context_info_array($contextid);
if (empty($cm)) {
    throw new coding_exception("Failed to find course module record with contextid of {$contextid}");
}
$instance = $DB->get_record('hsuforum', array('id' => $cm->instance), '*', MUST_EXIST);
require_login($course, true, $cm);
$PAGE->set_title("{$course->shortname}: {$instance->name}");
$PAGE->set_heading($course->fullname);
$PAGE->set_activity_record($instance);
$PAGE->set_context($context);
$PAGE->set_url('/mod/hsuforum/route.php', array('contextid' => $context->id, 'action' => $action));
$router = new router();
$router->add_controller(new posters_controller());
$router->add_controller(new flag_controller());
$router->add_controller(new posts_controller());
$router->add_controller(new export_controller());
$router->add_controller(new edit_controller());
$kernel = new kernel($router);
$kernel->handle($action);