Я немного застрял с этим: у меня есть контроллер, где я собираю все доступные языки для объекта в pimcore.
Прямо сейчас я просто беру Локализованное Поле от этого объекта, пробегаю его через foreach
и заполните массив ключами локализованных полей. Таким образом, я получаю все языки для этого объекта. Но это самая ужасная часть, которую я когда-либо кодировал 🙂
Обновление — вот код:
$o = Object_Product::getById(SOME_ID);
$availableLanguages = array();
// 'category' is an attribute of my product-object that uses Localized Fields
foreach ($o->getCategory()->getLocalizedfields()->getItems() as $language => $value) {
$availableLanguages[] = $language;
}
Итак, я получаю массив, который выглядит так:
$availableLanguages(
0 => 'en',
1 => 'de',
2 => 'it'
// etc.
);
Боюсь, я слишком много думал об этом, и теперь я скучаю по лесу за деревьями — должен быть (более) элегантный способ для этого. По сути, Zend_Locale тоже должен иметь эту информацию, но я ее не понимаю.
У кого-нибудь есть подсказка для меня? Заранее спасибо!
Пройдя сквозь тонны pimcore-backend-Classes, я нашел решение Вот:
$config = \Zend_Registry::get("pimcore_config_system");
$validLanguages = strval($config->general->validLanguages);
Других решений пока нет …