Esempio n. 1
0
File: Owl.php Progetto: tabvn/owl
 /**
  * Set default options
  */
 protected function defineOptions()
 {
     $options = parent::defineOptions();
     $settings = _owl_default_settings();
     foreach ($settings as $k => $v) {
         $options[$k] = array('default' => $v);
     }
     return $options;
 }
Esempio n. 2
0
 /**
  * {@inheritdoc}
  */
 public function viewElements(FieldItemListInterface $items, $langcode)
 {
     $elements = array();
     $files = $this->getEntitiesToView($items, $langcode);
     // Early opt-out if the field is empty.
     if (empty($files)) {
         return $elements;
     }
     $url = NULL;
     $image_link_setting = $this->getSetting('image_link');
     // Check if the formatter involves a link.
     if ($image_link_setting == 'content') {
         $entity = $items->getEntity();
         if (!$entity->isNew()) {
             $url = $entity->urlInfo();
         }
     } elseif ($image_link_setting == 'file') {
         $link_file = TRUE;
     }
     $image_style_setting = $this->getSetting('image_style');
     // Collect cache tags to be added for each item in the field.
     $cache_tags = array();
     if (!empty($image_style_setting)) {
         $image_style = $this->imageStyleStorage->load($image_style_setting);
         $cache_tags = $image_style->getCacheTags();
     }
     foreach ($files as $delta => $file) {
         if (isset($link_file)) {
             $image_uri = $file->getFileUri();
             $url = Url::fromUri(file_create_url($image_uri));
         }
         $cache_tags = Cache::mergeTags($cache_tags, $file->getCacheTags());
         // Extract field item attributes for the theme function, and unset them
         // from the $item so that the field template does not re-render them.
         $item = $file->_referringItem;
         $item_attributes = $item->_attributes;
         unset($item->_attributes);
         $elements[$delta] = array('#theme' => 'image_formatter', '#item' => $item, '#item_attributes' => $item_attributes, '#image_style' => $image_style_setting, '#url' => $url, '#cache' => array('tags' => $cache_tags));
     }
     $settings = _owl_default_settings();
     foreach ($settings as $k => $v) {
         $s = $this->getSetting($k);
         $settings[$k] = isset($s) ? $s : $settings[$k];
     }
     return array('#theme' => 'owl', '#items' => $elements, '#settings' => $settings, '#attached' => array('library' => array('owl/owl')));
 }