public static function update($translation) { $conn = Gio_Db_Connection::getConnection(); $dao = new Modules_Core_Models_Mysql_Translation(); $dao->setConnection($conn); return $dao->update($translation); }
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); }
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; }