2015-05-07 50 views
0

我有點卡住了這個:我有一個控制器,我正在爲pimcore中的一個對象收集所有可用的語言。
現在我只需從該對象中取一個本地化字段,通過foreach運行它並使用本地化字段的鍵填充數組。所以我得到了該對象的所有語言。但是,這是最醜陋的一塊,我曾經編碼:)如何從pimcore的本地化字段獲取所有可用的語言?

更新 - 這裏是代碼:

$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); //結果:string(5)「en,de」' – chluehr

+0

謝謝!是的,這是防彈的方式。 –

+2

或者你可以使用'Pimcore_Tool :: getValidLanguages();' – JimboSlice

相關問題