From 5c9d88901f2beeffd8cdb9507c90314f0a851801 Mon Sep 17 00:00:00 2001 From: bnu Date: Thu, 11 Dec 2014 15:03:33 +0900 Subject: [PATCH] =?UTF-8?q?Revert=20"Router=20=EA=B8=B0=EB=8A=A5=20?= =?UTF-8?q?=EC=B6=94=EA=B0=80"?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit This reverts commit bbdd1874de7796a9e09ed036212f8fc0046d8f69. --- .htaccess | 36 ++++- classes/context/Context.class.php | 12 +- classes/router/Router.class.php | 240 ------------------------------ config/config.inc.php | 1 - 4 files changed, 34 insertions(+), 255 deletions(-) delete mode 100644 classes/router/Router.class.php diff --git a/.htaccess b/.htaccess index 43536f5e9..89ecf951f 100644 --- a/.htaccess +++ b/.htaccess @@ -15,7 +15,37 @@ RewriteRule ^(.+)/files/(member_extra_info|attach|cache|faceOff)/(.*) ./files/$2 RewriteCond %{SCRIPT_FILENAME} !-f RewriteRule ^(.+)/(files|modules|widgets|widgetstyles|layouts|m.layouts|addons)/(.*) ./$2/$3 [L] -# router -RewriteCond %{SCRIPT_FILENAME} !-f +# rss , blogAPI +RewriteRule ^(rss|atom)$ ./index.php?module=rss&act=$1 [L] +RewriteRule ^([a-zA-Z0-9_]+)/(rss|atom|api)$ ./index.php?mid=$1&act=$2 [L] +RewriteRule ^([a-zA-Z0-9_]+)/([a-zA-Z0-9_]+)/(rss|atom|api)$ ./index.php?vid=$1&mid=$2&act=$3 [L] + +# trackback +RewriteRule ^([0-9]+)/(.+)/trackback$ ./index.php?document_srl=$1&key=$2&act=trackback [L] +RewriteRule ^([a-zA-Z0-9_]+)/([0-9]+)/(.+)/trackback$ ./index.php?mid=$1&document_srl=$2&key=$3&act=trackback [L] +RewriteRule ^([a-zA-Z0-9_]+)/([0-9]+)/(.+)/trackback$ ./index.php?vid=$1&document_srl=$2&key=$3&act=trackback [L] +RewriteRule ^([a-zA-Z0-9_]+)/([a-zA-Z0-9_]+)/([0-9]+)/(.+)/trackback$ ./index.php?vid=$1&mid=$2&document_srl=$3&key=$4&act=trackback [L] + +# document permanent link +RewriteRule ^([0-9]+)$ ./index.php?document_srl=$1 [L,QSA] + +# mid link RewriteCond %{SCRIPT_FILENAME} !-d -RewriteRule ^(.*)$ ./index.php [L] +RewriteRule ^([a-zA-Z0-9_]+)/?$ ./index.php?mid=$1 [L,QSA] +# mid + document link +RewriteRule ^([a-zA-Z0-9_]+)/([0-9]+)$ ./index.php?mid=$1&document_srl=$2 [L,QSA] + +# vid + mid link +RewriteCond %{SCRIPT_FILENAME} !-d +RewriteRule ^([a-zA-Z0-9_]+)/([a-zA-Z0-9_]+)/?$ ./index.php?vid=$1&mid=$2 [L,QSA] +# vid + mid + document link +RewriteRule ^([a-zA-Z0-9_]+)/([a-zA-Z0-9_]+)/([0-9]+)$ ./index.php?vid=$1&mid=$2&document_srl=$3 [L,QSA] + +# mid + entry title +RewriteRule ^([a-zA-Z0-9_]+)/entry/(.+)$ ./index.php?mid=$1&entry=$2 [L,QSA] +# vid + mid + entry title +RewriteRule ^([a-zA-Z0-9_]+)/([a-zA-Z0-9_]+)/entry/(.+)$ ./index.php?vid=$1&mid=$2&entry=$3 [L,QSA] + +#shop / vid / [category|product] / identifier +RewriteCond %{SCRIPT_FILENAME} !-f +RewriteRule ^([a-zA-Z0-9_]+)/([a-zA-Z0-9_]+)/([a-zA-Z0-9_\.-]+)$ ./index.php?act=route&vid=$1&type=$2&identifier=$3 [L,QSA] diff --git a/classes/context/Context.class.php b/classes/context/Context.class.php index f93227338..fec8c5449 100644 --- a/classes/context/Context.class.php +++ b/classes/context/Context.class.php @@ -366,13 +366,6 @@ class Context // check if using rewrite module $this->allow_rewrite = ($this->db_info->use_rewrite == 'Y' ? TRUE : FALSE); - // If using rewrite module, initializes router - if($this->allow_rewrite) - { - $oRouter = Router::getInstance(); - $oRouter->proc(); - } - // set locations for javascript use if($_SERVER['REQUEST_METHOD'] == 'GET') { @@ -1575,10 +1568,7 @@ class Context 'act.document_srl.key.mid.vid' => ($act == 'trackback') ? "$vid/$mid/$srl/$key/$act" : '' ); - $oRouter = Router::getInstance(); - $oRouter->setMap($target_map); - - $query = $oRouter->makePrettyUrl($target); + $query = $target_map[$target]; } if(!$query) diff --git a/classes/router/Router.class.php b/classes/router/Router.class.php deleted file mode 100644 index d71a23854..000000000 --- a/classes/router/Router.class.php +++ /dev/null @@ -1,240 +0,0 @@ - 0) - { - self::$segments = explode('/', $path); - - // Remove the meanless segment - unset(self::$segments[0]); - } - - $self = Router::getInstance(); - - // Set default routes - $self->routes = array( - // rss , blogAPI - '(rss|atom)' => array('module' => 'rss', 'act' => '$1'), - '([a-zA-Z0-9_]+)/(rss|atom|api)' => array('mid' => '$1', 'act' => '$2'), - '([a-zA-Z0-9_]+)/([a-zA-Z0-9_]+)/(rss|atom|api)' => array('vid' => '$1', 'mid' => '$2', 'act' => '$3'), - // trackback - '([0-9]+)/(.+)/trackback' => array('document_srl' => '$1', 'key' => '$2', 'act' => 'trackback'), - '([a-zA-Z0-9_]+)/([0-9]+)/(.+)/trackback' => array('mid' => '$1', 'document_srl' => '$2', 'key' => '$3', 'act' => 'trackback'), - '([a-zA-Z0-9_]+)/([a-zA-Z0-9_]+)/([0-9]+)/(.+)/trackback' => array('vid' => '$1', 'mid' => '$2', 'document_srl' => '$3' , 'key' => '$4', 'act' => 'trackback'), - // mid - '([a-zA-Z0-9_]+)/?' => array('mid' => '$1'), - // mid + document_srl - '([a-zA-Z0-9_]+)/([0-9]+)' => array('mid' => '$1', 'document_srl' => '$2'), - // vid + mid - '([a-zA-Z0-9_]+)/([a-zA-Z0-9_]+)/' => array('vid' => '$1', 'mid' => '$2'), - // vid + mid + document_srl - '([a-zA-Z0-9_]+)/([a-zA-Z0-9_]+)/([0-9]+)?' => array('vid' => '$1', 'mid' => '$2', 'document_srl' => '$3'), - // document_srl - '([0-9]+)' => array('document_srl' => '$1'), - // mid + entry title - '([a-zA-Z0-9_]+)/entry/(.+)' => array('mid' => '$1', 'entry' => '$2'), - // vid + mid + entry title - '([a-zA-Z0-9_]+)/([a-zA-Z0-9_]+)/entry/(.+)' => array('vid' => '$1', 'mid' => '$2', 'entry' => '$3'), - // shop / vid / [category|product] / identifier - '([a-zA-Z0-9_]+)/([a-zA-Z0-9_]+)/([a-zA-Z0-9_\.-]+)' => array('act' => 'route', 'vid' => '$1', 'type' => '$2', 'identifier'=> '$3'), - ); - - if(isset($self->routes[$path])) - { - foreach($self->routes[$path] as $key => $val) - { - $val = preg_replace('#^\$([0-9]+)$#e', '\$matches[$1]', $val); - - Context::set($key, $val, TRUE); - } - - return; - } - - // Apply routes - foreach($self->routes as $regex => $query) - { - if(preg_match('#^' . $regex . '$#', $path, $matches)) - { - foreach($query as $key => $val) - { - $val = preg_replace('#^\$([0-9]+)$#e', '\$matches[$1]', $val); - - Context::set($key, $val, TRUE); - } - } - } - } - - /** - * @brief Add a rewrite map(s) - * @param array $map - * @return void - */ - public function setMap($map) - { - $self = Router::getInstance(); - $self->rewrite_map = array_merge($self->rewrite_map, $map); - } - - /** - * @brief Add a route - * @param string $target - * @param array $query - * @return void - */ - public function add($target, $query) - { - $self = Router::getInstance(); - $self->routes[$target] = $query; - } - - /** - * @brief Add multiple routes - * @param array $routes - * @return void - */ - public function adds($routes) - { - $self = Router::getInstance(); - $self->routes = array_merge($self->routes, $routes); - } - - /** - * @brief Get segment from request uri - * @param int $index - * @return string - */ - public function getSegment($index) - { - $self = Router::getInstance(); - return $self->segments[$index]; - } - - - /** - * @brief Get segment from request uri - * @param int $index - * @return string - */ - public function getSegments() - { - $self = Router::getInstance(); - return $self->segments; - } - - /** - * @brief Get route info - * @param string $regex - * @return array - */ - public function getRoute($regex) - { - $self = Router::getInstance(); - return $self->routes[$regex]; - } - - /** - * @brief Get routes list - * @return array - */ - public function getRoutes() - { - $self = Router::getInstance(); - return $self->routes; - } - - /** - * @brief Get routes list - * @param string $regex - * @return boolean - */ - public function isExistsRoute($regex) - { - $self = Router::getInstance(); - return isset($self->routes[$regex]); - } - - /** - * @brief Makes shortten url - * @param string $regex - * @return string - */ - public function makePrettyUrl($regex) - { - $self = Router::getInstance(); - return $self->rewrite_map[$regex]; - } -} \ No newline at end of file diff --git a/config/config.inc.php b/config/config.inc.php index b79323919..16530850a 100644 --- a/config/config.inc.php +++ b/config/config.inc.php @@ -299,7 +299,6 @@ if(!defined('__XE_LOADED_CLASS__')) require(_XE_PATH_ . 'classes/xml/XmlJsFilter.class.php'); require(_XE_PATH_ . 'classes/xml/XmlLangParser.class.php'); require(_XE_PATH_ . 'classes/cache/CacheHandler.class.php'); - require(_XE_PATH_ . 'classes/router/Router.class.php'); require(_XE_PATH_ . 'classes/context/Context.class.php'); require(_XE_PATH_ . 'classes/db/DB.class.php'); require(_XE_PATH_ . 'classes/file/FileHandler.class.php');