public function indexAction() { $model = new Translate(); if ($this->request->isPost()) { $post = $this->request->getPost(); if (!empty($post)) { foreach ($post as $key => $value) { $key = str_replace('_', ' ', $key); // При отправке формы POST-запросом, все пробелы заменяются на "_". Меняем обратно. $phrase = $model->findByPhraseAndLang($key); if ($phrase) { $phrase->setTranslation($value); $phrase->update(); } else { $phraseNew = new Translate(); $phraseNew->setPhrase($key); $phraseNew->setLang(LANG); $phraseNew->setTranslation($value); $phraseNew->create(); } } } CmsCache::getInstance()->save('translates', Translate::buildCmsTranslatesCache()); $this->flash->success($this->helper->at('Saved has been successful')); $lang = LANG; $key = HOST_HASH . md5("Translate::findByLang({$lang})"); $this->cache->delete($key); return $this->redirect($this->url->get() . 'cms/translate?lang=' . LANG); } $scanner = new Scanner(); $phrases = $scanner->search(); $this->view->phrases = $phrases; $this->view->model = $model; }
public function addML($pattern, $paths = null, $name) { $languages = CmsCache::getInstance()->get('languages'); foreach ($languages as $lang) { $iso = $lang['iso']; if ($lang['primary']) { $this->add($pattern, $paths)->setName(self::ML_PREFIX . $name . '_' . $iso); } else { $new_pattern = '/' . $lang['url'] . $pattern; $paths['lang'] = $iso; // будущее значение константы LANG $this->add($new_pattern, $paths)->setName(self::ML_PREFIX . $name . '_' . $iso); } } }
public static function findCachedLanguages() { return CmsCache::getInstance()->get('languages'); }
public static function types() { return CmsCache::getInstance()->get('publication_types'); }
public static function translates() { return CmsCache::getInstance()->get('translates'); }
public static function urls() { return CmsCache::getInstance()->get('seo_manager'); }