Pimcore\Model\Object\ClassDefinition\Data\Localizedfields::getForWebserviceExport PHP Method

getForWebserviceExport() public method

public getForWebserviceExport ( AbstractObject $object, mixed $params = [] ) : mixed
$object Pimcore\Model\Object\AbstractObject
$params mixed
return mixed
    public function getForWebserviceExport($object, $params = [])
    {
        $data = $object->{$this->getName()};
        $wsData = [];
        $items = null;
        if (!$data instanceof Object\Localizedfield) {
            $items = [];
        } else {
            $items = $data->getItems();
        }
        if (\Zend_Registry::isRegistered("Zend_Locale")) {
            $localeBak = \Zend_Registry::get("Zend_Locale");
        } else {
            $localeBak = null;
        }
        $user = Tool\Admin::getCurrentUser();
        $languagesAllowed = null;
        if ($user && !$user->isAdmin()) {
            $languagesAllowed = Object\Service::getLanguagePermissions($object, $user, "lView");
            if ($languagesAllowed) {
                $languagesAllowed = array_keys($languagesAllowed);
            }
        }
        $validLanguages = Tool::getValidLanguages();
        if ($validLanguages) {
            foreach ($validLanguages as $language) {
                foreach ($this->getFieldDefinitions() as $fd) {
                    \Zend_Registry::set("Zend_Locale", new \Zend_Locale($language));
                    if ($languagesAllowed && !in_array($language, $languagesAllowed)) {
                        continue;
                    }
                    $el = new Model\Webservice\Data\Object\Element();
                    $el->name = $fd->getName();
                    $el->type = $fd->getFieldType();
                    $el->value = $fd->getForWebserviceExport($object, $params);
                    if ($el->value == null && self::$dropNullValues) {
                        continue;
                    }
                    $el->language = $language;
                    $wsData[] = $el;
                }
            }
        }
        if ($localeBak) {
            \Zend_Registry::set("Zend_Locale", $localeBak);
        }
        return $wsData;
    }