/** * */ protected function setRoute() { /* @var $router Core_Request_Routes */ $router = Core_Request_Routes::getInstance(); $routes = array(1 => array('name' => 'test'), 2 => array('name' => 'controller', 'empty_value' => 'index'), 3 => array('name' => 'action', 'empty_value' => 'index'), 4 => array('name' => 'id')); $router->setRoutes($routes); }
/** * */ protected function setRoute() { /* @var $router Core_Request_Routes */ $router = Core_Request_Routes::getInstance(); $router->action = 'index'; // allways!!!! }
/** * @param $address * @param bool $lang * @param array $options * @return mixed|string */ public function getAddress($address, array $options = array()) { if (substr($address, 0, 7) == 'http://' || substr($address, 0, 8) == 'https://') { return $address; } if (!isset($address)) { $tmp_parts = Core_Request_Routes::getInstance()->getRoutes(); unset($tmp_parts['module']); $address = implode('/', $tmp_parts); unset($tmp_parts); } // Create query $query = array(); if (!empty($options[self::ADD_CURRENT_QUERY])) { $query = array_merge($query, $this->request->getAllQueries()); } if (strstr($address, '?')) { parse_str(preg_replace('[.*\\?]', null, $address), $query_tmp); $query = array_merge($query, $query_tmp); $address = preg_replace('[\\?.*]', null, $address); } if (isset($options[self::ADD_QUERY])) { $query = array_merge($query, $options[self::ADD_QUERY]); } // Create $address $module = isset($options[self::SET_MODULE]) ? $options[self::SET_MODULE] : $this->request->getRoute('module'); if ($module == 'default') { $module = null; } $address = '/' . $module . '/' . $address; $address_parts = array(); foreach (explode('/', $address) as $part) { if ($part) { if (substr($part, 0, 1) == ':') { $part = $this->request->getRoute(substr($part, 1)); } // skip displaying index files if ($part == 'index') { continue; } $address_parts[] = $part; } } $address = cfg()->game_address . '/' . implode('/', $address_parts); // Prepare to return if ($query) { $address .= '&' . http_build_query($query); } if (!empty($options[self::STRICT_LINK])) { $address = str_replace('&', '&', $address); } return $address; }
/** * @throws Exception */ public function __construct() { parent::__construct(); if (!empty($_GET[self::ROUTER_NAME])) { self::$server_router = trim($_GET[self::ROUTER_NAME], '/'); unset($_GET[self::ROUTER_NAME]); } elseif (!empty($_SERVER['argv'])) { $tmp_parts = array(); for ($i = 2; $i < count($_SERVER['argv']); $i++) { $tmp_parts[] = $_SERVER['argv'][$i]; } self::$server_router = implode('/', $tmp_parts); } $this->setRoutes($this->getDefaultScheme()); }
/** * @return mixed */ public function getAllRoutes() { return Core_Request_Routes::getInstance()->getRoutes(); }