Ejemplo n.º 1
0
 public function indexAction()
 {
     $this->view->phpVersion = phpversion();
     $this->view->databaseVersion = Gio_Db_Mysql::getInstance()->getVersion();
     $configs = Gio_Core_Config_Xml::getConfig('install');
     $this->view->installInformation = $configs;
     $modules = Modules_Core_Services_Module::getModulesInstalled();
     /**
      * Add module core to the top array 
      */
     $modules = array_pad($modules, -count($modules) - 1, array('module_id' => 'core'));
     $quickaccess = array();
     if ($modules) {
         foreach ($modules as $index => $module) {
             $aboutXml = MOD_DIR . DS . $module['module_id'] . DS . 'configs' . DS . 'about.xml';
             if (!file_exists($aboutXml)) {
                 continue;
             }
             $aboutXml = @simplexml_load_file($aboutXml);
             $items = isset($aboutXml->admin->quickaccess->item) ? $aboutXml->admin->quickaccess->item : null;
             if ($items) {
                 foreach ($items as $item) {
                     $data = array();
                     $data['module'] = $module['module_id'];
                     $data['route'] = $item->route;
                     $data['lang_key'] = $item->lang_key;
                     $data['thumbnail'] = $item->thumbnail;
                     $quickaccess[] = $data;
                 }
             }
         }
     }
     $this->view->quickaccess = $quickaccess;
 }
Ejemplo n.º 2
0
 public function getLang()
 {
     $request = Gio_Core_Request::getInstance();
     $lang = $request->getParam('lang');
     $this->_lang = $lang;
     $this->_lang = null == $this->_lang ? Gio_Core_Config_Xml::getConfig('web')->language : $this->_lang;
     return $this->_lang;
 }
Ejemplo n.º 3
0
 public static function _initInstallChecker()
 {
     $configs = Gio_Core_Config_Xml::getConfig('install');
     //$route = Gio_Core_Route::getCurrentRoute();
     if (null == $configs || !isset($configs->date) || null == (string) $configs->date || (string) $configs->date == '') {
         return false;
     }
     return true;
 }
Ejemplo n.º 4
0
 public static function error($code = 'DATA_NOT_FOUND', $message = null)
 {
     $configs = Gio_Core_Config_Xml::getConfig('web');
     $request = Gio_Core_Request::getInstance();
     $request->setParam('code', $code);
     $request->setParam('message', $message);
     $request->setParam('__GIOCMS_ERROR__', true);
     $content = Gio_Core_Controller::getIntance()->setTemplate($configs->admin->template)->setLayout('message')->setModuleName('core')->setControllerName('exception')->setActionName('error')->dispatch(true);
     Gio_Core_Response::getInstance()->setBody($content);
 }
Ejemplo n.º 5
0
 public function configAction()
 {
     $request = $this->getRequest();
     $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;
     $this->view->availableLanguages = array();
     $configs = Gio_Core_Config_Xml::getConfig();
     $this->view->configs = $configs;
     $default = isset($configs->localization->languages->default) ? $configs->localization->languages->default : $configs->web->language;
     $available = isset($configs->localization->languages->list) ? explode(',', $configs->localization->languages->list) : array($default);
     $this->view->availableLanguages = $available;
     if ($request->isPost()) {
         $localizationEenable = $request->getPost('localization_enable') != null ? 'true' : 'false';
         $default = $request->getPost('default_language');
         $available = $request->getPost('supported_languages');
         $listLangs = array($default);
         if ($available != null) {
             foreach ($available as $index => $locale) {
                 if ($locale != $default) {
                     $listLangs[] = $locale;
                 }
             }
         }
         $configs->web->language = $default;
         $configs->localization->enable = $localizationEenable;
         $configs->localization->languages->default = $default;
         $configs->localization->languages->list = implode(',', $listLangs);
         /**
          * Reset language details
          */
         $configs->localization->languages->details = null;
         foreach ($listLangs as $lang) {
             $configs->localization->languages->details->{$lang} = implode('|', array($locales[$lang]['code'], $locales[$lang]['localName'], $locales[$lang]['englishName']));
         }
         $configFile = Gio_Core_Config_Xml::getConfigFile();
         $content = $configs->asXML();
         $fileName = Gio_Core_Config_Xml::getConfigFile();
         Gio_Core_File::writeToFile($fileName, $content);
         Gio_Core_Messenger::getInstance()->addMessage($this->view->TRANSLATOR->translator('locale_actions_config_success'));
         $this->redirect($this->view->url('core_locale_config'));
     }
 }
Ejemplo n.º 6
0
 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;
     }
 }
Ejemplo n.º 7
0
 public function setAction()
 {
     $request = $this->getRequest();
     $this->disableLayout();
     $this->setNoRender();
     $templateName = $request->getPost('template_id');
     if (!$request->isPost() || !$templateName) {
         $this->getResponse()->setBody('RESULT_NOT_OK');
     }
     $configs = Gio_Core_Config_Xml::getConfig();
     $configs->web->template = $templateName;
     $content = $configs->asXML();
     $fileName = Gio_Core_Config_Xml::getConfigFile();
     Gio_Core_File::writeToFile($fileName, $content);
     $this->getResponse()->setBody('RESULT_OK');
 }
Ejemplo n.º 8
0
 /**
  * @param array $links
  * @param string $lang
  * @return array
  */
 public static function filter($content, $webId = null)
 {
     switch ($webId) {
         case 'vnexpress':
             $content = str_replace('file","/', 'file","http://vnexpress.net/', $content);
             $content = str_replace('SWFObject("', 'SWFObject("http://vnexpress.net', $content);
             //$content = str_replace('playlistfile=/', 'playlistfile=http://vnexpress.net/', $content);
             $content = str_replace("swfobject.embedSWF('", "swfobject.embedSWF('http://vnexpress.net", $content);
             $content = str_replace('/Service/FlashVideo/Playlist2.asp?Id=', 'http://vnexpress.net/Service/FlashVideo/Playlist2.asp?Id=', $content);
             $content = str_replace('"skin","/Library/Common/AdsPlayer/classic/classic.xml"', '"skin","http://vnexpress.net/Library/Common/AdsPlayer/classic/classic.xml"', $content);
             $content = str_replace('skin=/Library/Common/AdsPlayer/classic/classic.xml', 'skin=http://vnexpress.net/Library/Common/AdsPlayer/classic/classic.xml', $content);
             $content = str_replace('http://vnexpress.nethttp', 'http', $content);
             break;
         case 'ngoisao':
             $content = str_replace('file","/', 'file","http://ngoisao.net', $content);
             $content = str_replace('SWFObject("', 'SWFObject("http://ngoisao.net', $content);
             $content = str_replace("swfobject.embedSWF('", "swfobject.embedSWF('http://ngoisao.net", $content);
             $content = str_replace('/Service/FlashVideo/Playlist2.asp?Id=', 'http://ngoisao.net/Service/FlashVideo/Playlist2.asp?Id=', $content);
             break;
         case 'thethaovanhoa':
             $content = str_replace('/images/mediaplayer.swf', 'http://thethaovanhoa.vn/images/mediaplayer.swf', $content);
             $content = str_replace('/scripts/swfobject', 'http://thethaovanhoa.vn/scripts/swfobject', $content);
             break;
         case 'haisao':
         case 'bongda':
         case 'nguoilaodong':
             require_once LIB_DIR . DS . 'htmlpurifier' . DS . 'HTMLPurifier.auto.php';
             $purifier = new HTMLPurifier();
             $content = $purifier->purify($content);
             break;
         case 'haitugio':
             $configs = Gio_Core_Config_Xml::getConfig('web');
             $content = str_replace('//<![CDATA[', '', $content);
             $content = str_replace('//]]>', '', $content);
             $content = str_replace('flashWrite("/', 'flashWrite("' . $configs->url . '/flash.php?url=http://24h.com.vn/', $content);
             //$content = str_replace('500', '480', $content);
             //$content = str_replace('477', '400', $content);
             break;
         case 'zing':
             $content = '<script type="text/javascript">o_ChannelRoot = null;</script>' . $content;
             break;
     }
     if ($webId) {
         $content = Gio_Core_String::stripTags($content, array('a'));
     }
     return $content;
 }
Ejemplo n.º 9
0
 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);
 }
Ejemplo n.º 10
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.º 11
0
 public static function add($page)
 {
     $conn = Gio_Db_Connection::getConnection();
     $pageDao = new Modules_Core_Models_Mysql_Page();
     $pageDao->setConnection($conn);
     /**
      * Create route layout
      */
     $configs = Gio_Core_Config_Xml::getConfig('web');
     $filename = $page['route'] . '.phtml';
     $file = TEMPLATE_DIR . DS . $configs->template . DS . 'layouts' . DS . $filename;
     $content = null;
     if (file_exists($file)) {
         $content = file_get_contents($file);
     }
     Gio_Core_File::writeToFile($file, $content);
     return $pageDao->add($page);
 }
Ejemplo n.º 12
0
 public function run()
 {
     $request = Gio_Core_Request::getInstance();
     $configs = Gio_Core_Config_Xml::getConfig('web');
     $adminPrefixUrl = $configs->admin->prefix_url;
     $currentUri = $request->getRequestUri();
     /**
      * 7 is length of /admin/
      */
     if (!$adminPrefixUrl || substr($currentUri, 0, 7) != "/{$adminPrefixUrl}/") {
         return;
     }
     //$ips = explode(',', $ips);
     //$ip = $request->getClientIp();
     //if (in_array($ip, $ips)) {
     $controllerFront = Gio_Core_Controller::getIntance();
     $controllerFront->setTemplate('admin');
     //}
 }
Ejemplo n.º 13
0
 protected function showAction()
 {
     $request = $this->getRequest();
     $type = $this->getParam('locale_type', 'full');
     $configs = Gio_Core_Config_Xml::getConfig();
     if (!isset($configs->localization->enable) || 'false' == $configs->localization->enable) {
         return;
     }
     /**
      * Get base URL (http://localhost/gio_cms)
      */
     $baseUrl = rtrim($request->getBaseUrl(), '/');
     $links = array();
     $arrayDetails = (array) $configs->localization->languages->details;
     foreach ($arrayDetails as $locale => $details) {
         $array = explode('|', (string) $details);
         $links[$locale] = array('href' => $baseUrl . '/' . $locale, 'localName' => $array[1], 'englishName' => $array[2]);
     }
     $this->view->type = $type;
     $this->view->links = $links;
 }
Ejemplo n.º 14
0
 public static function load($module, $name, $action, $params = array(), $cacheEnable = false, $cacheTimeout = 0)
 {
     $configs = Gio_Core_Config_Xml::getConfig('web');
     $widgetContent = Gio_Core_Widget::getIntance()->setTemplate($configs->template)->setModuleName($module)->setWidgetName($name)->setActionName($action)->setCacheEnable($cacheEnable)->setCacheTimeout($cacheTimeout)->setParams($params)->dispatch();
     $view = Gio_Core_View::getInstance();
     $return = array('title' => '', 'cssFiles' => array(), 'jsFiles' => array(), 'jsScripts' => array(), 'content' => '');
     $search = array('{APP_WEB_URL}', '{APP_STATIC_SERVER}', '{WIDGET_URL}');
     $replace = array($view->APP_WEB_URL, $view->APP_STATIC_SERVER, $view->APP_STATIC_SERVER . '/modules/' . strtolower($module) . '/widgets/' . strtolower($name));
     if ($action != 'config') {
         /**
          * Gets widget resources that are defined in widget information file
          */
         $file = ROOT_DIR . DS . 'modules' . DS . strtolower($module) . DS . 'widgets' . DS . strtolower($name) . DS . 'about.xml';
         if (file_exists($file)) {
             $config = @simplexml_load_file($file);
             if ($resources = $config->resources) {
                 if ($resources = $resources->resource) {
                     foreach ($resources as $resource) {
                         $attr = $resource->attributes();
                         switch ((string) $attr['type']) {
                             case 'css':
                                 $return['cssFiles'][] = str_replace($search, $replace, (string) $attr['src']);
                                 break;
                             case 'javascript':
                                 $return['jsFiles'][] = str_replace($search, $replace, (string) $attr['src']);
                                 break;
                         }
                     }
                 }
             }
         }
     }
     $return['content'] = $widgetContent;
     $pattern = '/<script[^>]*>(.*)<\\/script>$/is';
     if (preg_match_all($pattern, $widgetContent, $matches)) {
         $return['jsScripts'] = $matches[1];
         $return['content'] = str_replace($matches[1], '', $widgetContent);
     }
     return $return;
 }
Ejemplo n.º 15
0
 /**
  * @return Gio_Db_Mysql
  */
 public function __construct($instance = false)
 {
     if ($instance) {
         return $this;
     }
     $configs = Gio_Core_Config_Xml::getConfig('db');
     $this->_host = $configs->host;
     $this->_username = $configs->username;
     $this->_password = $configs->password;
     $this->_dbName = $configs->name;
     $this->_port = $configs->port;
     $this->_tablePrefix = $configs->table_prefix;
     $host = $this->_port != null ? $this->_host . ':' . $this->_port : $this->_host;
     $link = null;
     $connected = false;
     $connected = mysql_pconnect($host, $this->_username, $this->_password, $link) or die('Cannot connect to Database!');
     $this->_connected = $connected;
     $this->_link = $link;
     mysql_select_db($this->_dbName, $connected);
     mysql_query(sprintf("SET CHARACTER SET '%s'", mysql_real_escape_string($configs->encoding)));
     return self::$_instance = $this;
 }
Ejemplo n.º 16
0
 public function run()
 {
     $request = Gio_Core_Request::getInstance();
     $configs = Gio_Core_Config_Xml::getConfig('web');
     /**
      * Do nothing if we are in page of managing permalink
      */
     $uri = $request->getRequestUri();
     $uri = strtolower($uri);
     $uri = rtrim($uri, '/') . '/';
     $adminPrefix = $configs->admin->url_prefix;
     $adminPrefix = rtrim(ltrim($adminPrefix, '/'), '/');
     if (is_int(strpos($uri, '/' . $adminPrefix . '/core/permalink'))) {
         return;
     }
     $defaultFile = ROOT_DIR . DS . 'configs' . DS . 'permalink.xml';
     $host = $request->getServerName();
     $host = substr($host, 0, 3) == 'www' ? substr($host, 4) : $host;
     $file = ROOT_DIR . DS . 'configs' . DS . $host . '.' . 'permalink.xml';
     $file = file_exists($file) ? $file : $defaultFile;
     if (!file_exists($file)) {
         return;
     }
     $route = Gio_Core_Route::getInstance();
     $config = @simplexml_load_file($file);
     if (!isset($config->item) || empty($config->item)) {
         return;
     }
     $categoryConfig = Gio_Core_Module::getConfig('category');
     $param = isset($categoryConfig['url']['param']) ? $categoryConfig['url']['param'] : 'category_id';
     foreach ($config->item as $index => $item) {
         $item = (array) $item;
         if (!in_array($item['name'], $this->_inArray)) {
             $route->setRoute($item['name'], $item);
         } elseif ($param == 'category_path' && in_array($item['name'], $this->_inArray)) {
             $route->setRoute($item['name'], $item);
         }
     }
 }
Ejemplo n.º 17
0
 public function run()
 {
     $controller = Gio_Core_Controller::getIntance();
     $view = Gio_Core_View::getInstance();
     $configs = Gio_Core_Config_Xml::getConfig('web');
     if ($view->APP_TEMPLATE != (string) $configs->admin->template) {
         return;
     }
     $moduleId = $controller->getModuleName();
     /**
      * Check Module Installed
      */
     if ($moduleId != $this->_coreModule && null == Modules_Core_Services_Module::getById($moduleId)) {
         Modules_Core_Services_Exception::error('PERMISSION_DENY');
         return;
     }
     $ruleChecker = Gio_Core_Acl::getIntance();
     $actionId = $controller->getActionName();
     $controllerId = $controller->getControllerName();
     if ($ruleChecker->isAllowed($actionId, $controllerId, $moduleId) === false) {
         Modules_Core_Services_Exception::error('PERMISSION_DENY');
     }
 }
Ejemplo n.º 18
0
 /**
  * Get all translation items of given item
  * 
  * @param Gio_Core_Model $dao
  * @param array $item
  * @return array
  */
 public static function translationItems($item, $daoInstance)
 {
     $configs = Gio_Core_Config_Xml::getConfig();
     if (!isset($configs->localization->languages->list) || $configs->localization->languages->list == $configs->web->language) {
         return array();
     }
     /**
      * Create DAO instance based on the item class
      */
     $conn = Gio_Db_Connection::getConnection();
     $daoInstance->setConnection($conn);
     $result = array();
     foreach (explode(',', $configs->localization->languages->list) as $lang) {
         $result[$lang] = null;
     }
     $translations = $daoInstance->getTranslations($item);
     if ($translations != null) {
         foreach ($translations as $translation) {
             $result[$translation['language']] = $translation;
         }
     }
     return $result;
 }
Ejemplo n.º 19
0
 public static function getLinks($lang = null)
 {
     if (null == $lang) {
         $lang = Gio_Core_Config_Xml::getConfig('web')->language;
     }
     $view = Gio_Core_View::getInstance();
     $router = Gio_Core_Route::getInstance();
     $results = array();
     $links = array();
     /**
      * Add the homepage link
      */
     $links['core_index_index'][] = array('href' => $view->url('core_index_index', array('language' => $lang)));
     $links = Gio_Core_Hook_Registry::getInstance()->executeFilter('Core_LinkProvider', $links, array($lang));
     foreach ($links as $routeName => $value) {
         /**
          * Get route description
          */
         $defaults = $router->getRoute($routeName);
         $description = isset($defaults['langKey']) ? $view->TRANSLATOR->translator($defaults['langKey'], $defaults['module'], $lang) : $routeName;
         $results[$routeName] = array('description' => $description, 'links' => $value);
     }
     return $results;
 }
Ejemplo n.º 20
0
 public function run()
 {
     $request = Gio_Core_Request::getInstance();
     $configs = Gio_Core_Config_Xml::getConfig('web');
     $adminPrefixUrl = $configs->admin->url_prefix;
     $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}/") {
         if (isset($configs->offline->enable) && (string) $configs->offline->enable == 'true') {
             $message = isset($configs->offline->message) ? $configs->offline->message : null;
             Modules_Core_Services_Exception::error('OFFLINE_MESSAGE');
         }
     }
 }
Ejemplo n.º 21
0
 public function forgotpasswordAction()
 {
     $configs = Gio_Core_Config_Xml::getConfig('web');
     $this->setTemplate($configs->admin->template);
     $this->setLayout('forgotpassword');
     $request = $this->getRequest();
     if ($request->isPost()) {
         $email = $request->getPost('email');
         if (!$email) {
             $this->view->error = $this->view->TRANSLATOR->translator('user_forgotpassword_email_notnull');
             return;
         }
         $user = Modules_Core_Services_User::checkEmailExist($email);
         if (null == $user) {
             $this->view->error = $this->view->TRANSLATOR->translator('user_forgotpassword_email_notexist');
             return;
         }
         $code = Gio_Core_String::generateString(50);
         $user['code'] = $code;
         Modules_Core_Services_User::update($user);
         Modules_Core_Services_User::sendPassword($user['username'], $user['email'], $code);
         Gio_Core_Messenger::getInstance()->addMessage($this->view->TRANSLATOR->translator('user_forgotpassword_send_success'));
         $this->redirect($this->view->url('core_user_forgotpassword'));
     }
 }
Ejemplo n.º 22
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.º 23
0
 public function configAction()
 {
     $request = $this->getRequest();
     $configs = Gio_Core_Config_Xml::getConfig();
     $this->view->configs = $configs;
     $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;
             default:
                 $version = isset($configs->install->version) ? $configs->install->version : Gio_Core_Cms::getVersion();
                 $date = isset($configs->install->date) ? $configs->install->date : date('Y-m-d H:i:s');
                 $author = isset($configs->install->author) ? (array) $configs->install->author : Gio_Core_Cms::getAuthor();
                 $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())));
                 $timezone = array('timezone' => array('date' => (string) $configs->timezone->date, 'datetime' => (string) $configs->timezone->datetime));
                 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};
                     }
                 }
                 $configs = $request->getPost('configs');
                 $localization['localization']['languages']['default'] = $configs['web']['language'];
                 $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' => $version, 'date' => $date, 'author' => $author));
                 $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);
                 Gio_Core_Messenger::getInstance()->addMessage($this->view->TRANSLATOR->translator('website_actions_config_success'));
                 $this->redirect($this->view->url('core_website_config'));
                 break;
         }
     }
 }
Ejemplo n.º 24
0
    public static function getSessionById($sessionId = null, $session = null)
    {
        $configs = Gio_Core_Config_Xml::getConfig('session');
        $sessionId = $sessionId ? $sessionId : self::getId();
        $mysql = new Gio_Db_Mysql();
        /**
         * Clear Session Expried
         */
        $sql = 'DELETE FROM ' . $mysql->_tablePrefix . 'core_session
					WHERE last_update + lifetime < ' . strtotime(date('Y-m-d H:i:s'));
        $rs = $mysql->query($sql);
        $mysql->freeResult($rs);
        /**
         * Update Session Status
         */
        $sql = 'UPDATE ' . $mysql->_tablePrefix . 'core_session
				SET status = "inactive"
				WHERE last_update + inactive_time < ' . strtotime(date('Y-m-d H:i:s'));
        $rs = $mysql->query($sql);
        $mysql->freeResult($rs);
        /**
         * 
         */
        $sql = 'SELECT * FROM ' . $mysql->_tablePrefix . 'core_session 
						WHERE session_id = "' . $mysql->escape($sessionId) . '" LIMIT 1';
        $rs = $mysql->query($sql);
        $row = 0 == $mysql->count($rs) ? null : $mysql->fetchAll($rs);
        $json = new Services_JSON();
        if (null == $row) {
            $request = Gio_Core_Request::getInstance();
            $session = array('session_id' => $sessionId, 'data' => null, 'created_date' => time(), 'last_update' => time(), 'lifetime' => isset($configs->lifetime) ? $configs->lifetime : 3600, 'inactive_time' => isset($configs->inactive) ? $configs->inactive : 120, 'ip' => $request->getRemoteIp());
            $mysql->insert($session, $mysql->_tablePrefix . 'core_session');
            return $session;
        }
        self::lastUpdate(time(), $row['session_id']);
        if ($session != null) {
            self::update($session['data'], $session['session_id']);
            return $session;
        }
        return $row;
    }
Ejemplo n.º 25
0
 public function myopenidAction()
 {
     $this->disableLayout();
     $this->setNoRender();
     $request = Gio_Core_Request::getInstance();
     $this->setLayout('login');
     require_once LIB_DIR . DS . 'openid' . DS . 'class.openid.v2.php';
     if ($request->isPost()) {
         $openidUrl = $request->getPost('openid_url');
         $openidUrl = rtrim($openidUrl, '/');
         $openid = new OpenIDService();
         $openid->SetIdentity($openidUrl);
         $openid->SetTrustRoot($request->getBaseUrl());
         $openid->SetRequiredFields(array('email', 'fullname'));
         $openid->SetOptionalFields(array('dob', 'gender', 'country'));
         if ($openid->GetOpenIDServer()) {
             $openid->SetApprovedURL($this->view->url('core_auth_myopenid'));
             $openid->Redirect();
         } else {
             $error = $openid->GetError();
             $error_code = $error["code"];
             $error_string = $error["description"];
         }
     } elseif ($request->getParam('openid_mode') == 'id_res') {
         $openid = new OpenIDService();
         $openidUrl = $request->getParam('openid_identity');
         $openidUrl = rtrim($openidUrl, '/');
         $openid->SetIdentity($openidUrl);
         $openid_validation_result = $openid->ValidateWithServer();
         /**
          * Login success
          */
         if ($openid_validation_result == true) {
             $user = Modules_Core_Services_User::getByOpenID($openidUrl);
             if ($user) {
                 $user['last_login'] = date('Y-m-d H:i:s');
                 Modules_Core_Services_User::setLastLogin($user);
                 $configs = Gio_Core_Config_Xml::getConfig('session');
                 $json = new Services_JSON();
                 $sessionId = session_id();
                 $session = array('session_id' => $sessionId, 'created_date' => strtotime(date('Y-m-d H:i:s')), 'last_update' => strtotime(date('Y-m-d H:i:s')), 'lifetime' => isset($configs->lifetime) ? $configs->lifetime : 3600, 'inactive_time' => isset($configs->inactive_time) ? $configs->inactive_time : 120, 'data' => $json->encodeUnsafe($user), 'status' => 'active');
                 Gio_Core_Session::add($session);
                 $this->redirect($this->view->url('core_dashboard_index'));
             }
         }
     }
 }
Ejemplo n.º 26
0
 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;
 }
Ejemplo n.º 27
0
 public static function translatablePage($attributes = array(), $lang = null)
 {
     $json = new Services_JSON();
     $defaultLang = (string) Gio_Core_Config_Xml::getConfig('web')->language;
     $lang = null == $lang ? $defaultLang : $lang;
     $elementDisabled = null == $lang || $lang == $defaultLang ? ' disabled="disabled"' : '';
     $attributes['selected'] = isset($attributes['selected']) ? $attributes['selected'] : null;
     $attributes['disabled'] = isset($attributes['disabled']) ? $attributes['disabled'] : null;
     $pages = self::getTranslatable($lang);
     $output = sprintf("<select name='%s' id='%s' viewHelperClass='%s' viewHelperAttributes='%s'%s>", $attributes['name'], $attributes['id'], 'Modules_Page_Services_Page::translatablePage', $json->encodeUnsafe($attributes), $elementDisabled) . self::EOL . '<option value=\'{"id": "", "language": ""}\'>---</option>' . self::EOL;
     foreach ($pages as $page) {
         $disabled = 0 == (int) $page['translatable'] && (0 == (int) $attributes['disabled'] && $page['page_id'] != (int) $attributes['selected'] || (int) $attributes['disabled'] == (int) $attributes['selected']) ? ' disabled="disabled"' : '';
         $selected = $elementDisabled == '' && $disabled == '' && (int) $page['page_id'] == (int) $attributes['selected'] ? ' selected="selected"' : '';
         $output .= sprintf("<option value='%s'%s%s>%s</option>", $json->encodeUnsafe(array('id' => $page['page_id'], 'language' => $defaultLang)), $selected, $disabled, str_repeat('---', $page['depth']) . $page['name']) . self::EOL;
     }
     $output .= '</select>' . self::EOL;
     return $output;
 }
Ejemplo n.º 28
0
 private function _haitugio($article)
 {
     ini_set("max_execution_time", 100);
     ini_set("memory_limit", "256M");
     $website = 'http://www.24h.com.vn';
     if (isset($article['link_source']) && $article['link_source']) {
         $html = null;
         if (($htmlString = @file_get_contents($article['link_source'])) === false) {
             return $article;
         }
         $configs = Gio_Core_Config_Xml::getConfig();
         $html = str_get_html($htmlString);
         $video = false;
         $pageContent = $html->find('div.content-center', 0);
         if (!isset($pageContent->innertext) || null == $pageContent->innertext) {
             $pageContent = $html->find('div.content-center_video', 0);
             $video = true;
         }
         if (null == $pageContent) {
             return;
         }
         $container = $pageContent->find('.baiviet-container', 0);
         if (!isset($container->innertext) || null == $container->innertext) {
             $container = $pageContent->find('.baiviet-TopContent', 0);
             if (null == $container) {
                 return;
             }
             $container = $container->find('div.video_container', 0);
             $video = true;
         }
         if ($container) {
             $content = $container->innertext;
             $tags = $container->find('div.baiviet-tags', 0);
             if (isset($tags->outertext)) {
                 $content = str_replace($tags->outertext, '', $content);
             }
             $content = preg_replace('/(http:\\/\\/img)(.*)/i', rtrim($configs->web->url, '/') . '/flash.php?url=$1$2', $content);
             $content = str_replace('file=/upload/', 'file=' . $website . '/upload/', $content);
             $content = str_replace(',/upload/', ',' . $website . '/upload/', $content);
             $relates = $container->find('div.box-bai-lien-quan-ngang', 0);
             if (isset($relates->outertext)) {
                 $content = str_replace($relates->outertext, '', $content);
             }
             $content = '<div><b>' . $article['description'] . '</b></div>' . $content;
             $htmlContent = str_get_html($content);
             $image = $htmlContent->find('img');
             if (count($image) > 0) {
                 for ($i = 0; $i < count($image); $i++) {
                     if (strpos($image[$i]->src, '../') !== false) {
                         $newSrc = rtrim($configs->web->url, '/') . '/images.php?url=' . $website . '/' . str_replace('../', '', $image[$i]->src);
                         $content = str_replace($image[$i]->src, $newSrc, $content);
                     } else {
                         $newSrc = rtrim($configs->web->url, '/') . '/images.php?url=' . $image[$i]->src;
                         $content = str_replace($image[$i]->src, $newSrc, $content);
                     }
                 }
             }
             $htmlContent = str_get_html($content);
             $div = $htmlContent->find('div');
             if (isset($div[count($div) - 1]->outertext)) {
                 $content = str_replace($div[count($div) - 1]->outertext, '', $content);
             }
             $tables = $htmlContent->find('table');
             for ($i = 0; $i < count($tables); $i++) {
                 $content = str_replace($tables[$i]->outertext, '', $content);
             }
             $linksExternal = $htmlContent->find('.linkexternal');
             for ($i = 0; $i < count($linksExternal); $i++) {
                 $content = str_replace($linksExternal[$i]->outertext, '', $content);
             }
             $linksExternal = $htmlContent->find('.link_external');
             for ($i = 0; $i < count($linksExternal); $i++) {
                 $content = str_replace($linksExternal[$i]->outertext, '', $content);
             }
             $image = $htmlContent->find('img');
             $article['content'] = $content;
             $article['article_video'] = (int) $video;
             $article['image_url'] = count($image) > 1 ? $image[0]->src : $article['image_url'];
         }
     }
     return $article;
 }
Ejemplo n.º 29
0
    /**
     * Display select box listing all articles
     * which haven't been translated from the default language
     * 
     * @param $attributes array
     * @param string $lang
     * @return string
     */
    public static function translatableArticle($attributes = array(), $lang = null)
    {
        $limit = isset($attributes['limit']) ? $attributes['limit'] + 10 : 10;
        $attributes['limit'] = $limit;
        $view = Gio_Core_View::getInstance();
        $json = new Services_JSON();
        $defaultLang = (string) Gio_Core_Config_Xml::getConfig('web')->language;
        $lang = null == $lang ? $defaultLang : $lang;
        $elementDisabled = null == $lang || $lang == $defaultLang ? ' disabled="disabled"' : '';
        $attributes['selected'] = isset($attributes['selected']) ? $attributes['selected'] : null;
        $attributes['disabled'] = isset($attributes['disabled']) ? $attributes['disabled'] : null;
        $articles = self::getTranslatable($lang, $limit, $attributes['selected']);
        $output = sprintf("<select name='%s' id='%s' viewHelperClass='%s' viewHelperAttributes='%s'%s>", $attributes['name'], $attributes['id'], 'Modules_News_Services_Article::translatableArticle', $json->encodeUnsafe($attributes), $elementDisabled) . self::EOL . '<option value=\'{"id": "", "language": ""}\'>---</option>' . self::EOL;
        foreach ($articles as $article) {
            $disabled = 0 == (int) $article['translatable'] && (0 == (int) $attributes['disabled'] && $article['article_id'] != (int) $attributes['selected'] || (int) $attributes['disabled'] == (int) $attributes['selected']) ? ' disabled="disabled"' : '';
            $selected = $elementDisabled == '' && $disabled == '' && (int) $article['article_id'] == (int) $attributes['selected'] ? ' selected="selected"' : '';
            $output .= sprintf("<option value='%s'%s%s>%s</option>", $json->encodeUnsafe(array('id' => $article['article_id'], 'language' => $defaultLang)), $selected, $disabled, $article['title']) . self::EOL;
        }
        $output .= '<option value="">' . $view->TRANSLATOR->translator('helper_translatable_article_more', 'news') . '</option>';
        $output .= '</select>' . self::EOL;
        $id = $attributes['id'];
        $url = $view->url('core_locale_viewhelper');
        $scripts = <<<END
\t\t<script type="text/javascript">
\t\t\t\$(document).ready(function() {
\t\t\t\t\$('#{$id}').change(function() {
\t\t\t\t\tif (\$(this).val() != '') {
\t\t\t\t\t\treturn;
\t\t\t\t\t}
\t\t\t
\t\t\t\t\t/**
\t\t\t\t\t * Load more articles
\t\t\t\t\t */
\t\t\t\t\tvar self   = this;
\t\t\t\t\tvar parent = \$(self).parent(); 
\t\t\t\t\t\$(parent).addClass('g_a_ajax_loading');
\t\t\t\t\t
\t\t\t\t\t\$.ajaxq('Core_View_Helper_LanguageSelector', {
\t\t\t\t\t\turl: '{$url}',
\t\t\t\t\t\ttype: 'POST',
\t\t\t\t\t\tdata: {
\t\t\t\t\t\t\tid: \$(self).attr('id'), 
\t\t\t\t\t\t\tname: \$(self).attr('name'), 
\t\t\t\t\t\t\tlanguage: '{$lang}',
\t\t\t\t\t\t\tviewHelperClass: \$(self).attr('viewHelperClass'), 
\t\t\t\t\t\t\tviewHelperAttributes: \$(self).attr('viewHelperAttributes') 
\t\t\t\t\t\t},
\t\t\t\t\t\tsuccess: function(response) {
\t\t\t\t\t\t\t\$(parent).html(response).removeClass('g_a_ajax_loading');
\t\t\t
\t\t\t\t\t\t\t/**
\t\t\t\t\t\t\t * Disable source items element if user select the default language
\t\t\t\t\t\t\t */
\t\t\t\t\t\t\tif ('{$lang}' == '{$defaultLang}') {
\t\t\t\t\t\t\t\t\$(self).attr('disabled', 'disabled').find('option:selected').removeAttr('selected');
\t\t\t\t\t\t\t} else {
\t\t\t\t\t\t\t\t\$(self).removeAttr('disabled');
\t\t\t\t\t\t\t}
\t\t\t\t\t\t}
\t\t\t\t\t});
\t\t\t\t});
\t\t\t});
\t\t</script>
END;
        return $output . $scripts;
    }
Ejemplo n.º 30
0
 public function dispatch()
 {
     $cacheType = 'widgets';
     $request = $this->_request;
     /**
      * XML
      */
     $xmlFilename = array($this->_module, $this->_widget, $this->_action);
     $xmlFilename = implode('_', $xmlFilename);
     /**
      * Check file html cache 
      */
     $globalConfig = Gio_Core_Config_Xml::getConfig();
     $configs = Gio_Core_Config_Xml::getConfig('cache');
     $checkCache = false;
     if ($configs->enable == 'true' && $this->_cacheEnable == true) {
         $cacheName = $xmlFilename;
         $postParams = $request->getPostParams();
         $getParams = $request->getParams();
         $widgetParams = $this->_params;
         $json = new Services_JSON();
         $cacheParams = !empty($postParams) ? base64_encode($json->encodeUnsafe($postParams)) : null;
         $cacheParams = !empty($getParams) ? base64_encode($json->encodeUnsafe($getParams)) : null;
         $cacheParams = !empty($widgetParams) ? base64_encode($json->encodeUnsafe($widgetParams)) : null;
         $cacheKey = md5($cacheName . $this->_template . $cacheParams . base64_encode($json->encodeUnsafe($globalConfig)));
         $cacheTimeout = $this->_cacheTimeout ? $this->_cacheTimeout : 3600;
         /**
          * Create html file cache
          */
         if ($checkCache = Gio_Core_Cache::isCached($cacheType, $cacheKey, $cacheTimeout)) {
             $html = $this->view->render(Gio_Core_Cache::_generateFileName($cacheType, $cacheKey));
             return $html;
         }
     }
     /**
      * Localization config 
      */
     $aboutFile = ROOT_DIR . DS . 'modules' . DS . $this->_module . DS . 'widgets' . DS . $this->_widget . DS . 'about.xml';
     if (file_exists($aboutFile)) {
         $info = @simplexml_load_file($aboutFile);
         $localization = $info->localization['enable'];
         if ($localization != null && 'true' == (string) $localization) {
             $idClass = (string) $info->localization->identifier['class'];
             $idParam = (string) $info->localization->identifier['param'];
             $this->_params[$idParam] = isset($this->_params[$idParam]) ? $this->_params[$idParam] : null;
             $conn = Gio_Db_Connection::getConnection();
             $this->_translationDao->setConnection($conn);
             $items = $this->_translationDao->getItems($this->_params[$idParam], $idClass, $request->getParam('lang'));
             if ($items != null && 1 == count($items)) {
                 $this->_params[$idParam] = $items[0]['item_id'];
             }
         }
     }
     $ucfModule = ucfirst($this->_module);
     $ucfWidget = ucfirst($this->_widget);
     $widgetClassName = array('Modules', $ucfModule, 'Widgets', $ucfWidget, 'Widget');
     $widgetClassName = implode('_', $widgetClassName);
     $widgetClass = new $widgetClassName();
     if (!method_exists($widgetClass, $this->_action . 'Action')) {
         return;
     }
     $widgetClass->setParams($this->_params);
     call_user_func(array($widgetClass, $this->_action . 'Action'));
     $widgetDefaultViewFile = MOD_DIR . DS . $this->_module . DS . 'widgets' . DS . $this->_widget . DS . $this->_action . '.phtml';
     $widgetViewFile = TEMPLATE_DIR . DS . $this->_template . DS . 'modules' . DS . $this->_module . DS . 'widgets' . DS . $this->_widget . DS . $this->_action . '.phtml';
     $widgetViewFile = file_exists($widgetViewFile) ? $widgetViewFile : $widgetDefaultViewFile;
     $widgetClass->view->cacheEnable = $this->_cacheEnable;
     $widgetClass->view->cacheTimeout = $this->_cacheTimeout;
     $return = $widgetClass->view->render($widgetViewFile);
     if (!isset($this->_params['load']) || $this->_params['load'] != 'ajax') {
         $jsCss = array('cssFiles' => array(), 'jsFiles' => array());
         $search = array('{APP_WEB_URL}', '{APP_STATIC_SERVER}', '{WIDGET_URL}');
         $replace = array($this->view->APP_WEB_URL, $this->view->APP_STATIC_SERVER, $this->view->APP_STATIC_SERVER . DS . 'modules' . DS . strtolower($this->_module) . DS . 'widgets' . DS . strtolower($this->_widget));
         $configFile = ROOT_DIR . DS . 'modules' . DS . strtolower($this->_module) . DS . 'widgets' . DS . strtolower($this->_widget) . DS . 'about.xml';
         if (file_exists($configFile)) {
             $widgetConfig = @simplexml_load_file($configFile);
             if ($resources = $widgetConfig->resources) {
                 if ($resources = $resources->resource) {
                     foreach ($resources as $resource) {
                         $attr = $resource->attributes();
                         switch ((string) $attr['type']) {
                             case 'css':
                                 $jsCss['cssFiles'][] = str_replace($search, $replace, (string) $attr['src']);
                                 break;
                             case 'javascript':
                                 $jsCss['jsFiles'][] = str_replace($search, $replace, (string) $attr['src']);
                                 break;
                         }
                     }
                 }
             }
         }
         if ($jsCss['cssFiles']) {
             foreach ($jsCss['cssFiles'] as $index => $file) {
                 Gio_Core_View::getInstance()->headStyle($file);
             }
         }
         if ($jsCss['jsFiles']) {
             foreach ($jsCss['jsFiles'] as $index => $file) {
                 Gio_Core_View::getInstance()->headScript($file);
             }
         }
     }
     if (!$checkCache && $configs->enable == 'true' && $this->_cacheEnable == true) {
         $cacheCompress = isset($configs->compress) && $configs->compress == 'true' ? true : false;
         $cacheContent = Gio_Core_View::getInstance()->generateScripts() . Gio_Core_View::getInstance()->generateStyles() . $return;
         /**
          * HTML Compress
          */
         if (isset($configs->compress) && $configs->compress == 'true') {
             $cacheContent = Gio_Core_HtmlCompress::compress($cacheContent);
         }
         Gio_Core_Cache::cache($cacheType, $cacheKey, $cacheContent, $cacheCompress);
     }
     return $return;
 }