/** * 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; }
/** * {@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); }