Watermark Script (Скрипт «Водяной знак») или опыт добавления водяного знака для Joomla
Joomla, в общем-то мною здесь на блоге, не описывается и не рассматривается, но в свете последних рабочих событий, все же хочу поделиться способом добавления водяного знака на сайт на Joomla, так как очень уж он хорош, на мой взгляд.
На днях нами был сдан заказчице сайт — s-linkdesign.com, сделан он был на Joomla.
Последним штрихом было добавление водяного знака на фотографии из раздела портфолио, так как фото — примеры работ дизайнера и их было необходимо как-то защитить. В общем, начался поиск адекватного расширения для наложения водяного знака. Заказчица хотела, чтобы на фотографиях водяной знак был в виде логотипа сайта, то есть, не надпись, а именно картинка.
В поисках подходящего решения купили столь хваленный Nice Watermark, который, как оказалось, с изображениями вовсе не работает. Так мало того, на стандартные изображения движка, наложить водяной знак, пусть даже и текстовый, целая эпопея — изображений то много, а вручную каждому прописывать класс — дело нецелесообразное и неудобное. И что еще является минусом Nice Watermark — автор ни на одно сообщение не ответил, не отписался и просто не дал знать, что поддерживает своего покупателя (плагин то платный…).
В общем, поиск продолжился и тут на глаза попалось новое решение — Watermark Script (Скрипт «Водяной знак»). То есть, нашли мы не плагин, не модуль, а простой скрипт, но выполняющий свою работу на ура! И, кстати, в процессе, настройки работы скрипта, пришлось списаться с разработчиком скрипта Дмитрием Алферовым, ответ получили быстрый и дружелюбный, при том, что скрипт абсолютно бесплатный.
А теперь к делу — что и как делает скрипт для добавления watermark на изображения сайта? Watermark Script — это PHP скрипт с использованием файла .htaccess. Скрипт работает быстро и легко, так как при первом же запросе к изображению, он создает копию изображения с наложенным на него водяным знаком и помещает его в папку cache и в дальнейшем использует именно его. То есть, скрипту нет надобности каждый раз проводить обработку фото, используется кэш, а это хорошо тем, что не отнимает скорость у сайта.
Кстати, что еще немаловажно, если кто-то захочет сохранить фотографию с сайта на свой компьютер хитрым путем (перетаскиванием, например), чтобы получить чистое изображение без водяного знака (это возможно с многими модулями и плагинами), то ничего у него не выйдет.
Установка и настройка скрипта
1. Скачиваем скрипт Watermark Script (Скрипт «Водяной знак»).
2. Распаковываем архив и в корень сайта загружаем папку watermark со всем ее содержимым. Содержащиеся в ней watermark.png и watermark_m.png меняем на свои изображения. В файл watermark.php можно внести свои корректировки, в файле есть комментарии практически к каждой строке.
3. Файл .htaccess закидывайте в ту папку или папки, содержащие фотографии, на которые должен накладываться водяной знак. Это удобно, так как могут быть такие изображения, на которых не надо накладывать watermark.
4. Как заметил автор, и что абсолютно разумно, не бросайте файл .htaccess в ту папку, в которой уже содержится ваш файл .htaccess, его нельзя перезаписывать.
Важно. Что стоит предпринять если все сделали верно, перепроверили себя на всякий случай, а водяной знак так и не появился?
Сайт верстали на своем хостинге (в ближайшем будущем напишу краткий обзор хостинга, используемого мной для своих и заказных сайтов и магазинов), скрипт впервые опробовали и протестировали именно на рабочем хостинге — никаких проблем со скриптом не возникло — водяной знак сразу же, после загрузки файлов в нужные папки, появился на изображениях.
Но не тут то было, на хостинге заказчицы (ukraine.com.ua) — скрипт заброшен внутрь сайта как положено, а watermark не работает. Ну, раз на прежнем хостинге все было в порядке, то вывод напросился сам собой — проблему надо искать не в скрипте, а в хостинге. Техподдержка хостинга развела руками, пришлось самостоятельно искать корень неработоспособности.
Решение нашлось таким путем. Необходимо зайти на хостинге в настройки сайта, с которым работаем, и найти расширения файлов, для обработки которых используется сервер nginx, и которые не обрабатываются файлом .htaccess. Из списка этих расширений необходимо убрать jpg, jpeg и png, и сохранить. Если используете gif изображения, то и это расширение убирайте из перечня. Иногда подобные изменения требуют времени, например на данном хостинге изменения вступили в силу в течение часа.
Вот и все настройки. Водяной знак надежно приклеился к фотографиям и отлично работает.
На других движках еще не пришлось протестировать скрипт, но уверенна, что джумлой его работоспособность не ограничивается.
Добрый день, не могли бы ли вы подсказать еще какие-то причины по которым может не работать скрипт?
1. в каком формате необходимо прописывать путь к папке watermark в виде https://…./watermark или /home/user/public_html/watermark ?
2. мозможно необходимо давать повышенные права на скрипт или папки скрипта?
3. сайт на хостинге Версия Apache 2.2.25, Версия PHP 5.3.27
4. если просто запускать скрипт на сервере выдается лог со следующими предупреждениями, это может чем-то помочь?
[10-Jun-2015 11:44:01 Europe/Kiev] PHP Warning: imagecreatefromstring() [function.imagecreatefromstring]: Data is not in a recognized format in /home/komandir/public_html/watermark/watermark.php on line 26
[10-Jun-2015 11:44:01 Europe/Kiev] PHP Warning: imagesx() expects parameter 1 to be resource, boolean given in /home/komandir/public_html/watermark/watermark.php on line 29
[10-Jun-2015 11:44:01 Europe/Kiev] PHP Warning: imagesy() expects parameter 1 to be resource, boolean given in /home/komandir/public_html/watermark/watermark.php on line 30
[10-Jun-2015 11:44:01 Europe/Kiev] PHP Warning: imagecopy() expects parameter 1 to be resource, boolean given in /home/komandir/public_html/watermark/watermark.php on line 46
[10-Jun-2015 11:44:01 Europe/Kiev] PHP Warning: imagealphablending() expects parameter 1 to be resource, boolean given in /home/komandir/public_html/watermark/watermark.php on line 48
[10-Jun-2015 11:44:01 Europe/Kiev] PHP Warning: imagesavealpha() expects parameter 1 to be resource, boolean given in /home/komandir/public_html/watermark/watermark.php on line 49
[10-Jun-2015 11:44:01 Europe/Kiev] PHP Warning: imagejpeg() expects parameter 1 to be resource, boolean given in /home/komandir/public_html/watermark/watermark.php on line 52
[10-Jun-2015 11:44:01 Europe/Kiev] PHP Warning: Cannot modify header information — headers already sent by (output started at /home/komandir/public_html/watermark/watermark.php:26) in /home/komandir/public_html/watermark/watermark.php on line 53
[10-Jun-2015 11:44:01 Europe/Kiev] PHP Warning: imagejpeg() expects parameter 1 to be resource, boolean given in /home/komandir/public_html/watermark/watermark.php on line 54
Спасибо Вам огромное, особенно про абзац на счет настроек на хостинге ukraine.com.ua
Не за что) Вроде мелочь, а мешало скрипту работать.
Решение сводится к следующему, в каталог с файлами изображений помещается файл «.htaccess». Кроме него на сервере создается папка «watermark», в которой находится файл скрипта «_watermark.php» и собственно файл водяного знака «watermark.png».
В моем случае не работал из-за отсутствия папки cache в каталоге watermark
У кого остался этот скрипт? Поделитесь, плиз, ссылка мертвая!