diff options
Diffstat (limited to 'public/admin/controller/startup/router.php')
-rw-r--r-- | public/admin/controller/startup/router.php | 37 |
1 files changed, 37 insertions, 0 deletions
diff --git a/public/admin/controller/startup/router.php b/public/admin/controller/startup/router.php new file mode 100644 index 0000000..ec8e0ca --- /dev/null +++ b/public/admin/controller/startup/router.php @@ -0,0 +1,37 @@ +<?php +class ControllerStartupRouter extends Controller { + public function index() { + // Route + if (isset($this->request->get['route']) && $this->request->get['route'] != 'startup/router') { + $route = $this->request->get['route']; + } else { + $route = $this->config->get('action_default'); + } + + $data = array(); + + // Sanitize the call + $route = preg_replace('/[^a-zA-Z0-9_\/]/', '', (string)$route); + + // Trigger the pre events + $result = $this->event->trigger('controller/' . $route . '/before', array(&$route, &$data)); + + if (!is_null($result)) { + return $result; + } + + $action = new Action($route); + + // Any output needs to be another Action object. + $output = $action->execute($this->registry, $data); + + // Trigger the post events + $result = $this->event->trigger('controller/' . $route . '/after', array(&$route, &$output)); + + if (!is_null($result)) { + return $result; + } + + return $output; + } +} |