Перейти к содержимому
Водяной знак

Watermark (водяной знак) для opencart 2.3.0.2

| PW | Opencart

Для добавления водяного знака к изображениям товаров вашего магазина на opencart 2.3.0.2 необходимо выполнить несколько простых действий...

Создайте резервную копию файла
/catalog/model/tool/image.php 

Создайте изображение в формате .png. Сохраните его с именем watermark.png и загрузите в директорию /image вашего сайта. Я создал изображение размером 500х500px.

 

Откройте файл image.php находящийся в директории /catalog/model/tool/ и после строки

$image = new Image(DIR_IMAGE . $image_old);

добавьте следующую строку

$image->watermark(new Image(DIR_IMAGE . 'watermark.png'), 'middlecenter');

middlecenter - это позиция водяного знака отображающая его по центру изображения товара.

Позиция  может принимать следующие значения:

  • topleft - левый верхний угол
  • topcenter - сверху по центру
  • middleleft - слева посередине
  • middleright - справа посередине
  • bottomleft - внизу слева
  • bottomcenter - снизу по центру
  • bottomright - внизу справа

Сохраните файл и перейдите в раздел модификаторы панели администратора сайта. Нажмите кнопку обновить.

После этого необходимо удалить изображения находящиеся в кэше opencart. Для этого перейдите в директорию /image/cache/ и удалите раздел в котором находятся кэшированные изображения товаров. В моем случае это catalog. Очистите кэш браузера и перейдите на сайт. Теперь все изображения товаров отображаются на сайте с водяным знаком находящимся в центре.

Чтобы водяной знак накладывался только на определенные изображения, допустим в карточке товара, необходимо указать размеры изображений для которых будет применен watermark.

В настройках шаблона магазина у меня прописаны следующие значения для размеров изображений в карточке товара.

Добавьте в файл /catalog/model/tool/image.php условие с размерами изображений для обработки.

Замените добавленную ранее строку

$image->watermark(new Image(DIR_IMAGE . 'watermark.png'), 'middlecenter');

на

if ($width == 498 || $height == 498) {
$image->watermark(new Image(DIR_IMAGE . 'watermark.png'), 'middlecenter');
}
if ($width == 600 || $height == 600) {
$image->watermark(new Image(DIR_IMAGE . 'watermark.png'), 'middlecenter');
}