aboutsummaryrefslogtreecommitdiffstats
path: root/public/admin/controller/startup/router.php
diff options
context:
space:
mode:
Diffstat (limited to 'public/admin/controller/startup/router.php')
-rw-r--r--public/admin/controller/startup/router.php37
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;
+ }
+}