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