Как получить все доступные языки из локализованных полей в pimcore?

Я немного застрял с этим: у меня есть контроллер, в котором я собираю все доступные языки для объекта в 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 тоже должен иметь эту информацию, но я ее не понимаю.

У кого-нибудь есть ключ для меня? Заранее спасибо!


person Stephan Weinhold    schedule 07.05.2015    source источник
comment
Не могли бы вы опубликовать свой текущий некрасивый код?   -  person mins    schedule 07.05.2015


Ответы (1)


После обхода множества pimcore-backend-классов я нашел решение здесь:

$config = \Zend_Registry::get("pimcore_config_system");
$validLanguages = strval($config->general->validLanguages);
person Stephan Weinhold    schedule 08.05.2015
comment
Небольшое дополнение — лучший способ получить объект конфигурации Zend_Config: $config = Pimcore_Config::getSystemConfig(); var_dump($config->general->validLanguages); // result: string(5) "en,de" - person chluehr; 08.05.2015
comment
Спасибо! Да, это пуленепробиваемый способ. - person Stephan Weinhold; 08.05.2015
comment
Или вы можете использовать Pimcore_Tool::getValidLanguages(); - person JimboSlice; 26.08.2016