photoWrapper = $photoWrapper; $this->photosWrapper = new MultiWrapper($photoWrapper, $photoWrapperFactory); $this->blocksWrapper = new MultiWrapper($blockWrapper, $blockWrapperFactory); } /** * @param array|null $feedRow * * @private */ public function setFeedRow($feedRow) { $this->feedRow = $feedRow; } /** * @private */ public function setObjects(ArrayCollection $objects): void { $this->objects = $objects; } /** ID stránky */ public function field_id(): int { return (int) $this->object->id; } /** Název stránky */ public function field_title(): ?string { return $this->object->name ?? null; } /** Krátký název stránky v menu */ public function field_title_short(): ?string { return $this->object->name_short ?? null; } /** Viditelnost stránky. * * Y - Viditelná * N - Skrytá */ public function field_visibility(): string { return $this->object->figure ?? 'Y'; } /** Hlavní obrázek */ public function field_main_photo() { $this->fetchPhotos(); return ($this->object->_main_photo['src'] ?? false) ? $this->photoWrapper->setObject($this->object->_main_photo) : null; } /** Ostatní obrázky */ public function field_photos() { $this->fetchPhotos(); return $this->photosWrapper->setObject($this->object->_photos ?? []); } /** URL adresa stránky */ public function field_url(): string { return path( 'page_not_found', ['path' => $this->object->url], Router::ABSOLUTE_URL ); } /** Bloky (obsah) */ public function field_blocks() { $this->feedUtils->fetchCollectionBlocks($this->objects); return !empty($this->object->_raw_blocks) ? $this->blocksWrapper->setObject($this->object->_raw_blocks) : []; } /** SEO název */ public function field_meta_title() { return $this->object->meta_title; } /** SEO popis */ public function field_meta_description() { return $this->object->meta_description; } /** @private */ protected function fetchPhotos() { $this->feedUtils->fetchPhotos($this->objects, 'photos_menu_relation', 'id_menu', 'product_catalog'); } }