/**
  * Returns the icon URL from the parameter value.
  * 
  * @param  AbstractContent $content   The content.
  * @param  string          $paramName The parameter name.
  * 
  * @return string|null                The icon URL.
  */
 private function iconizeByParam(AbstractContent $content, $paramName)
 {
     if (null === ($parameter = $content->getParam($paramName))) {
         return null;
     }
     if (empty($parameter['value'])) {
         return null;
     }
     return $parameter['value'];
 }
 /**
  * Returns the URI of the icon of the provided content.
  * 
  * @param  AbstractContent $content The content.
  * 
  * @return string|null              The icon URL if found, null otherwise.
  */
 public function getIcon(AbstractContent $content)
 {
     return $content->getDefaultImageName();
     if (null === ($baseFolder = $this->getBaseFolder())) {
         return null;
     }
     $defaultImage = $content->getDefaultImageName();
     if ('/' === substr($defaultImage, 0, 1)) {
         $iconUrl = $defaultImage;
     } else {
         $iconUrl = $this->resolveResourceThumbnail($defaultImage);
     }
     return $iconUrl;
 }
 /**
  * {@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) {
         //            @todo somehow get path or resolve it to allow custom locations?
         $data['image'] = '/media/' . $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;
 }
Example #4
0
 /**
  * {@inheritdoc}
  */
 public function jsonSerialize()
 {
     $currentDraft = $this->getContent()->getDraft();
     $this->getContent()->setDraft(null);
     $sourceData = $this->getContent()->jsonSerialize(self::JSON_CONCISE_FORMAT);
     $this->getContent()->setDraft($currentDraft);
     $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);
 }