2015-05-07 11 views
0

Я немного застрял в этом: у меня есть контроллер, где я собираю все доступные языки для объекта в pimcore.
Прямо сейчас я просто беру Локализованное поле от этого объекта, прогоняю его через foreach и заполняю массив ключами локализованных полей. Поэтому я получаю все языки для этого объекта. Но это самая уродливая часть я когда-либо закодированы :)Как получить все доступные языки из локализованных полей в pimcore?

Update - вот код:

$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 тоже должен иметь эту информацию, но я не понимаю.

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

+2

Не мог бы вы опубликовать свой текущий * уродливый * код? – mins

ответ

1

После обхода через тонну pimcore-серверные-классы я нашел решение here:

$config = \Zend_Registry::get("pimcore_config_system"); 
$validLanguages = strval($config->general->validLanguages); 
+3

Просто небольшое дополнение - лучший способ получить объект конфигурации Zend_Config: '$ config = Pimcore_Config :: getSystemConfig(); var_dump ($ config-> general-> validLanguages); // result: string (5) "en, de" ' – chluehr

+0

Спасибо! Да, это путь bulletproofer. –

+2

Или вы можете использовать 'Pimcore_Tool :: getValidLanguages ​​();' – JimboSlice

 Смежные вопросы

  • Нет связанных вопросов^_^