imagezoom_gallery.module in Image Zoom 8.2
Same filename and directory in other branches
Provides a gallery formatter for the Image Zoom module.
File
modules/imagezoom_gallery/imagezoom_gallery.moduleView source
<?php
/**
* @file
* Provides a gallery formatter for the Image Zoom module.
*/
use Drupal\image\Entity\ImageStyle;
/**
* Implements hook_theme().
*/
function imagezoom_gallery_theme($existing, $type, $theme, $path) {
return [
'imagezoom_gallery' => [
'variables' => [
'items' => NULL,
'display_style' => NULL,
'zoom_style' => NULL,
'thumb_style' => NULL,
'settings' => NULL,
'image' => NULL,
'thumbs' => NULL,
],
'template' => 'imagezoom-gallery',
],
'imagezoom_thumb' => [
'variables' => [
'item' => NULL,
'display_style' => NULL,
'zoom_style' => NULL,
'thumb_style' => NULL,
'settings' => NULL,
],
'template' => 'imagezoom-thumb',
],
];
}
/**
* Preprocess function for imagezoom_gallery.
*/
function template_preprocess_imagezoom_gallery(&$variables) {
if ($items = $variables['items']) {
$variables['image'] = [
'#theme' => 'imagezoom_image',
'#item' => $items[0],
'#display_style' => $variables['display_style'],
'#zoom_style' => $variables['zoom_style'],
'#settings' => $variables['settings'],
];
$variables['thumbs'] = [];
foreach ($items as $item) {
$variables['thumbs'][] = [
'#theme' => 'imagezoom_thumb',
'#item' => $item,
'#display_style' => $variables['display_style'],
'#thumb_style' => $variables['thumb_style'],
'#zoom_style' => $variables['zoom_style'],
'#settings' => $variables['settings'],
];
}
}
}
/**
* Preprocess function for imagezoom_thumb.
*/
function template_preprocess_imagezoom_thumb(&$variables) {
$item = $variables['item'];
if ($variables['display_style']) {
$image_style = ImageStyle::load($variables['display_style']);
$variables['image'] = $image_style
->buildUrl($item->entity
->getFileUri());
}
else {
$variables['image'] = file_create_url($item->entity
->getFileUri());
}
if ($variables['zoom_style']) {
$image_style = ImageStyle::load($variables['zoom_style']);
$variables['zoom'] = $image_style
->buildUrl($item->entity
->getFileUri());
}
else {
$variables['zoom'] = file_create_url($item->entity
->getFileUri());
}
/** @var Drupal\Core\Image\Image $image */
if ($variables['thumb_style']) {
$image_style = ImageStyle::load($variables['thumb_style']);
$variables['thumb'] = $image_style
->buildUrl($item->entity
->getFileUri());
$image = \Drupal::service('image.factory')
->get($image_style
->buildUri($item->entity
->getFileUri()));
}
else {
$variables['thumb'] = file_create_url($item->entity
->getFileUri());
$image = \Drupal::service('image.factory')
->get($item->entity
->getFileUri());
}
$variables['width'] = $image
->getWidth();
$variables['height'] = $image
->getHeight();
}
Functions
Name | Description |
---|---|
imagezoom_gallery_theme | Implements hook_theme(). |
template_preprocess_imagezoom_gallery | Preprocess function for imagezoom_gallery. |
template_preprocess_imagezoom_thumb | Preprocess function for imagezoom_thumb. |