public function filterLocalizedFields(Object\AbstractObject $object, $objectData) { if (!$object instanceof Object\Concrete) { return $objectData; } $user = Tool\Admin::getCurrentUser(); if ($user->getAdmin()) { return $objectData; } $fieldDefinitions = $object->getClass()->getFieldDefinitions(); if ($fieldDefinitions) { $languageAllowedView = Object\Service::getLanguagePermissions($object, $user, "lView"); $languageAllowedEdit = Object\Service::getLanguagePermissions($object, $user, "lEdit"); foreach ($fieldDefinitions as $key => $fd) { if ($fd->getFieldtype() == "localizedfields") { foreach ($objectData["data"][$key]["data"] as $language => $languageData) { if (!is_null($languageAllowedView) && !$languageAllowedView[$language]) { unset($objectData["data"][$key]["data"][$language]); } } } } $this->setLayoutPermission($objectData["layout"], $languageAllowedView, $languageAllowedEdit); } return $objectData; }
/** * Flattens object data to an array with key=>value where * value is simply a string representation of the value (for objects, hrefs and assets the full path is used) * * @param Object\AbstractObject $object * @return array */ protected function csvObjectData($object) { $o = array(); foreach ($object->getClass()->getFieldDefinitions() as $key => $value) { //exclude remote owner fields if (!($value instanceof Object\ClassDefinition\Data\Relations\AbstractRelations and $value->isRemoteOwner())) { $o[$key] = $value->getForCsvExport($object); } } $o["id (system)"] = $object->getId(); $o["key (system)"] = $object->getKey(); $o["fullpath (system)"] = $object->getFullPath(); $o["published (system)"] = $object->isPublished(); $o["type (system)"] = $object->getType(); return $o; }