示例#1
0
 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;
 }
示例#2
0
 /**
  * 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>';
 }
示例#3
0
 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;
 }
示例#4
0
文件: Html.php 项目: patrova/omeka-s
 public function render(PhpRenderer $view, SitePageBlockRepresentation $block)
 {
     return $this->getData($block->data(), 'html');
 }