예제 #1
0
 protected function _initLanguages()
 {
     $this->languages = \Languages::findByPublished(true);
     if (sizeof($this->languages) < 2) {
         $this->currentLang = $this->languages[0];
         return;
     }
     $currentLangCode = $this->request()->get('lang');
     if (!$currentLangCode) {
         $currentLangCode = Factory::getCookie()->read('lang');
     }
     if (!$currentLangCode) {
         $this->currentLang = \Languages::findOneByDefault(true);
         $currentLangCode = $this->currentLang->getLangCode();
     }
     Factory::getCookie()->write('lang', $currentLangCode);
     if (Factory::getRouter()->getUrl() == '/' && !$this->request()->get('lang')) {
         $this->redirect($currentLangCode);
     }
     if (!$this->currentLang) {
         $this->currentLang = \Languages::findOneByLangCode($currentLangCode);
     }
     $translator = Translator::getInstance();
     $translator->setLocale($currentLangCode);
     Cms::$currentLang = $this->currentLang;
 }
예제 #2
0
파일: Cms.php 프로젝트: hosivan90/toxotes
 public static function route($r)
 {
     $languages = \Languages::findByPublished(true);
     if (sizeof($languages) > 1) {
         $preLang = array();
         foreach ($languages as $lang) {
             $preLang[] = $lang->getLangCode();
         }
         $preLang = '{lang:(' . implode('|', $preLang) . ')}';
         $nr = array();
         foreach ($r as $route => $value) {
             if ('/' == $route) {
                 $nr[$route] = $value;
             }
             $nr[$route] = $value;
             if (strpos($route, '__') !== 0 && strpos($route, $preLang) !== 0) {
                 $nr[$preLang . '/' . ltrim($route, '/')] = $value;
             }
         }
         $r = $nr;
     }
     return $r;
 }
예제 #3
0
 public function begin()
 {
     $this->languages = Languages::findByPublished(1);
 }