/** * 获取当前的控制器的相关信息 * * @return string */ public static function controller($type = 'name') { switch ($type) { case 'name': case 'filename': $return = empty(self::$controller) ? 'index' : self::$controller; break; case 'path': case 'filepath': $return = module::setting(Router::module(), 'root') . DS . router::application() . DS . router::controller('filename') . '.php'; break; case 'class': case 'classname': $return = empty(self::$controller) ? 'IndexController' : ucfirst(self::$controller) . 'Controller'; break; } return $return; }
/** * Определение запрашиваемого модуля и сегмента */ public static function route() { self::parse_query(); if (self::_check_segments()) { self::$segment1 = self::$parse['segment1']; self::$segment2 = self::$parse['segment2']; self::$segment3 = self::$parse['segment3']; if (empty(self::$segment1)) { if (file_exists(ROOT . 'modules/index/execute/index.php')) { self::$controller_path = 'modules/index/execute/index.php'; self::$controller_name = 'index'; self::$action = ''; self::$page = ''; self::$module = 'index'; } else { self::$controller_exists = FALSE; } } elseif (!empty(self::$segment1) && !empty(self::$segment2)) { if (file_exists(ROOT . 'modules/' . self::$segment1 . '/execute/' . self::$segment1 . '.php')) { self::$controller_path = 'modules/' . self::$segment1 . '/execute/' . self::$segment1 . '.php'; self::$controller_name = self::$segment1; self::$action = self::$segment2; self::$page = ''; self::$module = self::$segment1; } else { self::$controller_exists = FALSE; } } elseif (!empty(self::$segment1)) { if (file_exists(ROOT . 'modules/' . self::$segment1 . '/execute/' . self::$segment1 . '.php')) { self::$controller_path = 'modules/' . self::$segment1 . '/execute/' . self::$segment1 . '.php'; self::$controller_name = self::$segment1; self::$action = ''; self::$page = ''; self::$module = self::$segment1; } else { self::$controller_exists = FALSE; } } else { throw new Exception('00404'); } } if (self::$controller_exists) { define('ROUTE_CONTROLLER_PATH', self::$controller_path); define('ROUTE_CONTROLLER_NAME', self::$controller_name); define('ROUTE_CONTROLLER_URL', self::$module . (self::$action ? '/' . self::$action : '') . (self::$page ? '/' . self::$page : '')); define('ROUTE_ACTION', self::$action); define('ROUTE_PAGE', self::$page); define('ROUTE_MODULE', self::$module); } elseif (!empty(self::$segment1)) { if (!empty(self::$segment2)) { if (is_numeric(self::$segment2)) { if (!empty(self::$segment3)) { self::$action = self::$segment3; } else { self::$action = "showThread"; } } else { self::$action = self::$segment2; } } else { self::$action = "showBoard"; } define('ROUTE_CONTROLLER_PATH', ROOT . 'modules/index/execute/index.php'); define('ROUTE_CONTROLLER_NAME', 'index'); define('ROUTE_CONTROLLER_URL', self::$segment1); define('ROUTE_ACTION', self::$action); define('ROUTE_SEGMENT', self::$segment2); define('ROUTE_PAGE', self::$segment3); define('ROUTE_MODULE', 'index'); define('ROUTE_LOGIN', self::$segment1); } else { throw new Exception('00404'); } //; }