Files
conservatorio-tomadini/plugins/fields/acfgallery/tmpl/acfgallery.php
2024-12-31 11:07:09 +01:00

83 lines
3.4 KiB
PHP

<?php
/**
* @package Advanced Custom Fields
* @version 2.8.8 Pro
*
* @author Tassos Marinos <info@tassos.gr>
* @link http://www.tassos.gr
* @copyright Copyright © 2019 Tassos Marinos All Rights Reserved
* @license GNU GPLv3 <http://www.gnu.org/licenses/gpl.html> or later
*/
defined('_JEXEC') or die;
if (!$gallery_data = $field->value)
{
return;
}
require_once JPATH_SITE . '/plugins/fields/acfgallery/fields/helper.php';
if (is_string($gallery_data) && !$gallery_data = json_decode($gallery_data, true))
{
return;
}
$gallery_items = isset($gallery_data['items']) ? $gallery_data['items'] : [];
$style = $fieldParams->get('style', 'grid');
$style = ACFGalleryHelper::getStyle($style);
$payload = [
'items' => ACFGalleryHelper::prepareItems($gallery_items),
'ordering' => $fieldParams->get('ordering', 'default'),
'lightbox' => $fieldParams->get('lightbox', '0') === '1',
'module' => $fieldParams->get('module', ''),
'justified_item_height' => $fieldParams->get('justified_item_height'),
'thumb_width' => $fieldParams->get('thumb_width', ''),
'thumb_height' => $style === 'grid.svg' ? $fieldParams->get('thumb_height', '0') : null,
'style' => $style,
'columns' => $fieldParams->get('devices_columns.columns', []),
'gap' => $fieldParams->get('devices_gap.gap', []),
// tags
'tags_position' => $fieldParams->get('tags.position', 'disabled'),
'tags_ordering' => $fieldParams->get('tags.ordering', 'default'),
'all_tags_item_label' => $fieldParams->get('tags.all_tags_item_label', 'All'),
'tags_mobile' => $fieldParams->get('tags.mobile', 'show'),
'tags_text_color' => $fieldParams->get('tags.text_color', '#555'),
'tags_text_color_hover' => $fieldParams->get('tags.text_color_hover', '#fff'),
'tags_bg_color_hover' => $fieldParams->get('tags.bg_color_hover', '#1E3148')
];
// Set custom layout
if ($field->params->get('acf_layout_override'))
{
$payload['layout'] = $field->params->get('acf_layout_override');
}
$widgetName = $style === 'slideshow' ? 'Slideshow' : 'Gallery';
// Add Slideshow-related payload
if ($style === 'slideshow')
{
$payload = array_merge($payload, [
'lightbox' => $fieldParams->get('slideshow_lightbox', '0') === '1',
'module' => $fieldParams->get('slideshow_module', ''),
'ordering' => $fieldParams->get('ordering', 'default'),
'slides_per_view' => $fieldParams->get('slides_per_view', ['desktop' => 1]),
'space_between_slides' => $fieldParams->get('space_between_slides', ['desktop' => 10]),
'infinite_loop' => $fieldParams->get('infinite_loop', '0') === '1',
'keyboard_control' => $fieldParams->get('keyboard_control', '0') === '1',
'autoplay' => $fieldParams->get('autoplay', '0') === '1',
'autoplay_delay' => $fieldParams->get('autoplay_delay', 3000),
'autoplay_progress' => $fieldParams->get('autoplay_progress', '0') === '1',
'show_thumbnails' => $fieldParams->get('show_thumbnails', '0') === '1',
'show_thumbnails_arrows' => $fieldParams->get('show_thumbnails_arrows', '0') === '1',
'nav_controls' => $fieldParams->get('nav_controls', 'none'),
'theme_color' => $fieldParams->get('theme_color', '#333'),
'transition_effect' => $fieldParams->get('transition_effect', 'slide')
]);
}
echo \NRFramework\Widgets\Helper::render($widgetName, $payload);