Albireo CMS 2025.01.17

Функция hThumb() Albireo CMS

/**
 * Создание миниатюры на основе ZebraImage и формирование готового IMG, и обрамляющей ссылки
 * @param string $src — путь к исходному large-изображению
 * @param array $attr — прочие параметры изобаражения IMG
 * @param int $width — ширина миниатюры
 * @param int $height — высота миниатюры
 * @param string $ext — расширение миниатюры
 * @param array $link — параметры ссылки
 * @param int $quality — качество сжатия миниатюры для JPG и WEBP
 * @param int $method — метод изменения размера ZEBRA_IMAGE_CROP_CENTER = 6 — лучше использовать числа из ZebraImage
 * @param int $bgColor — фон, если метод позволяет
 * @param int $alert — выводить сообщения об ошибках
 * @param bool $keepName — сохранить имя файла, поменять только расширение если оно отличается от итогового
 * @param bool $compareSize — еслит true, то сравнивать арзмер исходного и итогового изображения. Если итоговое больше, чем исходное, то отдавать исходное
 * @return string
 *
 * Функцию нужно использовать с именованными аргументами!
 *
 * Если исходный и итоговый файлы имеют один размер (высоту и ширину), то миниатюра не создаётся, 
 * а возвращается исходный файл.
 * 
 * Вывод готовой миниатюры на основе существующего файла
 * <?= hThumb('@UPLOADS_URL@ogp-default.jpg', 900, attr: ['auto', 'alt/title'=>'Подсказка1']) ?>
 *
 * Обрамить вывод в ссылку — для glightbox /  нужно включить в записи -> use.glightbox: +
 * <?= hThumb('@UPLOADS_URL@ogp-default.jpg', width: 300, link: ['class' => 'glightbox', 'data-title'=>'Your title'], attr: ['auto', 'alt/title'=>'Подсказка']) ?>
 *
 **/
function hThumb(string $src, int $width = 0, int $height = 0, string $ext = 'webp', array $attr = [], array $link = [], int $quality = 80, bool $urlOnly = false, bool $keepName = false, int $method = 6, string $bgColor = '#fff', bool $alert = true, bool $compareSize = true)