Водяной знак на дополнительных фотографиях товара в 1С-Битрикс - разработка и поддержка сайтов BUSSOL


Заказать разработку

Водяной знак на дополнительных фотографиях товара в 1С-Битрикс

Автор:

Дата публикации:

Водяной знак на дополнительных фотографиях товара в 1С-Битрикс

Защита информации от копирования - довольно частая проблема, если вы владелец уникального блога или интернет-магазина. Установка на изображения водяных знаков - один из способов защиты изображений от копирования и незаконного использования. Из коробки 1С-Битрикс идет функционал установки водяного знака на превью и детальное изображение товара. Но как быть, если водяной знак нужно установить на дополнительные фотографии, которые отображаются в слайдере товара, т.е. картинки из свойства типа ФАЙЛ? В админке такого функционала нет, но к счастью такой функционал есть в Bitrix API.

Для начала создайте какой-нибудь водяной знак в какой-нибудь графическом редакторе, желательно в формате png, чтобы установить ему прозрачность 70%. Водяные знаки обычно делают полупрозрачными. В моем случае я создал водяной знак с именем watermark.png и поместил его в папку images, что находится в корне сайта. В примере, показанном в видео, я устанавливаю водяной знак на дополнительные изображения товара, что обычно отображаются в слайдере на детальной странице. Дополнительные изображения - это свойство типа файл с кодом MORE_PHOTO. Следовательно теперь мы должны зайти в папку шаблона компонента детальной страницы товара catalog.element.

В этой папке нам нужен только файл result_modifier.php. Если у вас его нет, то создайте его. В него нужно внести следующий код:


$arWaterMark = [
array(
"name" => "watermark",
"position" => "center",
"type" => "image",
"size" => "real",
"file" => $_SERVER["DOCUMENT_ROOT"].'/images/watermark.png',
"fill" => "exact",
)
];

foreach ($arResult['MORE_PHOTO'] as $key => $arFile) {
$arResizeFile = CFile::ResizeImageGet(
$arFile["ID"],
array("width" => $arFile["WIDTH"], 'height' => $arFile["HEIGHT"]),
BX_RESIZE_IMAGE_PROPORTIONAL,
true,
$arWaterMark
);

$arResult['MORE_PHOTO'][$key]["SRC"] = $arResizeFile["src"];
}

Теперь немного пояснений. Сначала нужно создать массив $arWaterMark, который описывает файл водяного знака. Описание ключей этого массива смотрите в видео. Затем цикл перебирает все картинки из свойства MORE_PHOTO, накладывает на каждую водяной знак с помощью метода ResizeImageGet класса CFile без изменения размеров самого изображения (т.к. задача состоит только в нанесении на изображение водяного знака). И далее, в конце каждой итерации меняем значение ключа SRC для каждой картинки на значение ключа SRC новой полученной картинки.

Более подробно об нанесении водяного знака на дополнительные картинки товара в 1С-Битрикс смотрите в видео выше.

241027, Россия, Брянская область, поселок Путевка, улица Рослальская, дом 8, кв.121
Телефон: +7 (953) 298-86-66

11 июля 2023


Защита информации от копирования - довольно частая проблема, если вы владелец уникального блога или интернет-магазина. Установка на изображения водяных знаков - один из способов защиты изображений от копирования и незаконного использования. Из коробки 1С-Битрикс идет функционал установки водяного знака на превью и детальное изображение товара. Но как быть, если водяной знак нужно установить на дополнительные фотографии, которые отображаются в слайдере товара, т.е. картинки из свойства типа ФАЙЛ? В админке такого функционала нет, но к счастью такой функционал есть в Bitrix API.

Для начала создайте какой-нибудь водяной знак в какой-нибудь графическом редакторе, желательно в формате png, чтобы установить ему прозрачность 70%. Водяные знаки обычно делают полупрозрачными. В моем случае я создал водяной знак с именем watermark.png и поместил его в папку images, что находится в корне сайта. В примере, показанном в видео, я устанавливаю водяной знак на дополнительные изображения товара, что обычно отображаются в слайдере на детальной странице. Дополнительные изображения - это свойство типа файл с кодом MORE_PHOTO. Следовательно теперь мы должны зайти в папку шаблона компонента детальной страницы товара catalog.element.

В этой папке нам нужен только файл result_modifier.php. Если у вас его нет, то создайте его. В него нужно внести следующий код:


$arWaterMark = [
array(
"name" => "watermark",
"position" => "center",
"type" => "image",
"size" => "real",
"file" => $_SERVER["DOCUMENT_ROOT"].'/images/watermark.png',
"fill" => "exact",
)
];

foreach ($arResult['MORE_PHOTO'] as $key => $arFile) {
$arResizeFile = CFile::ResizeImageGet(
$arFile["ID"],
array("width" => $arFile["WIDTH"], 'height' => $arFile["HEIGHT"]),
BX_RESIZE_IMAGE_PROPORTIONAL,
true,
$arWaterMark
);

$arResult['MORE_PHOTO'][$key]["SRC"] = $arResizeFile["src"];
}

Теперь немного пояснений. Сначала нужно создать массив $arWaterMark, который описывает файл водяного знака. Описание ключей этого массива смотрите в видео. Затем цикл перебирает все картинки из свойства MORE_PHOTO, накладывает на каждую водяной знак с помощью метода ResizeImageGet класса CFile без изменения размеров самого изображения (т.к. задача состоит только в нанесении на изображение водяного знака). И далее, в конце каждой итерации меняем значение ключа SRC для каждой картинки на значение ключа SRC новой полученной картинки.

Более подробно об нанесении водяного знака на дополнительные картинки товара в 1С-Битрикс смотрите в видео выше.

ДРУГИЕ СТАТЬИ

Возврат к списку
Бизнес-партнер 1С-Битрикс24 Gold partner INTEC

Заказать проект или работы:

Проверяем мессенджеры и почту 3 раза в день. Отвечаем в течении 24-х часов.

Заказать разработку