예제 #1
0
 public static function init()
 {
     global $_F;
     $dispatcher = new FDispatcher();
     if (!isset($_F['uri'])) {
         self::getURI();
     }
     $c = isset($_GET['c']) ? $_GET['c'] : null;
     $a = isset($_GET['a']) ? $_GET['a'] : null;
     if (!$c || !$a) {
         $dispatcher->_checkRouter($c, $a);
     }
     if (!$c || !$a) {
         if ($_F['uri'] == '/' || $_F['uri'] == '' || $_F['uri'] == '/index') {
             $c = 'index';
             $a = 'default';
         } else {
             $path_info = explode('/', $_F['uri']);
             if (isset($path_info[3])) {
                 $_F['app'] = $app = $path_info[1];
                 $c = $path_info[2];
                 $a = $path_info[3];
             } elseif (isset($path_info[2])) {
                 $c = $path_info[1];
                 $a = $path_info[2];
             } elseif (isset($path_info[1])) {
                 $c = $path_info[1];
                 $a = 'default';
             }
         }
     }
     if (!empty($_F['app'])) {
         $_F['controller'] = 'Controller_' . ucfirst($_F['app']) . '_' . ucfirst($c);
     } elseif ($_F['module']) {
         $_F['controller'] = 'Controller_' . ucfirst($_F['module']) . '_' . ucfirst($c);
     } else {
         $_F['controller'] = 'Controller_' . ucfirst($c);
     }
     $_F['action'] = $a;
 }
예제 #2
0
 public static function init()
 {
     global $_F;
     $configModule = FConfig::get('global.modules');
     if ($configModule) {
         $_F['modules'] = explode(',', str_replace(' ', '', FConfig::get('global.modules')));
     }
     $dispatcher = new FDispatcher();
     if (!isset($_F['uri'])) {
         self::getURI();
     }
     $c = isset($_GET['c']) ? $_GET['c'] : null;
     $a = isset($_GET['a']) ? $_GET['a'] : null;
     if (!$c || !$a) {
         $dispatcher->_checkRouter($c, $a);
     }
     if (!$c || !$a) {
         if ($_F['uri'] == '/' || $_F['uri'] == '' || $_F['uri'] == '/index') {
             if ($_F['modules']) {
                 $_F['module'] = $app = $_F['modules'][0];
             }
             $c = 'index';
             $a = 'index';
         } else {
             $path_info = explode('/', trim($_F['uri'], '/'));
             /*
              * 处理 URL 中直接传 ID 的情况
              */
             if (is_numeric($path_info[2])) {
                 $_GET['id'] = $path_info[2];
                 unset($path_info[2]);
             } elseif (is_numeric($path_info[1])) {
                 $_GET['id'] = $path_info[1];
                 unset($path_info[1]);
             }
             if ($_F['modules']) {
                 if (in_array($path_info[0], $_F['modules'])) {
                     $_F['module'] = $app = $path_info[0];
                     /*
                      * 处理一下 URL:
                      * 情况1: /mobile
                      * 情况2: /mobile/user
                      */
                     switch (sizeof($path_info)) {
                         case 1:
                             // 情况1: /mobile
                             $path_info[1] = 'index';
                             $path_info[2] = 'index';
                             break;
                         case 2:
                             // 情况2: /mobile/user
                             $path_info[2] = 'index';
                             break;
                     }
                 } else {
                     $_F['module'] = $app = $_F['modules'][0];
                 }
             }
             if (isset($path_info[2])) {
                 $c = $path_info[1];
                 $a = $path_info[2];
             } elseif (isset($path_info[1])) {
                 $c = $path_info[0];
                 $a = $path_info[1];
             } elseif (isset($path_info[0])) {
                 $c = $path_info[0];
                 $a = 'index';
             }
         }
     }
     if (!empty($_F['app'])) {
         $_F['controller'] = 'Controller_' . ucfirst($_F['app']) . '_' . ucfirst($c);
     } elseif ($_F['module']) {
         $_F['controller'] = ucfirst($_F['module']) . ucfirst($c) . 'Ctrl';
     } else {
         $_F['controller'] = ucfirst($c) . 'Ctrl';
     }
     $_F['action'] = $a;
 }