function updateLinkForm(&$form)
 {
     $field = new LanguageDropdownField('Language', _t('CMSMain.LANGUAGEDROPDOWNLABEL', 'Language'));
     $field->setValue(Translatable::get_current_locale());
     $field->setForm($form);
     $form->Fields()->insertBefore($field, 'internal');
     Requirements::javascript('translatable/javascript/HtmlEditorField.Translatable.js');
 }
 /**
  * Returns a form with all languages with languages already used appearing first.
  *
  * @return Form
  */
 public function updateSearchForm(Form $form)
 {
     $member = Member::currentUser();
     //check to see if the current user can switch langs or not
     if (Permission::checkMember($member, 'VIEW_LANGS')) {
         $field = new LanguageDropdownField('Locale', _t('CMSMain.LANGUAGEDROPDOWNLABEL', 'Language'), array(), 'SiteTree', 'Locale-English', singleton('SiteTree'));
         $field->setValue(Translatable::get_current_locale())->setForm($form);
     } else {
         // user doesn't have permission to switch langs
         // so just show a string displaying current language
         $field = new LiteralField('Locale', i18n::get_locale_name(Translatable::get_current_locale()));
     }
     $form->Fields()->unshift($field);
 }
 /**
  * Returns a form with all languages with languages already used appearing first.
  *
  * @return Form
  */
 function LangForm()
 {
     $member = Member::currentUser();
     //check to see if the current user can switch langs or not
     if (Permission::checkMember($member, 'VIEW_LANGS')) {
         $field = new LanguageDropdownField('Locale', _t('CMSMain.LANGUAGEDROPDOWNLABEL', 'Language'), array(), 'SiteTree', 'Locale-English', singleton('SiteTree'));
         $field->setValue(Translatable::get_current_locale());
     } else {
         // user doesn't have permission to switch langs
         // so just show a string displaying current language
         $field = new LiteralField('Locale', i18n::get_locale_name(Translatable::get_current_locale()));
     }
     $form = new Form($this->owner, 'LangForm', new FieldList($field), new FieldList(new FormAction('selectlang', _t('CMSMain_left.GO', 'Go'))));
     $form->unsetValidator();
     $form->addExtraClass('nostyle');
     return $form;
 }
 /**
  * Returns all languages with languages already used appearing first.
  * Called by the SSViewer when rendering the template.
  */
 function LangSelector()
 {
     $member = Member::currentUser();
     $dropdown = new LanguageDropdownField('LangSelector', 'Language', array(), 'SiteTree', 'Locale-English', singleton('SiteTree'));
     $dropdown->setValue(Translatable::get_current_locale());
     return $dropdown;
 }
Exemplo n.º 5
0
 /**
  * Returns all languages with languages already used appearing first.
  * Called by the SSViewer when rendering the template.
  */
 function LangSelector()
 {
     $member = Member::currentUser();
     //check to see if the current user can switch langs or not
     if (Permission::checkMember($member, 'VIEW_LANGS')) {
         $dropdown = new LanguageDropdownField('LangSelector', 'Language', array(), 'SiteTree', 'Locale-English');
         $dropdown->setValue(Translatable::get_current_locale());
         return $dropdown;
     }
     //user doesn't have permission to switch langs so just show a string displaying current language
     return i18n::get_locale_name(Translatable::get_current_locale());
 }
 /**
  * Creates and returns the language dropdown field
  *
  * @param DataObject $dataObj          DataObject to get dropdown for
  * @param string     $translatingClass Context class of the LanguageDropdownField
  * @param string     $fieldName        Name of the LanguageDropdownField
  * 
  * @return LanguageDropdownField 
  * 
  * @author Sebastian Diel <*****@*****.**>
  * @since 21.12.2015
  */
 public static function prepareLanguageDropdownField($dataObj, $translatingClass = null, $fieldName = 'Locale')
 {
     $instance = null;
     $alreadyTranslatedLocales = array();
     if (is_null($translatingClass)) {
         $translatingClass = $dataObj->ClassName;
         $instance = $dataObj;
     }
     if ($instance) {
         $alreadyTranslatedLocales = $instance->getTranslatedLocales();
         unset($alreadyTranslatedLocales[$instance->Locale]);
     }
     $localeDropdown = new LanguageDropdownField($fieldName, _t('SilvercartConfig.TRANSLATION'), $alreadyTranslatedLocales, $translatingClass, 'Locale-Native', $instance);
     $currentLocale = Translatable::get_current_locale();
     $localesWithTitle = $localeDropdown->getSource();
     $usedLocalesWithTitle = Translatable::get_existing_content_languages('SiteTree');
     $languageList = array();
     $usedLanguageList = array();
     foreach ($localesWithTitle as $locale => $title) {
         if (is_array($title)) {
             foreach ($title as $locale2 => $title2) {
                 $title2 = self::getLanguageDisplayTitle($locale2, $currentLocale);
                 if (array_key_exists($locale2, $usedLocalesWithTitle)) {
                     $usedLanguageList[$locale2] = $title2;
                     unset($languageList[$locale2]);
                 } else {
                     $languageList[$locale2] = $title2;
                 }
             }
         } else {
             $title = self::getLanguageDisplayTitle($locale, $currentLocale);
             if (array_key_exists($locale, $usedLocalesWithTitle)) {
                 $usedLanguageList[$locale] = $title;
                 unset($languageList[$locale]);
             } else {
                 $languageList[$locale] = $title;
             }
         }
     }
     asort($languageList);
     if (count($usedLanguageList)) {
         asort($usedLanguageList);
         $languageList = array(_t('Form.LANGAVAIL', "Available languages") => $usedLanguageList, _t('Form.LANGAOTHER', "Other languages") => $languageList);
     }
     $localeDropdown->setSource($languageList);
     $localeDropdown->setValue($dataObj->Locale);
     return $localeDropdown;
 }