Логотип StingRay

Социальные сети
FacebookInstagramRSSTwitterYouTubeВ контактеОдноклассники
FacebookInstagramRSSTwitterYouTubeВ контактеОдноклассники
Силуэт человека

Несколько фокусов с CMS Joomla! Автогенерация и отображение эскизов фотоальбомов модулем RokBox


Автогенерация и отображение эскизов фотоальбомов модулем RokBox

RokBox – отличный дополнительный модуль для Joomla, позволяющий быстро организовать на сайте симпатичный просмотр картинок и фотографий. Особенно хорошо он ещё и тем, что сам, автоматически генерирует эскизы (миникартинки) фотоальбомов (размером 150х100 по умолчанию)… Проблема вся в том, что размеры автогенерируемых эскизов заданы жёстко, без учёта фактической ориентации и соотношения сторон оригинальной фотографии, что на практике приводит к получению абы как обрезанных миникартинок (например, минифото человека с обрезанной головой). 🙁

Конечно, эскизы можно сгенерировать самому, пакетной обработкой папки с фотографиями какой-нибудь программой-просмотрщиком (например, я делаю это бесплатным FastStone Image Viewer) и закачать их с соответствующим суффиксом (“_thumb” по умолчанию) в FTP-папку с оригинальными фотографиями. Однако и тут жёсткие настройки размеров эскизов RokBox всё испортят – при выводе эскизов они будут использованы в качестве жёстких значений параметров Width и Height тега <Img>, в результате чего мы получим эскизы с искажёнными пропорциями. 🙁

Чтобы решить проблему(-ы), потребуется вмешательство в код модуля. Благо, вмешательство минимальное:

/plugins/content/rokbox.xml


<param name="thumb_width" type="text" default="" label="Thumbnail width in px" description="This is the width of the generated thumbnail if one is not found with the set thumb extension"></param>
<param name="thumb_height" type="text" default="" label="Thumbnail height in px" description="This is the height of the generated thumbnail if one is not found with the set thumb extension"></param>

/plugins/content/rokbox.php


$thumb_width = $botParams->def('thumb_width', '');
$thumb_height = $botParams->def( 'thumb_height', '');

$rd->loadImage($image_filename);

if ($image_width > $image_height)
 {
  $new_image_width = 150;
  $new_image_height = round ($image_height / $image_width * $new_image_width);
 }
else
 {
  $new_image_height = 150;
  $new_image_width = round ($image_width / $image_height * $new_image_height);
 };

Конечно, тут меня можно упрекнуть в том, что я тоже использую жёстко заданные размеры эскизов (150 пикселей по большей стороне), однако автогенерируемые эскизы получаются у меня не обрезанными, а полностью соответствующими оригинальным фотографиям, и отображаются они без искажения пропорций – это для моей задачи было главным. Желающие могут доработать моё решение, чтобы размеры эскизов можно было всё-таки задавать через административный веб-интерфейс в настройках модуля (буду благодарен, если кто-то в виде комментария предложит тут свою доработку).

Добавьте свой комментарий или войдите, чтобы подписаться/отписаться.
OpenId
Предпросмотр
Улыбка Подмигивание Дразнит Оскал Смех Огорчение Сильное огорчение Шок Сумасшествие Равнодушие Молчание Крутизна Злость Бешенство Смущение Сожаление Влюблённость Ангел Демон Задумчивость Рука-лицо Не могу смотреть Жирный Курсив Подчёркивание Зачёркивание Размер шрифта Гиперссылка Цитата
Загрузка…