public function indexAction() { $this->view->setRenderLevel(\Phalcon\Mvc\View::LEVEL_NO_RENDER); $cache = $this->getDi()->get('cache'); $sitemap_xml = $cache->get($this->cacheViewKey); if (!$sitemap_xml) { $langs = Language::find(['columns' => 'iso,primary']); //link(s) for main-page(s) foreach ($langs as $lang) { $suffix = !$lang['primary'] ? $lang['iso'] . '/' : ''; $this->links[] = ['url' => 'http://' . $_SERVER['HTTP_HOST'] . '/' . $suffix, 'updated_at' => date('c', time())]; } foreach ($this->models as $m) { $class_name = '\\' . $m['class'] . '\\Model\\' . $m['model']; $where = !empty($m['where']) ? $m['where'] : ''; $rows = $class_name::find($where); foreach ($langs as $lang) { foreach ($rows as $row) { $row::setCustomLang($lang->iso); if ($row->getSlug() !== 'index' && $row->getTitle()) { $this->links[] = ['url' => 'http://' . $_SERVER['HTTP_HOST'] . $m['getLink']($row, $lang->iso), 'updated_at' => date('c', strtotime($row->getUpdatedAt()))]; } } } $sitemap_xml = $this->getRawXml(); $cache->save($this->cacheViewKey, $sitemap_xml); } } $this->response->setHeader("Content-Type", "text/xml"); $this->response->setContent($sitemap_xml); return $this->response->send(); }
private function changeRouteName($route_name, $lang) { $iso_array = Language::findCachedLanguagesIso(); if (!empty($iso_array)) { foreach ($iso_array as $iso) { $route_name = str_replace('_' . $iso, '', $route_name); } } return $route_name . '_' . $lang; }
public function deleteAction($id) { $model = Language::findFirst($id); if ($this->request->isPost()) { $this->cache->delete(Language::cacheKey()); $model->delete(); return $this->redirect($this->url->get() . 'cms/language'); } $this->view->model = $model; $this->view->title = $this->helper->at('Removing language'); $this->helper->title($this->view->title); }
public static function buildCmsTranslatesCache() { $save = []; $languages = Language::find(); foreach ($languages as $lang) { $save[$lang->getIso()] = ["" => ""]; } $entries = Translate::find(); foreach ($entries as $el) { $save[$el->getLang()][$el->getPhrase()] = $el->getTranslation(); } return $save; }
public function languages() { return Language::findCachedLanguages(); }