/**
  * @expectedException \coding_exception
  */
 public function test_route_fail()
 {
     $controller = $this->getMock('\\theme_snap\\controller\\controller_abstract', array('init', 'require_capability'));
     $router = new router();
     $router->add_controller($controller);
     $router->route_action('test');
 }
示例#2
0
define('NO_DEBUG_DISPLAY', true);
require_once __DIR__ . '/../../config.php';
$systemcontext = context_system::instance();
$action = required_param('action', PARAM_ALPHAEXT);
$contextid = optional_param('contextid', $systemcontext->id, PARAM_INT);
list($context, $course, $cm) = get_context_info_array($contextid);
$courseactions = ['get_media', 'read_page', 'get_page'];
if (in_array($action, $courseactions)) {
    require_login($course, false, $cm, false, true);
} else {
    require_login();
}
/** @var $PAGE moodle_page */
$PAGE->set_context($context);
$PAGE->set_url('/theme/snap/rest.php', array('action' => $action, 'contextid' => $context->id));
$router = new router();
// Add controllers automatically.
$controllerdir = __DIR__ . '/classes/controller';
$contfiles = scandir($controllerdir);
foreach ($contfiles as $contfile) {
    if ($contfile === 'addsection_controller.php') {
        continue;
    }
    $pattern = '/_controller.php$/i';
    if (preg_match($pattern, $contfile) !== 1) {
        continue;
    } else {
        $classname = '\\theme_snap\\controller\\' . str_ireplace('.php', '', $contfile);
        if (class_exists($classname)) {
            $rc = new ReflectionClass($classname);
            if ($rc->isSubclassOf('\\theme_snap\\controller\\controller_abstract')) {
示例#3
0
//
// Moodle is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
// GNU General Public License for more details.
//
// You should have received a copy of the GNU General Public License
// along with Moodle.  If not, see <http://www.gnu.org/licenses/>.
/**
 * Snap non-AJAX handler
 *
 * @package   theme_snap
 * @copyright Copyright (c) 2015 Moodlerooms Inc. (http://www.moodlerooms.com)
 * @license   http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
 */
use theme_snap\controller\kernel;
use theme_snap\controller\router;
use theme_snap\controller\addsection_controller;
require_once __DIR__ . '/../../config.php';
$systemcontext = context_system::instance();
$action = required_param('action', PARAM_ALPHAEXT);
$contextid = optional_param('contextid', $systemcontext->id, PARAM_INT);
list($context, $course, $cm) = get_context_info_array($contextid);
require_login($course, false, $cm, false, true);
/** @var $PAGE moodle_page */
$PAGE->set_context($context);
$PAGE->set_url('/theme/snap/index.php', array('action' => $action, 'contextid' => $context->id));
$router = new router();
$router->add_controller(new addsection_controller());
$kernel = new kernel($router);
$kernel->handle($action);