/** * Returns media-id. * * @param Document $document * @param string $field * * @return int|null */ private function getMedia(Document $document, $field) { $images = json_decode($document->getField($field)->getValue(), true); if (!array_key_exists('ids', $images) || 0 === count($images['ids'])) { return; } return $images['ids'][0]; }
/** * {@inheritDoc} */ public function getMetadataForDocument(Document $document) { if (!$document->hasField(self::FIELD_STRUCTURE_TYPE)) { return; } $className = $document->getClass(); $structureType = $document->getField(self::FIELD_STRUCTURE_TYPE)->getValue(); $documentMetadata = $this->metadataFactory->getMetadataForClass($className); $structure = $this->structureFactory->getStructureMetadata($documentMetadata->getAlias(), $structureType); return $this->getMetadata($documentMetadata, $structure); }