Beispiel #1
0
 /**
  * {@inheritdoc}
  */
 public function jsonSerialize()
 {
     $this->getContent()->setDraft(null);
     $sourceData = $this->getContent()->jsonSerialize(self::JSON_CONCISE_FORMAT);
     $this->getContent()->setDraft($this);
     $draftData = parent::jsonSerialize(self::JSON_CONCISE_FORMAT);
     $draftData['uid'] = $sourceData['uid'];
     $draftData['type'] = $sourceData['type'];
     $draftData['elements'] = $this->computeElements($sourceData['elements'], $draftData['elements']);
     $parameters = [];
     foreach ($draftData['parameters'] as $key => $parameter) {
         if ($parameter['value'] !== $sourceData['parameters'][$key]['value']) {
             $parameters[$key] = ['current' => $sourceData['parameters'][$key]['value'], 'draft' => $parameter['value']];
         }
     }
     $draftData['parameters'] = $parameters;
     if ($this->getRevision() !== $this->getContent()->getRevision()) {
         $draftData['state'] = self::STATE_CONFLICTED;
     }
     return array_merge(parent::jsonSerialize(self::JSON_INFO_FORMAT), $draftData);
 }
 /**
  * {@inheritdoc}
  */
 public function jsonSerialize($format = self::JSON_DEFAULT_FORMAT)
 {
     $data = parent::jsonSerialize($format);
     if (self::JSON_INFO_FORMAT === $format) {
         return $data;
     }
     if (!isset($data['label'])) {
         $data['label'] = $this->getProperty('name');
     }
     if (self::JSON_CONCISE_FORMAT === $format) {
         $data['image'] = $this->getImageName();
         return $data;
     }
     if (self::JSON_DEFINITION_FORMAT === $format) {
         $data['parameters'] = 0 === count($this->getDefaultParams()) ? new \ArrayObject() : $this->getDefaultParams();
     }
     $properties = $this->getProperty();
     unset($properties['indexation'], $properties['labelized-by'], $properties['clonemode'], $properties['cache-lifetime']);
     $data = array_merge(['defaultOptions' => 0 === count($this->defaultOptions) ? new \ArrayObject() : $this->defaultOptions, 'properties' => $properties, 'image' => self::JSON_DEFINITION_FORMAT === $format ? $this->getDefaultImageName() : $this->getImageName()], $data);
     return $data;
 }