<?php if (!defined('BASEPATH')) exit('No direct script access allowed');
// Домашняя страница: https://github.com/ganlanyuan/tiny-slider
// Примеры: http://ganlanyuan.github.io/tiny-slider/demo/
// ! добавил js-my-add.txt в tiny-slider.min.js в конец файла
// файлы грузим сразу, чтобы ускорить отображение слайдеров
mso_add_file('assets/tiny-slider.min.js', false, __DIR__);
mso_add_file('assets/tiny-slider.css', false, __DIR__);
// хак со стилями нужен, чтобы слайдер не «моргал»
echo '<style>.tns-liveregion{display: none}</style>';
/**
* функция для формирования и вывода js-кода слайдера
*/
if (!function_exists('tinyslider')) {
function tinyslider(array $slider)
{
$config = $slider['config'] ?? '';
// преобразования для js
$config = trim($config);
$config = trim($config, ',');
if ($config) $config .= ',';
// уникальный js-id
$sliderJS = 'slider' . $slider['id']; // $slider['id'] — обязательный параметр
// принудительная загрузка основной библиотеки
// используется в слайдерах, которые загружаются как компоненты Module1/2
$tnsLoad = $slider['tns-load'] ?? false;
if ($tnsLoad) echo '<script src="' . getinfo('template_url') . 'distr/tiny-slider/assets/tiny-slider.min.js"></script>';
// буферизация для сжатия js-кода
ob_start();
?>
<script>
const <?= $sliderJS ?> = tns({
container: '#<?= $slider['id'] ?>',
controls: false,
autoplayButtonOutput: false,
<?= $config ?>
onInit: function(info) {
document.addEventListener('DOMContentLoaded', function() {
info.slideItems[1].classList.remove('visibility-hidden');
tnsChange(info);
});
},
});
document.querySelector('#<?= $slider['id'] ?>next').onclick = function() {
<?= $sliderJS ?>.goTo('next');
};
document.querySelector('#<?= $slider['id'] ?>prev').onclick = function() {
<?= $sliderJS ?>.goTo('prev');
};
<?= $sliderJS ?>.events.on('indexChanged', tnsCustomizedFunction);
</script>
<?php
$out = trim(ob_get_contents());
ob_end_clean();
// если в js-коде есть «//»-комментарий, то используем мягкое сжатие без удаления \n
if (strpos($out, '//') !== false)
echo str_replace(["\t", ' ', ' ', ' '], '', $out);
else
echo str_replace(["\r", "\n", "\t", ' ', ' ', ' '], '', $out);
}
}
# end of file