Für ein Webformular brauchten wir wir eine Zend Framework Selectbox mit den validen Sprachen des Frontends. Pimcore bietet auch hier wieder komfortable Möglichkeiten, die aktuell im Backend eingestellten Sprachen zu verarbeiten. Das ganze Problem wird hierdurch wieder mal zum komfortablen Fünfzeiler wenn man weiß wo man hinfassen muss. Pimcore liefert mit der statischen Methode Pimcore_Tool::getValidLanguages() einen Array an Kürzeln der validen Sprachen, also zB array("de", "en"). Dies kann man sich nun noch vom Zend Framework übersetzen lassen, ebenfalls mit einer statischen Methode: Zend_Locale::getTranslation($kuerzel, "language", $zielsprache). Sinnvollerweise lässt man sich das Kürzel in die Sprache übersetzen, die es repräsentiert - ein auswählender User kann seine Sprache damit sicher identifizieren. Der Select-Viewhelper erwartet nun noch die Werte im Format array($value => $label). Zusammengefasst sieht das daher dann so aus:
$pimcore_languages = Pimcore_Tool::getValidLanguages(); $languages = array(); foreach ($pimcore_languages as $lang) { $languages[$lang] = Zend_Locale::getTranslation($lang, 'language', $lang); } $language = $this->createElement("select", "language"); $language->setLabel("Sprache") ->setMultioptions($languages);