1

I'm a little bit stuck with this: I have a controller where I'm collecting all available languages for an object in pimcore.
Right now I simply take a Localized Field from that object, run through it via foreach and fill an array with the Localized Fields's keys. So I get all languages for that object. But this is the most ugly piece I've ever coded :)

Update - here is the code:

$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;
}

So I get an array that looks like:

$availableLanguages(
    0 => 'en',
    1 => 'de',
    2 => 'it'
    // etc.
);

I'm afraid I've thought too much about it and now I'm missing the forest for the trees - there must be an (more) elegant way for this. Basically Zend_Locale should have this info too, but I don't get it.

Does anyone have a clue for me? Thanks in advance!

Stephan Weinhold
  • 1,623
  • 1
  • 28
  • 37

2 Answers2

2

After crawling through tons of pimcore-backend-Classes I found the solution here:

$config = \Zend_Registry::get("pimcore_config_system");
$validLanguages = strval($config->general->validLanguages);
Stephan Weinhold
  • 1,623
  • 1
  • 28
  • 37
2

Getting all available languages (enabled translations) in Pimcore: Starting from Pimcore 6.9 and in currently available Pimcore 10 we use:

$languages = \Pimcore\Tool::getValidLanguages();

The documentation is here https://pimcore.com/docs/pimcore/current/Development_Documentation/Objects/Object_Classes/Data_Types/Localized_Fields.html

As I see in the original question, the author is creating some export for DataObject with all available translations. In such case we need to disable Fallback languages:

\Pimcore\Model\DataObject\Localizedfield::setGetFallbackValues(false);

This will allow us to get an empty value for fieds without translation instead of default language value.

Eugene Kaurov
  • 2,356
  • 28
  • 39