Exemple #1
0
 protected function initLanguage()
 {
     $this->sOldSessionLanguage = Session::language();
     if (isset($_REQUEST[AdminManager::CONTENT_LANGUAGE_SESSION_KEY]) && LanguageQuery::languageExists($_REQUEST[AdminManager::CONTENT_LANGUAGE_SESSION_KEY])) {
         AdminManager::setContentLanguage($_REQUEST[AdminManager::CONTENT_LANGUAGE_SESSION_KEY]);
         unset($_REQUEST[AdminManager::CONTENT_LANGUAGE_SESSION_KEY]);
         LinkUtil::redirect(LinkUtil::link(Manager::getRequestedPath(), get_class()));
     } else {
         if (!LanguageQuery::languageExists(AdminManager::getContentLanguage())) {
             AdminManager::setContentLanguage($this->sOldSessionLanguage);
         }
         if (!LanguageQuery::languageExists(AdminManager::getContentLanguage())) {
             LinkUtil::redirectToManager('', "AdminManager");
         }
     }
     Session::getSession()->setLanguage(AdminManager::getContentLanguage());
 }
Exemple #2
0
 /**
  * Redirects to a page with the given id
  */
 public function __construct()
 {
     parent::__construct();
     $oPage = PageQuery::create()->findPk(Manager::usePath());
     LinkUtil::redirectToManager($oPage->getFullPathArray(), 'FrontendManager');
 }
Exemple #3
0
 protected function initLanguage()
 {
     $bIsMultilingual = Settings::getSetting('general', 'multilingual', true);
     if ($bIsMultilingual && self::hasNextPathItem() && LanguageQuery::languageIsActive(self::peekNextPathItem(), true)) {
         $oLanguage = LanguageQuery::create()->filterByPathPrefix(self::usePath())->findOne();
         Session::getSession()->setLanguage($oLanguage);
     } else {
         // If site is monolingual, try setting the session default as a shortcut
         if ($bIsMultilingual) {
             // If we’ve got a valid session language set (and it’s not just from the default), use that
             if (Session::getSession()->hasAttribute(Session::SESSION_LANGUAGE_KEY) && LanguageQuery::languageIsActive(Session::language())) {
                 LinkUtil::redirectToLanguage();
             }
             // Otherwise, use the first of the user’s accept languages that is valid
             foreach (LocaleUtil::acceptLocales() as $oAcceptLocale) {
                 if (LanguageQuery::languageIsActive($oAcceptLocale->language_id)) {
                     Session::getSession()->setLanguage($oAcceptLocale->language_id);
                     LinkUtil::redirectToLanguage();
                 }
             }
             // As a last resort, try, the default session language
             Session::getSession()->resetAttribute(Session::SESSION_LANGUAGE_KEY);
             if (LanguageQuery::languageIsActive(Session::language())) {
                 LinkUtil::redirectToLanguage();
             }
         } else {
             if (LanguageQuery::languageIsActive(Session::language())) {
                 return;
             } else {
                 Session::getSession()->resetAttribute(Session::SESSION_LANGUAGE_KEY);
                 if (LanguageQuery::languageIsActive(Session::language())) {
                     return;
                 }
             }
         }
         // If all fails, redirect to the admin manager, where new languages can be created/activated
         LinkUtil::redirectToManager(array('languages'), "AdminManager");
     }
 }