/** * Router podla dopytovanej URI zisti, ktory controller treba na obsluzenie - vrati jeho meno * * @return string */ public static function getControllerName() { // vytiahneme z URL parameter 'uri', kde su ulozene vsetky slug parametre requestu $uri = strtolower(Request::getParamByName('uri', REQUEST_PARAM_STRING)); $routes = unserialize(ROUTES); foreach ($routes as $ctrlName => $ctrlRoutes) { foreach ($ctrlRoutes as $route) { // vyescapujeme lomitka $pattern = "/^" . str_replace('/', '\\/', $route) . "\$/"; // nahradime * za regex analogiu $pattern = str_replace('*', '[a-z0-9]+', $pattern); if (preg_match($pattern, $uri) === 1) { // URI sedi na tuto routu ! Logger::debug("Najdena routa pre URI '{$uri}' --> CONTROLLER {$ctrlName}"); $controllerName = $ctrlName; break 2; } } } // default controller if (!isset($controllerName)) { $controllerName = 'Home'; } return $controllerName; }
public function run() { switch (Request::getParamByName('uri', REQUEST_PARAM_STRING)) { case 'orders/active': // vyberieme vsetky objednavky na ktorych treba robit $this->_View->title = 'Aktívne objednávky'; $this->_View->title2 = 'otvorené objednávky, na ktorých sa práve pracuje'; $orders = Admin_ModelOrder::getActiveOrders(); break; case 'orders/open': // vyberieme vsetky otvorene objednavky $this->_View->title = 'Otvorené objednávky'; $this->_View->title2 = 'rozpracované'; $orders = Admin_ModelOrder::getOpenOrders(); break; case 'orders/closed': // vyberieme vsetky uzatvorene objednavky $this->_View->title = 'Uzatvorené objednávky'; $this->_View->title2 = 'uzatvorené/odoslané objednávky'; $orders = Admin_ModelOrder::getClosedOrders(); break; default: $this->_View->title = 'Všetky objednávky'; $this->_View->title2 = 'celá história'; $orders = Admin_ModelOrder::getOrders(); } // preprocessing dat $neparny = true; foreach ($orders as $key => $order) { $order['row_class'] = $neparny ? 'odd' : 'even'; $neparny = !$neparny; $order['status_class'] = Admin_ModelOrder::statusToClass($order['status']); $orders[$key] = $order; } $this->_View->records = $orders; $this->_View->records_num = count($orders); $this->_View->urlLogout = Request::makeUriRelative('logout'); }