상속: extends Phalcon\Mvc\Model
예제 #1
0
 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();
 }
예제 #2
0
 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;
 }
예제 #3
0
 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);
 }
예제 #4
0
 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;
 }
예제 #5
0
 public function languages()
 {
     return Language::findCachedLanguages();
 }