Ejemplo n.º 1
0
 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;
 }
Ejemplo n.º 2
0
 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);
     }
 }
Ejemplo n.º 3
0
 */
/**
 * Check PHP version
 */
if (version_compare(phpversion(), '5.0.0', '<') === true) {
    die('ERROR: Your PHP version is ' . phpversion() . '. GioCMS requires PHP 5.0.0 or newer.');
}
@session_start();
ini_set("display_errors", 1);
error_reporting(E_ALL);
date_default_timezone_set('Asia/Saigon');
define('DS', DIRECTORY_SEPARATOR);
define('PS', PATH_SEPARATOR);
define('ROOT_DIR', dirname(__FILE__));
define('CONFIG_DIR', ROOT_DIR . DS . 'configs');
define('TEMP_DIR', ROOT_DIR . DS . 'temp');
define('TEMPLATE_DIR', ROOT_DIR . DS . 'templates');
define('LIB_DIR', ROOT_DIR . DS . 'libraries');
define('MOD_DIR', ROOT_DIR . DS . 'modules');
set_include_path(PS . LIB_DIR . DS . 'htmlpurifier' . PS . get_include_path());
require LIB_DIR . DS . 'gio' . DS . 'core' . DS . 'AutoLoader.php';
require LIB_DIR . DS . 'PEAR' . DS . 'Services' . DS . 'JSON.php';
/**
 * Set Exception Handler
 */
set_exception_handler(array('Gio_Core_Exception', 'exception'));
/**
 * Register plugin
 */
Gio_Core_Application::getInstance()->registerPlugin('Modules_Core_Controllers_Plugins_OfflineMessage')->registerPlugin('Modules_Core_Controllers_Plugins_AdminAuth')->registerPlugin('Modules_Core_Controllers_Plugins_RuleChecker')->registerPlugin('Modules_Core_Controllers_Plugins_HookLoader')->run();
Ejemplo n.º 4
0
 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');
 }
Ejemplo n.º 5
0
 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);
         }
     }
 }
Ejemplo n.º 6
0
 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;
         }
     }
 }