Loading imagefield_slideshow.module +1 −0 Original line number Diff line number Diff line Loading @@ -36,6 +36,7 @@ function imagefield_slideshow_theme() { 'speed' => NULL, 'timeout' => NULL, 'pager' => NULL, 'link_image_to' => NULL, ], ], ]; Loading src/Plugin/Field/FieldFormatter/ImagefieldSlideshowFieldFormatter.php +28 −0 Original line number Diff line number Diff line Loading @@ -112,6 +112,7 @@ class ImagefieldSlideshowFieldFormatter extends ImageFormatterBase implements Co 'imagefield_slideshow_transition_speed' => 100, 'imagefield_slideshow_timeout' => 100, 'imagefield_slideshow_pager' => TRUE, 'imagefield_slideshow_link_image_to' => '', ] + parent::defaultSettings(); } Loading Loading @@ -217,6 +218,13 @@ class ImagefieldSlideshowFieldFormatter extends ImageFormatterBase implements Co '#default_value' => $this->getSetting('imagefield_slideshow_pager'), '#description' => $this->t('This will show the Pager on slideshow.'), ]; $link_image_to = ['' => 'Nothing', 'content' => 'Content', 'file' => 'File']; $element['imagefield_slideshow_link_image_to'] = [ '#type' => 'select', '#title' => t("Link image to"), '#options' => $link_image_to, '#default_value' => $this->getSetting('imagefield_slideshow_link_image_to'), ]; return $element; } Loading Loading @@ -281,6 +289,13 @@ class ImagefieldSlideshowFieldFormatter extends ImageFormatterBase implements Co ]); } $link_image_to = $this->getSetting('imagefield_slideshow_link_image_to'); if ($link_image_to) { $summary[] .= $this->t("Link Image to: @link_image_to", [ "@link_image_to" => $link_image_to, ]); } return $summary; } Loading Loading @@ -338,6 +353,18 @@ class ImagefieldSlideshowFieldFormatter extends ImageFormatterBase implements Co $prev_next = FALSE; } $imagefield_slideshow_link_image_to = $this->getSetting('imagefield_slideshow_link_image_to'); $link_image_to = []; $link_image_to['type'] = $imagefield_slideshow_link_image_to; if ($imagefield_slideshow_link_image_to == 'content') { $link_image_to['type'] = 'content'; $content_url = '/node/' . $file['nid'][0]['value']; $link_image_to['path'] = \Drupal::service('path_alias.manager')->getAliasByPath($content_url); } else if ($imagefield_slideshow_link_image_to == '') { $link_image_to = FALSE; } $elements[] = [ '#theme' => 'imagefield_slideshow', '#url' => $image_uri_values, Loading @@ -347,6 +374,7 @@ class ImagefieldSlideshowFieldFormatter extends ImageFormatterBase implements Co '#speed' => $this->getSetting('imagefield_slideshow_transition_speed'), '#timeout' => $this->getSetting('imagefield_slideshow_timeout'), '#pager' => $this->getSetting('imagefield_slideshow_pager'), '#link_image_to' => $link_image_to, ]; // Attach the image field slide show library. Loading templates/imagefield-slideshow.html.twig +10 −1 Original line number Diff line number Diff line Loading @@ -28,7 +28,16 @@ <div class="cycle-pager"></div> {% endif %} {% for key,value in url %} {% if link_image_to %} {% if link_image_to.type == 'content' %} <img title="{{ value.title }}" alt="{{ value.alt }}" src="{{ value.uri }}" onclick="window.open('{{ link_image_to.path }}', '_self')" /> {% endif %} {% if link_image_to.type == 'file' %} <img title="{{ value.title }}" alt="{{ value.alt }}" src="{{ value.uri }}" onclick="window.open('{{ value.uri }}', '_self')" /> {% endif %} {% else %} <img title="{{ value.title }}" alt="{{ value.alt }}" src="{{ value.uri }}" /> {% endif %} {% endfor %} </div> {% if prev_next %} Loading Loading
imagefield_slideshow.module +1 −0 Original line number Diff line number Diff line Loading @@ -36,6 +36,7 @@ function imagefield_slideshow_theme() { 'speed' => NULL, 'timeout' => NULL, 'pager' => NULL, 'link_image_to' => NULL, ], ], ]; Loading
src/Plugin/Field/FieldFormatter/ImagefieldSlideshowFieldFormatter.php +28 −0 Original line number Diff line number Diff line Loading @@ -112,6 +112,7 @@ class ImagefieldSlideshowFieldFormatter extends ImageFormatterBase implements Co 'imagefield_slideshow_transition_speed' => 100, 'imagefield_slideshow_timeout' => 100, 'imagefield_slideshow_pager' => TRUE, 'imagefield_slideshow_link_image_to' => '', ] + parent::defaultSettings(); } Loading Loading @@ -217,6 +218,13 @@ class ImagefieldSlideshowFieldFormatter extends ImageFormatterBase implements Co '#default_value' => $this->getSetting('imagefield_slideshow_pager'), '#description' => $this->t('This will show the Pager on slideshow.'), ]; $link_image_to = ['' => 'Nothing', 'content' => 'Content', 'file' => 'File']; $element['imagefield_slideshow_link_image_to'] = [ '#type' => 'select', '#title' => t("Link image to"), '#options' => $link_image_to, '#default_value' => $this->getSetting('imagefield_slideshow_link_image_to'), ]; return $element; } Loading Loading @@ -281,6 +289,13 @@ class ImagefieldSlideshowFieldFormatter extends ImageFormatterBase implements Co ]); } $link_image_to = $this->getSetting('imagefield_slideshow_link_image_to'); if ($link_image_to) { $summary[] .= $this->t("Link Image to: @link_image_to", [ "@link_image_to" => $link_image_to, ]); } return $summary; } Loading Loading @@ -338,6 +353,18 @@ class ImagefieldSlideshowFieldFormatter extends ImageFormatterBase implements Co $prev_next = FALSE; } $imagefield_slideshow_link_image_to = $this->getSetting('imagefield_slideshow_link_image_to'); $link_image_to = []; $link_image_to['type'] = $imagefield_slideshow_link_image_to; if ($imagefield_slideshow_link_image_to == 'content') { $link_image_to['type'] = 'content'; $content_url = '/node/' . $file['nid'][0]['value']; $link_image_to['path'] = \Drupal::service('path_alias.manager')->getAliasByPath($content_url); } else if ($imagefield_slideshow_link_image_to == '') { $link_image_to = FALSE; } $elements[] = [ '#theme' => 'imagefield_slideshow', '#url' => $image_uri_values, Loading @@ -347,6 +374,7 @@ class ImagefieldSlideshowFieldFormatter extends ImageFormatterBase implements Co '#speed' => $this->getSetting('imagefield_slideshow_transition_speed'), '#timeout' => $this->getSetting('imagefield_slideshow_timeout'), '#pager' => $this->getSetting('imagefield_slideshow_pager'), '#link_image_to' => $link_image_to, ]; // Attach the image field slide show library. Loading
templates/imagefield-slideshow.html.twig +10 −1 Original line number Diff line number Diff line Loading @@ -28,7 +28,16 @@ <div class="cycle-pager"></div> {% endif %} {% for key,value in url %} {% if link_image_to %} {% if link_image_to.type == 'content' %} <img title="{{ value.title }}" alt="{{ value.alt }}" src="{{ value.uri }}" onclick="window.open('{{ link_image_to.path }}', '_self')" /> {% endif %} {% if link_image_to.type == 'file' %} <img title="{{ value.title }}" alt="{{ value.alt }}" src="{{ value.uri }}" onclick="window.open('{{ value.uri }}', '_self')" /> {% endif %} {% else %} <img title="{{ value.title }}" alt="{{ value.alt }}" src="{{ value.uri }}" /> {% endif %} {% endfor %} </div> {% if prev_next %} Loading