public function render(PhpRenderer $view, SitePageBlockRepresentation $block) { $attachments = $block->attachments(); if (!$attachments) { return ''; } $html = ''; foreach ($attachments as $attachment) { $html .= '<div>'; $item = $attachment->item(); if ($item) { $html .= '<h2>' . $item->link($item->displayTitle()) . '</h2>'; $media = $attachment->media(); if (!$media) { $media = $item->primaryMedia(); } if ($media) { $thumbnailType = $this->getData($block->data(), 'thumbnail_type', 'square'); $html .= '<h3>' . $media->link($media->displayTitle()) . '</h3>'; $html .= '<img src="' . $view->escapeHtml($media->thumbnailUrl($thumbnailType)) . '">'; } } $caption = $attachment->caption(); if ($caption) { $html .= '<p>' . $caption . '</p>'; } $html .= '</div>'; } return $html; }
/** * Return a thumbnail type select element. * * @param PhpRenderer $view * @param SiteRepresentation $site * @param SiteBlockAttachmentRepresentation|null $block * @return string */ public function thumbnailTypeSelect(PhpRenderer $view, SiteRepresentation $site, SitePageBlockRepresentation $block = null) { $types = $this->getServiceLocator()->get('Omeka\\File\\Manager')->getThumbnailTypes(); $type = null; if ($block) { $type = $this->getData($block->data(), 'thumbnail_type'); } $select = new Select('o:block[__blockIndex__][o:data][thumbnail_type]'); $select->setValueOptions(array_combine($types, $types))->setValue($type); return '<label class="thumbnail-option">Thumbnail Type ' . $view->formSelect($select) . '</label>'; }
public function render(PhpRenderer $view, SitePageBlockRepresentation $block) { parse_str($this->getData($block->data(), 'query'), $query); $previewQuery = $query; $previewQuery['limit'] = 10; $previewQuery['site_id'] = $block->page()->site()->id(); $response = $this->getServiceLocator()->get('Omeka\\ApiManager')->search('items', $previewQuery); $preview = '<ul>'; foreach ($response->getContent() as $item) { $preview .= '<li>' . $item->displayTitle() . '</li>'; } $preview .= '</ul>'; $link = $view->hyperlink('browse this', $view->url('site/resource', ['controller' => 'item'], ['query' => $query], true)); return $preview . $link; }
public function render(PhpRenderer $view, SitePageBlockRepresentation $block) { return $this->getData($block->data(), 'html'); }