コード例 #1
0
ファイル: AdminAuth.php プロジェクト: piratevn/cms-gio
 public function run()
 {
     $request = Gio_Core_Request::getInstance();
     $configs = Gio_Core_Config_Xml::getConfig('web');
     $adminPrefixUrl = $configs->admin->url_prefix;
     $adminTemplate = $configs->admin->template;
     $adminSkin = isset($configs->admin->skin) ? $configs->admin->skin : 'default';
     $baseUrl = $request->getBaseUrl();
     $uri = $request->getRequestUri();
     $serverName = $request->getServerName();
     $serverPort = $request->getServerPort();
     $serverPort = $serverPort == 80 ? '' : ':' . $serverPort;
     $uri = 'http://' . $serverName . $serverPort . $uri;
     $currentUrl = str_replace($baseUrl, '', $uri);
     $currentUrl = '/' . rtrim(ltrim($currentUrl, '/'), '/') . '/';
     /**
      * 7 is length of /admin/
      */
     $length = strlen($adminPrefixUrl) + 2;
     if (!$adminPrefixUrl || substr($currentUrl, 0, $length) != "/{$adminPrefixUrl}/") {
         return;
     }
     $controllerFront = Gio_Core_Controller::getIntance();
     $controllerFront->setTemplate($adminTemplate);
     $view = Gio_Core_View::getInstance();
     $view->APP_TEMPLATE = $adminTemplate;
     $view->APP_SKIN = $adminSkin;
     $view->setAdminSection(true);
     /**
      * Check admin login
      */
     $phpSessionId = $request->getPost('PHPSESSID');
     $session = Gio_Core_Session::getSessionById($phpSessionId);
     $json = new Services_JSON();
     $user = null == $session || null == $session['data'] ? null : $json->decode($session['data']);
     $view->userLogin = $user;
     //return;
     $route = Gio_Core_Route::getCurrentRoute(true);
     if ((null == $user || !isset($user->username) || null == $user->username) && (null == $route || $route['name'] != 'core_auth_login')) {
         $return = $_SERVER['REQUEST_URI'];
         $return = $return ? rawurlencode(base64_encode($return)) : null;
         $link = $view->url('core_auth_login');
         if (strpos($link, '?') !== false) {
             $return = $return != null ? '&return=' . $return : null;
         } else {
             $return = $return != null ? '?return=' . $return : null;
         }
         header('Location: ' . $link . $return);
         exit;
     }
 }
コード例 #2
0
ファイル: Widget.php プロジェクト: piratevn/cms-gio
 protected function showAction()
 {
     $currRoute = Gio_Core_Route::getCurrentRoute();
     $routeName = $currRoute['name'];
     $defaults = $currRoute;
     $request = $this->getRequest();
     $this->view->lang = $request->getParam('lang');
     $links = array();
     if (isset($defaults['localization']['enable']) && 'true' == $defaults['localization']['enable'] && isset($defaults['localization']['identifier']['class'])) {
         $class = $defaults['localization']['identifier']['class'];
         $name = $defaults['localization']['identifier']['param'];
         /**
          * The DAO method used to get the model instance
          */
         $method = isset($defaults['localization']['identifier']['method']) ? $defaults['localization']['identifier']['method'] : 'getById';
         $id = Gio_Core_Request::getInstance()->getParam($name);
         $conn = Gio_Db_Connection::getConnection();
         $translationDao = new Modules_Core_Models_Mysql_Translation();
         $translationDao->setConnection($conn);
         $items = $translationDao->getItems($id, $class);
         $array = explode('_', $class);
         $array[] = $array[count($array) - 1];
         $array[count($array) - 2] = 'Mysql';
         $daoClass = implode('_', $array);
         $daoInstance = new $daoClass();
         $daoInstance->setConnection($conn);
         if ($items != null) {
             $config = Gio_Core_Config_Xml::getConfig('localization');
             $languages = $config->languages->details;
             foreach ($items as $item) {
                 if ($item['item_id'] == $id) {
                     continue;
                 }
                 $object = $daoInstance->{$method}($item['item_id']);
                 if ($object != null) {
                     $language = $item['language'];
                     if (isset($languages[$item['language']])) {
                         $info = explode('|', $languages[$item['language']]);
                         $language = $info[1];
                     }
                     $links[] = array('url' => $this->view->url($routeName, $object), 'label' => $language);
                 }
             }
         }
     }
     $this->view->assign('links', $links);
 }
コード例 #3
0
ファイル: Translator.php プロジェクト: piratevn/cms-gio
 private static function _getLang()
 {
     $route = Gio_Core_Route::getCurrentRoute(true);
     $configs = Gio_Core_Config_Xml::getConfig('web');
     $lang = $configs->language;
     if (isset($route['localization']['enable']) && $route['localization']['enable'] == true) {
         $request = Gio_Core_Request::getInstance();
         $lang = $request->getParam('lang');
     }
     return $lang;
 }
コード例 #4
0
ファイル: Application.php プロジェクト: piratevn/cms-gio
 public function run()
 {
     /**
      * Run Permalink Plugin 
      */
     $permalink = new Modules_Core_Controllers_Plugins_Permalink();
     call_user_func(array($permalink, 'run'));
     /**
      * Run LocalizationRoute Plugin 
      */
     $localizationRoute = new Gio_Core_Plugins_LocalizationRoute();
     call_user_func(array($localizationRoute, 'run'));
     /**
      * Run Install Checker
      */
     $currentRoute = Gio_Core_Route::getCurrentRoute();
     self::$_route = $currentRoute;
     $controllerFront = Gio_Core_Controller::getIntance();
     if ($currentRoute && $currentRoute['name'] != 'core_install_step1' && self::_initInstallChecker() === false) {
         $controllerFront->redirect($this->_view->url('core_install_step1'));
         return;
     }
     if (isset($currentRoute['module']) && isset($currentRoute['controller']) && isset($currentRoute['action'])) {
         if (self::_initInstallChecker() == true) {
             $csrf = new Gio_Core_Csrf($currentRoute['name']);
             if (!$csrf->authentication()) {
                 return;
             }
             $csrf->appendElement();
         }
         $controllerFront->setModuleName($currentRoute['module'])->setControllerName($currentRoute['controller'])->setActionName($currentRoute['action']);
         /**
          * Run Plugins First
          */
         if (self::_initInstallChecker() == true) {
             $this->_runPlugin();
         }
         $this->_view->CURRENT_ROUTE = $currentRoute['name'];
         $content = $controllerFront->dispatch();
         $this->_view->setLayoutContent($content);
         if (!Gio_Core_Controller::getIntance()->getDisableLayout()) {
             $layout = isset($this->_view->APP_LAYOUT) && $this->_view->APP_LAYOUT ? $this->_view->APP_LAYOUT : $controllerFront->getLayout();
             $layoutFile = TEMPLATE_DIR . DS . $this->_view->APP_TEMPLATE . DS . 'layouts' . DS . $layout . '.phtml';
             $this->_view->fetch($layoutFile);
         } else {
             $this->_view->content($content);
         }
     }
 }