/** * Save entity * * @param Cms_Model_MenuItem $item * @param string $language */ public function save(Cms_Model_MenuItem $item, $language = null, $dontSaveRoute = false) { $data = array(); $this->_entityToRow($item, $data); $id = $item->get_id(); if (!isset($id) || $id <= 0) { unset($data['id']); $id = $this->_dbTable->insert($data); $item->set_id($id); } else { //if language is defined, save just untraslated strings if ($language && $language != HCMS_Utils::getDefaultLocale()) { foreach (self::$_translatedFields as $field) { unset($data[$field]); } } $this->_dbTable->update($data, array('id = ?' => $id)); } //save in translation table if ($language) { $this->_saveTranslation('cms_menu_item', $item->get_id(), $item, self::$_translatedFields, $language); if ($item->get_route() != '' && !$dontSaveRoute) { $route = new Cms_Model_Route(); $this->_parseParams(isset($data['params']) ? $data['params'] : "", $item); $this->_parseParams($item->get_params_old() != '' ? $item->get_params_old() : "", $item, true); $paramsOld = $item->get_params_old(); if (isset($paramsOld['page_id']) && $paramsOld['page_id'] == '') { unset($paramsOld['page_id']); } $item->set_params_old($paramsOld); if (!Cms_Model_RouteMapper::getInstance()->findByPath($item->get_path(), $item->get_application_id(), $route, $item->get_params_old(), $language)) { $route->set_lang($language)->set_application_id($item->get_application_id())->set_name($item->get_name())->set_path($item->get_path())->set_page_id($item->get_page_id_new())->set_uri($item->get_route_uri())->set_params($this->unsetParamsPageId($item->get_params())); Cms_Model_RouteMapper::getInstance()->save($route); } else { if ($route->get_uri() != $item->get_route_uri() || $route->get_page_id() != $item->get_page_id_new() || $this->unsetParamsPageId($item->get_params()) != $this->unsetParamsPageId($item->get_params_old())) { $route->set_uri($item->get_route_uri()); $route->set_page_id($item->get_page_id_new()); $route->set_params($this->unsetParamsPageId($item->get_params())); Cms_Model_RouteMapper::getInstance()->save($route); } } } } $this->cleanCache(); }
/** * Save entity * * @param Cms_Model_Category $category */ public function save(Cms_Model_Category $category, $language = null) { $data = array(); $this->_entityToRow($category, $data); $id = $category->get_id(); if (!isset($id) || $id <= 0) { unset($data['id']); $id = $this->_dbTable->insert($data); $category->set_id($id); } else { //if language is defined, save just untraslated strings if ($language && $language != HCMS_Utils::getDefaultLocale()) { foreach (self::$_translatedFields as $field) { unset($data[$field]); } } $this->_dbTable->update($data, array('id = ?' => $id)); } if ($language) { $this->_saveTranslation('cms_category', $category->get_id(), $category, self::$_translatedFields, $language, array('meta')); } }
/** * Save entity * * @param Cms_Model_Page $page * @param string $language */ public function save(Cms_Model_Page $page, $language = null) { $data = array(); $this->_entityToRow($page, $data); unset($data['extension']); $id = $page->get_id(); if (!isset($id) || $id <= 0) { unset($data['id']); $id = $this->_dbTable->insert($data); $page->set_id($id); } else { //if language is defined and curr lang is default one - save all in default table, else save just untraslated strings //echo "curr lang: " . $language . ", def lang: " . HCMS_Utils::getDefaultLocale(); if ($language && $language != HCMS_Utils::getDefaultLocale()) { foreach ($this->_translatedFields as $field) { unset($data[$field]); } } // print_r($data);die; if (!isset($data['code'])) { $data['code'] = ""; } if ($language && $language == HCMS_Utils::getDefaultLocale()) { if (!isset($data['teaser'])) { $data['teaser'] = ""; } if (!isset($data['content'])) { $data['content'] = ""; } } $this->_dbTable->update($data, array('id = ?' => $id)); } //save in translation table if ($language) { $this->_saveTranslation('cms_page', $page->get_id(), $page, $this->_translatedFields, $language, array('data', 'meta')); } //save extension $this->_saveExtension($page, $language); }
/** * Save entity * * @param Teaser_Model_Item $item * @param string $language */ public function save(Teaser_Model_Item $item, $language = null) { $data = array(); $this->_entityToRow($item, $data); if (!isset($data['item_template'])) { $data['item_template'] = null; } if ($data['fallback'] == 'yes') { $data['start_dt'] = '2014-10-01 00:00:00'; $data['end_dt'] = '3000-01-01 00:00:00'; } $id = $item->get_id(); if (!isset($id) || $id <= 0) { unset($data['id']); $id = $this->_dbTable->insert($data); $item->set_id($id); } else { //if language is defined and curr lang is default one - save all in default table, else save just untraslated strings if ($language && $language != HCMS_Utils::getDefaultLocale()) { foreach (self::$_translatedFields as $field) { unset($data[$field]); } } $this->_dbTable->update($data, array('id = ?' => $id)); } //save in translation table if ($language) { $this->_saveTranslation('teaser_item', $item->get_id(), $item, self::$_translatedFields, $language, array('content')); } $this->_saveTeaserIds($item); }
/** * Logs a message when the log option is set * * @param string $message Message to log * @param String $locale Locale to log */ protected function _log($message, $locale) { if ($this->_options['logUntranslated']) { $transString = $message; $message = str_replace('%message%', $message, $this->_options['logMessage']); $message = str_replace('%locale%', $locale, $message); $logger = Zend_Registry::get('Zend_Log'); $logger->log($message, Zend_Log::NOTICE); //save to DB $value = $transString; $defaultLang = HCMS_Utils::getDefaultLocale(); //add indication prefix for non default if ($locale != $defaultLang) { $value = ''; } try { Application_Model_TranslateMapper::getInstance()->addTranslation(array('key' => $transString, 'value' => $value, 'section' => $this->_logSection), $locale); } catch (Exception $exc) { $logger->log("Translation DB: " . $exc, Zend_Log::NOTICE); } } }