function init() { parent::init(); $oContentField = new AnwContentFieldSettings_select(self::FIELD_LANG_DEFAULT); $asEnumValues = array(); $asLangs = AnwComponent::globalCfgLangs(); foreach ($asLangs as $sLang) { $sLangName = $sLang . " - " . Anwi18n::langName($sLang); $asEnumValues[$sLang] = $sLangName; } $oContentField->setEnumValues($asEnumValues); $this->addContentField($oContentField); $oContentField = new AnwContentFieldSettings_string(self::FIELD_LANGS); $oContentField->addAllowedPattern("!^.{" . Anwi18n::MINLEN_LANG . "," . Anwi18n::MAXLEN_LANG . "}\$!"); $oContentMultiplicity = new AnwContentMultiplicity_multiple(); $oContentField->setMultiplicity($oContentMultiplicity); $this->addContentField($oContentField); $oContentField = new AnwContentFieldSettings_select(self::FIELD_TIMEZONE_DEFAULT); $anEnumValues = array(); $anTimezones = AnwUsers::getTimezones(); foreach ($anTimezones as $nTimezone) { $sTimezoneName = Anwi18n::timezoneName($nTimezone); $anEnumValues[$nTimezone] = $sTimezoneName; } $oContentField->setEnumValues($anEnumValues); $this->addContentField($oContentField); }
function init() { parent::init(); //lang policy $oContentField = new AnwContentFieldSettings_radio(self::FIELD_POLICY); $asEnumValues = array(self::POLICY_ALL_LANGS => $this->getComponent()->t_contentfieldsettings("policy_all_langs"), self::POLICY_SELECTED_LANGS => $this->getComponent()->t_contentfieldsettings("policy_selected_langs")); $oContentField->setEnumValues($asEnumValues); $oContentField->setDefaultValue(self::POLICY_ALL_LANGS); $this->addContentField($oContentField); //langs selection $oContentField = new AnwContentFieldSettings_checkboxGroup(self::FIELD_LANGS); $asLangs = AnwComponent::globalCfgLangs(); $asEnumValues = array(); foreach ($asLangs as $sLang) { $sLangName = $sLang . " - " . Anwi18n::langName($sLang); $asEnumValues[$sLang] = $sLangName; } $oContentField->setEnumValues($asEnumValues); $oMultiplicity = new AnwContentMultiplicity_multiple(); $oMultiplicity->setSortable(false); $oContentField->setMultiplicity($oMultiplicity); $this->addContentField($oContentField); }
function getAvailableLangs() { $asAvailableLangs = AnwComponent::globalCfgLangs(); $asPages = $this->getPages(); foreach ($asAvailableLangs as $i => $sLang) { if (isset($asPages[$sLang])) { unset($asAvailableLangs[$i]); } } return $asAvailableLangs; }
static function langExists($sLang) { return in_array($sLang, AnwComponent::globalCfgLangs()); }
function selectLang($langs = null, $selectedlang = null) { $HTML = ''; if (!$langs) { $langs = AnwComponent::globalCfgLangs(); } if (!$selectedlang) { $selectedlang = AnwCurrentSession::getLang(); } foreach ($langs as $lang) { $selected = $lang == $selectedlang ? ' selected="selected"' : ""; $sSrcFlag = Anwi18n::srcFlag($lang); $HTML .= "<option value=\"" . $this->xQuote($lang) . "\"{$selected} style=\"background-image:url('{$sSrcFlag}');\">{$this->g_('lang_' . $lang)}</option>"; } return $HTML; }
static function detectPreferredLang() { $asAllowedLangs = AnwComponent::globalCfgLangs(); if (AnwEnv::_SERVER("HTTP_ACCEPT_LANGUAGE")) { $asAcceptedLangs = explode(",", AnwEnv::_SERVER("HTTP_ACCEPT_LANGUAGE")); foreach ($asAcceptedLangs as $sLangItem) { $asLangItem = explode(';', $sLangItem); $sAcceptedLang = strtolower($asLangItem[0]); if (in_array($sAcceptedLang, $asAllowedLangs)) { return $sAcceptedLang; } } } throw new AnwUnexpectedException("No preferred lang is supported"); }