TimThumb by TCSE 0.3 : кадрирование картинок
Модуль для кадрирования изображений в публикациях сайта. Сделан для DLE на основе TimThumb – PHP Image Resizer. Он позволяет ссылку на любое изображение, добавленное в шаблон сайта, перенарезать в новых пропорциях и размерах. Для этого модуль автоматически скачает исходное изображение и создаст его копию с заданными параметрами в папке engine/modules/mod_tcse/timthumb/cache/, которую можно поменять по своему вкусу.
Использование данного модуля наиболее актуально при создании AMP-версий публикаций сайта, так как картинки в amp-img должны обязательно иметь ширину и высоту. Без этих параметров они не будут обработаны Google.
<amp-img src="/resize?src={image-1}&w=480&h=240&a=c" width="480" height="240" layout="responsive" alt="..."></amp-img>
При использовании ссылки на картинку через строку /resize?src={image-1}&w=480&h=240&a=c мы создаем точный размер картинки именно с заданными параметрам для AMP изображений.
К примеру у вас есть оригинал картинки 1024х680px и для ускорения загрузки списка кратких новостей, при просмотра с мобильника, необходимо сгенерировать миниатюры в виде квадратов 360x360px. В этом случае будет достаточно в шаблоне краткой новости заменить вывод картинки с условной:
<img src="{image-1}" alt="">
на
<img src="/resize?src={image-1}&w=360&h=360&a=c" alt="">
В настройках PHP класса, отвечающего за генерацию скадрированных изображений, можно указать свой срок хранения кеша. По умолчанию картинка хранится двое суток. Кеш картинок очищается каждые 2 суток. Эти параметры находятся в engine/modules/mod_tcse/timthumb/timthumb.php.
FILE_CACHE_TIME_BETWEEN_CLEANS и FILE_CACHE_MAX_FILE_AGE:
на скриншоте показан параметр жизни кеша в 1 сутки. 86400/60/60/24=1
Установка:
1. Установить модуль через систему плагинов в DLE.
2. У engine/modules/mod_tcse/timthumb/cache, для создания миниатюр скадрированных изображений, необходимо установить права 775.
3. Открыть в корне сайта .htaccess и найти:
RewriteEngine On
Добавить ниже:
# TimThumb – PHP Image Resizer
RewriteRule ^resize$ /engine/modules/mod_tcse/timthumb/timthumb.php [L]
4. При необходимости внести правки в engine/modules/mod_tcse/timthumb/timthumb-config.php:
Пояснение по переменным:
define('ALLOW_ALL_EXTERNAL_SITES', false);
- Разрешить получение изображений с внешних веб-сайтов (только TRUE или FALSE)
Если TRUE - будет обрабатывать картинки с любых сайтов, копирую их себе.
Если FALSE - то внешние изображения будут извлекаться только из этих доменов и их поддоменов: flickr.com, staticflickr.com, picasa.com, img.youtube.com, upload.wikimedia.org, photobucket.com, imgur.com, imageshack.us, tinypic.com
define ('FILE_CACHE_TIME_BETWEEN_CLEANS', 86400);
- Как часто очищается кеш (только число в миллисекундах)
Параметр жизни кеша в 1 сутки.
86400/60/60/24=1
define ('FILE_CACHE_MAX_FILE_AGE', 86400);
- Сколько лет должно быть файлу для удаления из кеша (только число в миллисекундах)
Параметр жизни кеша в 1 сутки.
86400/60/60/24=1
5. В шаблонах краткой или полной новостей, соответственно shortstory.tpl и fullstory.tpl, для кадрирования добавить:
<img src="/resize?src={image-1}&w=775q=80&a=c" alt="">
где в параметре w=775q=80&a=c - w=775 это ширина картинки, q=80 качество сжатия, a=c центрирование изображения.
Еще пример:
<img src="/resize?src={image-1}&w=480&h=240&a=c" alt="">
где в параметре &w=480&h=240&a=c - w=480 это ширина картинки, h=240 высота картинки, a=c центрирование изображения. {image-1} - тег вывода первой картинки в теле публикации.
Готово!
Важно: модуль создает повышенную нагрузку на ваш хостинг. Если на сайте множество публикаций и одновременный просмотр страниц сайта большим количеством посетителей, то папка кеша с картинками быстро заполниться на 9998 файлов и далее будет висеть пока по лимиту не начнут удаляться старые изображения. В качестве возможного решения - уменьшение времени жизни кеша картинки.
Важно: эта версия с конфигом без админки.
• Кодировка: utf-8
• Автор: TCSE
• Источник
Примечание от Oxigen:
Посетители, находящиеся в группе Гость, не могут оставлять комментарии к данной публикации.