Exemple #1
0
 /**
  * switch the language
  */
 public function switchLanguage($culture)
 {
     $supported_cultures = LanguageTable::getAllLanguageCodesAsArray(true);
     if (in_array($culture, $supported_cultures)) {
         $this->setCulture($culture);
     } else {
         $this->setCulture(LanguageTable::getDefaultLanguage());
     }
     $this->setAttribute('culture_set', true);
 }
Exemple #2
0
 public function execute($filterChain)
 {
     // Execute this filter only once
     if ($this->isFirstCall()) {
         $sfUser = $this->getContext()->getUser();
         // check if user is authenticated
         if (!$sfUser->isAuthenticated() && !$sfUser->getAttribute('culture_set')) {
             $languages = $this->getContext()->getRequest()->getLanguages();
             foreach ($languages as $lang) {
                 $lang = substr($lang, 0, 2);
                 // check if a used language is supported by communipedia
                 if (in_array($lang, LanguageTable::getAllLanguageCodesAsArray(true))) {
                     $sfUser->setCulture($lang);
                     break;
                 } else {
                     $sfUser->setCulture(LanguageTable::getDefaultLanguage());
                 }
             }
             $sfUser->setAttribute('culture_set', true);
         }
     }
     // Execute next filter
     $filterChain->execute();
 }