public function __construct($blocks = array()) { $this->setBlocks($blocks); $configs = Gio_Core_Config_Xml::getConfig(); /** * Not installed GioCMS */ if (!Gio_Core_Application::_initInstallChecker()) { $request = Gio_Core_Request::getInstance(); $configs->server->static = $request->getBaseUrl(); $configs->server->resource = $request->getBaseUrl(); $configs->web->url = $request->getBaseUrl(); } $this->APP_STATIC_SERVER = (string) $configs->server->static; $this->APP_RESOURCE_SERVER = (string) $configs->server->resource; $this->APP_WEB_URL = (string) $configs->web->url; $this->APP_WEB_NAME = (string) $configs->web->name; $this->APP_TEMPLATE = (string) $configs->web->template; $this->APP_SKIN = (string) $configs->web->skin; $this->APP_META_KEYWORD = (string) $configs->web->meta->keyword; $this->APP_META_DESCRIPTION = (string) $configs->web->meta->description; $defaultLanguage = (string) $configs->web->language; //$lang = Gio_Core_Request::getInstance()->getParam('lang'); //$this->APP_LANG = ($lang && $defaultLanguage != $lang) ? $lang : $defaultLanguage; $this->APP_LANG = $defaultLanguage; $routes = Gio_Core_Route::getInstance(); $this->routes = $routes; $string = Gio_Core_String::getInstance(); $this->STRING = $string; $translator = new Gio_Core_Translator(); $this->TRANSLATOR = $translator; if (Gio_Core_Application::_initInstallChecker() == true) { $acl = Gio_Core_Acl::getIntance(); $this->ACL = $acl; } $messenger = Gio_Core_Messenger::getInstance(); $this->MESSENGER = $messenger; if (Gio_Core_Application::_initInstallChecker()) { $user = Gio_Core_Session::getUser(); $this->USER = $user; } /** * JSON */ $json = new Services_JSON(); $this->JSON = $json; $this->CONFIG = $configs; }
public function run() { $request = Gio_Core_Request::getInstance(); $configs = Gio_Core_Config_Xml::getConfig(); $adminUrlPrefix = $configs->web->admin->url_prefix; $currentUri = $request->getRedirectUrl(); $baseUrl = $request->getBaseUrl(); $webUrl = Gio_Core_Application::_initInstallChecker() ? $configs->web->url : $baseUrl; $temp = str_replace($baseUrl, '', $webUrl); $rewrite = ''; $uri = $request->getRequestUri(); $serverName = $request->getServerName(); $serverPort = $request->getServerPort(); $serverPort = $serverPort == 80 ? '' : ':' . $serverPort; $uri = 'http://' . $serverName . $serverPort . $uri; $currentUrl = str_replace($webUrl, '', $uri); $uri = '/' . rtrim(ltrim($currentUrl, '/'), '/'); /** * We are in the front-end section * 7 is length of /admin/ */ if (!$adminUrlPrefix || substr($uri, 0, strlen($adminUrlPrefix) + 2) != "/{$adminUrlPrefix}/") { $paths = explode('/', ltrim($uri, '/')); $currLang = array_shift($paths); } else { $paths = explode('/', rtrim($uri, '/')); $currLang = array_pop($paths); } /** * Add language parameter. * Set the request URI if there is language in URI */ $languages = isset($configs->localization->languages->list) ? explode(',', $configs->localization->languages->list) : array($configs->localization->languages->default); if (in_array($currLang, explode(',', (string) $configs->localization->languages->list))) { $request->setParam('lang', $currLang); $path = implode('/', $paths); if ('' == $path) { $path = '/'; } $currentUri = str_replace('/' . $currLang, '', $currentUri); $request->setRedirectUrl(rtrim($currentUri, '/')); } else { $lang = $request->getParam('lang') != null ? $request->getParam('lang') : (string) $configs->web->language; $request->setParam('lang', $lang); } }
public static function getCurrentRoute($return = false) { $routes = self::getInstance()->getRoutes(); $request = Gio_Core_Request::getInstance(); $configs = Gio_Core_Config_Xml::getConfig(); $baseUrl = $request->getBaseUrl(); $webUrl = Gio_Core_Application::_initInstallChecker() ? $configs->web->url : $baseUrl; $temp = str_replace($baseUrl, '', $webUrl); $rewrite = ''; $uri = $request->getRequestUri(); if (null == $uri) { $currentUrl = ''; } else { $serverName = $request->getServerName(); $serverPort = $request->getServerPort(); $serverPort = $serverPort == 80 ? '' : ':' . $serverPort; $uri = 'http://' . $serverName . $serverPort . $uri; $currentUrl = str_replace($webUrl, '', $uri); $currentUrl = rtrim(ltrim($currentUrl, '/'), '/'); } foreach ($routes as $index => $route) { if (isset($route['url' . $rewrite])) { if (strtolower($route['type']) == 'regex') { $pattern = '/' . str_replace('/', '\\/', '^' . $route['url' . $rewrite]) . '$/'; $pattern = str_replace('?', '\\?', $pattern); $pattern = str_replace('###admin_url_prefix###', $configs->web->admin->url_prefix, $pattern); if (preg_match($pattern, $currentUrl, $matches)) { /** * Set params */ $params = isset($route['params']) ? (array) $route['params'] : null; if (!empty($params)) { foreach ($params as $key => $value) { $request->setParam($key, $matches[$value]); } } return $route; } else { continue; } } else { if (rtrim(str_replace('###admin_url_prefix###', $configs->web->admin->url_prefix, $route['url' . $rewrite]), '/') == $currentUrl) { return $route; break; } } } else { continue; } } if ($return) { return null; } Modules_Core_Services_Exception::error('ROUTE_NOT_FOUND'); }
public function step1Action() { /** * Remove all plugins */ Gio_Core_Application::getInstance()->removePlugins(); if (Gio_Core_Application::_initInstallChecker()) { $this->redirect($this->view->url('core_index_index')); } $this->setTemplate('admin'); $this->setLayout('install'); $request = $this->getRequest(); $configs = Gio_Core_Config_Xml::getConfig(); $request = Gio_Core_Request::getInstance(); if ((string) $configs->web->url != $request->getBaseUrl()) { $configs->server->static = $request->getBaseUrl(); $configs->server->resource = $request->getBaseUrl(); $configs->web->url = $request->getBaseUrl(); } $this->view->configs = $configs; $timezone = array('timezone' => array('date' => (string) $configs->timezone->date, 'datetime' => (string) $configs->timezone->datetime)); $localization = array('localization' => array('enable' => (string) $configs->localization->enable, 'languages' => array('default' => (string) $configs->localization->languages->default, 'list' => (string) $configs->localization->languages->list, 'details' => array()))); if ($configs->localization->languages->list != null) { $list = explode(',', $configs->localization->languages->list); foreach ($list as $value) { $localization['localization']['languages']['details'][$value] = (string) $configs->localization->languages->details->{$value}; } } $languagesFile = ROOT_DIR . DS . 'configs' . DS . 'languages.xml'; if (!file_exists($languagesFile)) { return; } $languagesXml = @simplexml_load_file($languagesFile); if (null == $languagesXml) { return; } $locales = array(); foreach ($languagesXml->language as $language) { $arr = explode('|', $language); $locales[$arr[0]] = array('code' => $arr[0], 'localName' => $arr[1], 'englishName' => $arr[2]); } $this->view->locales = $locales; if ($request->isPost()) { $act = $request->getPost('act'); switch ($act) { case 'testdbconn': $this->setNoRender(); $this->disableLayout(); $this->_testdbconn(); break; case '': default: $configs = $request->getPost('configs'); $data = Modules_Core_Services_Installer::validate($configs); if (isset($data['messages_error']) && $data['messages_error']) { $this->view->errorMessages = $data['messages']; $configs = Gio_Core_Array::toObject($configs); $this->view->configs = $configs; return; } $install = array('install' => array('version' => Gio_Core_Cms::getVersion(), 'date' => date('Y-m-d H:i:s'), 'author' => Gio_Core_Cms::getAuthor())); $configs = array_merge($configs, $install); $configs = array_merge($configs, $localization); $configs = array_merge($configs, $timezone); $content = utf8_decode(Gio_Core_Array::toXml($configs, 'config')); $fileName = Gio_Core_Config_Xml::getConfigFile(); Gio_Core_File::writeToFile($fileName, $content); $adminInfo = array('username' => 'admin', 'password' => '123456', 'email' => '*****@*****.**', 'fullname' => 'Ninhgio'); Modules_Core_Services_Installer::install(false, $adminInfo); $this->redirect($this->view->url('core_index_index')); break; } } }