예제 #1
0
 public static function route($uri)
 {
     $parts = explode('/', trim($uri, '/'));
     $db = JO_Db::getDefaultAdapter();
     $request = JO_Request::getInstance();
     $query = $db->select()->from('url_alias');
     $get_controller = null;
     $get_action = null;
     if ($request->getController() != 'index' && in_array($request->getController(), WM_Modules::getControllers())) {
         $get_controller = $request->getController();
         if ($request->getAction() != 'index' && in_array($request->getAction(), WM_Modules::getControllerResources($get_controller))) {
             $get_action = $request->getAction();
         }
     }
     foreach ($parts as $part) {
         if (self::checkJsCss($part)) {
             continue;
         } elseif (in_array($part, self::$systems)) {
             continue;
         } elseif ($part == 'pinit.html') {
             JO_Request::getInstance()->setController('pinit')->setAction('index');
             continue;
         }
         $query->where('keyword = ?', $part);
         $results = $db->fetchRow($query);
         if ($results) {
             parse_str($results['query'], $data);
             foreach ($data as $key => $value) {
                 /*if($key == 'board_id' && !$request->getParam('user_id')) {
                 			continue;
                 		}*/
                 if ($request->getRequest($key)) {
                     // 						$request->setParams($key, $request->getRequest($key) . '_' . $value);
                     $request->setParams($key, $value);
                 } else {
                     $request->setParams($key, $value);
                 }
                 if ($results['route']) {
                     $call = explode('/', $results['route']);
                     $controller = 'index';
                     $action = 'index';
                     if (trim($call[0])) {
                         $controller = $call[0];
                     }
                     if (isset($call[1]) && trim($call[1])) {
                         $action = $call[1];
                     }
                     if ($get_controller) {
                         $controller = $get_controller;
                     }
                     if ($get_action) {
                         $action = $get_action;
                     }
                     $request->setController($controller)->setAction($action);
                 }
             }
         }
         $query->reset(JO_Db_Select::WHERE);
     }
 }
예제 #2
0
파일: AutoSeo.php 프로젝트: noikiy/amatteur
 public function getTotalKey($keyword)
 {
     $db = JO_Db::getDefaultAdapter();
     $array = WM_Modules::getControllers(APPLICATION_PATH . '/modules/default/controllers/');
     $array['admin'] = 'admin';
     $array['default'] = 'default';
     if (isset($array[$keyword])) {
         return 1;
     }
     $query = $db->select()->from('url_alias', new JO_Db_Expr('COUNT(url_alias_id)'))->where("LOWER(keyword) = ?", (string) mb_strtolower($keyword, 'utf-8'));
     return $db->fetchOne($query);
 }
예제 #3
0
 function renameIfExist($uniqueSlug)
 {
     $db = JO_Db::getDefaultAdapter();
     $query = $db->select()->from('url_alias', array('keyword', 'keyword'))->where('keyword = ?', $uniqueSlug)->orWhere('keyword LIKE ?', $uniqueSlug . '-%');
     $array = $db->fetchPairs($query);
     foreach (WM_Modules::getControllers(APPLICATION_PATH . '/modules/default/controllers/') as $controller) {
         $array[$controller] = $controller;
     }
     $array['admin'] = 'admin';
     $array['default'] = 'default';
     $array = JO_Utf8::array_change_key_case_unicode($array);
     return self::rename_if_exists($array, mb_strtolower($uniqueSlug, 'utf-8'));
 }
예제 #4
0
 public static function isExistUsername($username, $old_username = FALSE)
 {
     if ($username == $old_username) {
         return false;
     }
     $disabled_names = WM_Modules::getControllers();
     $disabled_names[] = 'admin';
     $disabled_names[] = 'default';
     if (in_array(strtolower($username), $disabled_names)) {
         return 1;
     }
     $db = JO_Db::getDefaultAdapter();
     $query = $db->select()->from('users', new JO_Db_Expr('COUNT(user_id)'))->where('username = ?', $username);
     return $db->fetchOne($query) > 0 ? true : false;
 }