From 05a4811f21f861b29efb12f0095a6f151ae72580 Mon Sep 17 00:00:00 2001 From: ThinkPHP Date: Thu, 1 Aug 2013 18:20:54 +0800 Subject: [PATCH] =?UTF-8?q?=E6=94=AF=E6=8C=81=E6=A8=A1=E5=9D=97=E4=B8=8B?= =?UTF-8?q?=E9=9D=A2=E7=9A=84=E6=8E=A7=E5=88=B6=E5=99=A8=E5=88=86=E7=BB=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Library/Think/App.php | 9 +++++++++ Library/Think/Route.php | 4 ++++ convention.php | 3 +++ 3 files changed, 16 insertions(+) diff --git a/Library/Think/App.php b/Library/Think/App.php index c7411e7f..aa02adb2 100644 --- a/Library/Think/App.php +++ b/Library/Think/App.php @@ -126,6 +126,7 @@ class App { */ static public function dispatch($config) { $var_m = $config['var_module']; + $var_g = $config['var_group']; $var_c = $config['var_controller']; $var_a = $config['var_action']; $var_p = $config['var_pathinfo']; @@ -211,6 +212,7 @@ class App { Tag::import(include MODULE_PATH . 'tags' . EXT); } } + $var_g = $config['var_group']; $var_c = $config['var_controller']; $var_a = $config['var_action']; }else{ @@ -219,6 +221,13 @@ class App { // 路由检测和控制器、操作解析 Route::check($_SERVER['PATH_INFO']); + // 获取分组名 + if(Config::get('require_group')){ + define('GROUP_NAME', strtolower(isset($_GET[$var_g]) ? $_GET[$var_g] : $config['default_group'])); + }else{ + define('GROUP_NAME', ''); + } + // 获取控制器名 define('CONTROLLER_NAME', strtolower(isset($_GET[$var_c]) ? $_GET[$var_c] : $config['default_controller'])); diff --git a/Library/Think/Route.php b/Library/Think/Route.php index 9f7ee14f..6f5e4ce8 100644 --- a/Library/Think/Route.php +++ b/Library/Think/Route.php @@ -271,8 +271,12 @@ class Route { return ; } $paths = explode('/', $url); + $var_g = Config::get('var_group'); $var_c = Config::get('var_controller'); $var_a = Config::get('var_action'); + if(Config::get('require_group') && !isset($_GET[$var_g])) { + $_GET[$var_g] = array_shift($paths); + } if(Config::get('require_controller') && !isset($_GET[$var_c])) { $_GET[$var_c] = array_shift($paths); } diff --git a/convention.php b/convention.php index d1de12e5..ee9d5cf9 100644 --- a/convention.php +++ b/convention.php @@ -14,6 +14,7 @@ return [ 'app_debug' => true, // 调试模式 'app_status' => 'debug',// 调试模式状态 'var_module' => 'm', // 模块变量名 + 'var_group' => 'g', // 分组变量名 'var_controller' => 'c', // 控制器变量名 'var_action' => 'a', // 操作变量名 'var_pathinfo' => 's', // PATHINFO变量名 用于兼容模式 @@ -21,6 +22,8 @@ return [ 'pathinfo_depr' => '/', // pathinfo分隔符 'require_module' => true, // 是否显示模块 'default_module' => 'index', // 默认模块名 + 'require_group' => false, // 控制器是否需要分组 + 'default_group' => '', // 默认分组名 'require_controller' => true, // 是否显示控制器 'default_controller' => 'index', // 默认控制器名 'default_action' => 'index', // 默认操作名