Народ хелп уже сутки сижу ковыряю не могу понять почему не работает скрипт исправил но все ровно не налаживается картинка на товар
Вот сам мануал [url]http://dev.1c-bitrix.ru/community/webdev/user/38775/blog/watermark-in-the-image/[/url]
[url=http://arferion.org:2222/CMD_FILE_MANAGER/domains/arferion.org/public_html/test2/bitrix/php_interface/init.php]init.php[/url]
[CODE] <?
//Подключаем файл с функциями
require_once ($_SERVER['DOCUMENT_ROOT']."/bitrix/php_interface/watermark.php");
//Создание элемента
AddEventHandler("iblock", "OnBeforeIBlockElementAdd",array("MyWatermark", "ImageAdd"));
//Изменение элемента
AddEventHandler("iblock", "OnBeforeIBlockElementUpdate",array("MyWatermark", "ImageUpdate"));
?>[/CODE][url=http://arferion.org:2222/CMD_FILE_MANAGER/domains/arferion.org/public_html/test2/bitrix/php_interface/watermark.php]watermark.php[/url]
[CODE]<?php
class CWatermark{
//Срабатываем при создании элемента
function ImageAdd(&$arFields){
//Указываем нужные ИБ, допустим ваш каталог имеет ID 14
if ($arFields["IBLOCK_ID"] == 9){
if (!empty($arFields["PREVIEW_PICTURE"]["tmp_name"])){
MyWatermark::PostWaterMark(&$arFields["PREVIEW_PICTURE"]["tmp_name"]);
}
//Если заполнено детальное изображение
if (!empty($arFields["DETAIL_PICTURE"]["tmp_name"])){
MyWatermark::PostWaterMark(&$arFields["DETAIL_PICTURE"]["tmp_name"]);
}
//Тут наносим на дополнительное фото, 78 это ID свойства ИБ
foreach ($arFields["PROPERTY_VALUES"]["78"] as $key=>$moreimg)
{
MyWatermark::PostWaterMark(&$arFields["PROPERTY_VALUES"]["78"][$key]['VALUE']['tmp_name']);
}
}
}
//Срабатываем при изменение элемента
function ImageUpdate(&$arFields){
//То же самое, указываем ID ИБ
if ($arFields["IBLOCK_ID"] == 9){
//Если заполнено изображение анонса
if (!empty($arFields["PREVIEW_PICTURE"]["tmp_name"])){
MyWatermark::PostWaterMark(&$arFields["PREVIEW_PICTURE"]["tmp_name"]);
}
//Если заполнено детальное изображение
if (!empty($arFields["DETAIL_PICTURE"]["tmp_name"])){
MyWatermark::PostWaterMark(&$arFields["DETAIL_PICTURE"]["tmp_name"]);
}
//Тут наносим на дополнительное фото, 78 это ID свойства ИБ
foreach ($arFields["PROPERTY_VALUES"]["78"] as $key=>$moreimg)
{
MyWatermark::PostWaterMark(&$arFields["PROPERTY_VALUES"]["78"][$key]['VALUE']['tmp_name']);
}
}
}
function PostWaterMark(&$_image){
//Получаем папку для загрузок
$_upload_dir = COption::GetOptionString("main","upload_dir");
//Открываем картинку для наложения
$wmTarget = $_SERVER['DOCUMENT_ROOT'] ."/bitrix/php_interface/watermark.png";
$resultImage = imagecreatefromjpeg($_image);
imagealphablending($resultImage, true);
//Создаем временную картинку
$_image = $_SERVER['DOCUMENT_ROOT'] . "/" . $_upload_dir. "/tmp/".md5(microtime()).".jpg";
//Загружаем PNG ватермарка
$finalWaterMarkImage = imagecreatefrompng($wmTarget);
//Узнаем размеры картинки водяного знака
$finalWaterMarkWidth = imagesx($finalWaterMarkImage);
$finalWaterMarkHeight = imagesy($finalWaterMarkImage);
//Узнаем размеры загружаемой картинки
$imagesizeW = imagesx($resultImage);
$imagesizeH = imagesy($resultImage);
//Пихаем водяной знак в нижний правый угол картинки
imagecopy($resultImage, $finalWaterMarkImage, $imagesizeW - $finalWaterMarkWidth, $imagesizeH - $finalWaterMarkHeight, 0, 0, $finalWaterMarkWidth, $finalWaterMarkHeight);
imagealphablending($resultImage, false);
imagesavealpha($resultImage, true);
imagejpeg($resultImage, $_image, 100);
imagedestroy($resultImage);
imagedestroy($finalWaterMarkImage);
}
//Очищаем временную папку
function Clear(){
$_upload_dir = COption::GetOptionString("main",
"upload_dir");
$_WFILE = glob($_SERVER['DOCUMENT_ROOT'] . "/" .
$_upload_dir . "/tmp/*.jpg");
foreach($_WFILE as $_file)
unlink($_file);
return true;
}
}
?>
[/CODE]
Вот сам мануал [url]http://dev.1c-bitrix.ru/community/webdev/user/38775/blog/watermark-in-the-image/[/url]
[url=http://arferion.org:2222/CMD_FILE_MANAGER/domains/arferion.org/public_html/test2/bitrix/php_interface/init.php]init.php[/url]
[CODE] <?
//Подключаем файл с функциями
require_once ($_SERVER['DOCUMENT_ROOT']."/bitrix/php_interface/watermark.php");
//Создание элемента
AddEventHandler("iblock", "OnBeforeIBlockElementAdd",array("MyWatermark", "ImageAdd"));
//Изменение элемента
AddEventHandler("iblock", "OnBeforeIBlockElementUpdate",array("MyWatermark", "ImageUpdate"));
?>[/CODE][url=http://arferion.org:2222/CMD_FILE_MANAGER/domains/arferion.org/public_html/test2/bitrix/php_interface/watermark.php]watermark.php[/url]
[CODE]<?php
class CWatermark{
//Срабатываем при создании элемента
function ImageAdd(&$arFields){
//Указываем нужные ИБ, допустим ваш каталог имеет ID 14
if ($arFields["IBLOCK_ID"] == 9){
if (!empty($arFields["PREVIEW_PICTURE"]["tmp_name"])){
MyWatermark::PostWaterMark(&$arFields["PREVIEW_PICTURE"]["tmp_name"]);
}
//Если заполнено детальное изображение
if (!empty($arFields["DETAIL_PICTURE"]["tmp_name"])){
MyWatermark::PostWaterMark(&$arFields["DETAIL_PICTURE"]["tmp_name"]);
}
//Тут наносим на дополнительное фото, 78 это ID свойства ИБ
foreach ($arFields["PROPERTY_VALUES"]["78"] as $key=>$moreimg)
{
MyWatermark::PostWaterMark(&$arFields["PROPERTY_VALUES"]["78"][$key]['VALUE']['tmp_name']);
}
}
}
//Срабатываем при изменение элемента
function ImageUpdate(&$arFields){
//То же самое, указываем ID ИБ
if ($arFields["IBLOCK_ID"] == 9){
//Если заполнено изображение анонса
if (!empty($arFields["PREVIEW_PICTURE"]["tmp_name"])){
MyWatermark::PostWaterMark(&$arFields["PREVIEW_PICTURE"]["tmp_name"]);
}
//Если заполнено детальное изображение
if (!empty($arFields["DETAIL_PICTURE"]["tmp_name"])){
MyWatermark::PostWaterMark(&$arFields["DETAIL_PICTURE"]["tmp_name"]);
}
//Тут наносим на дополнительное фото, 78 это ID свойства ИБ
foreach ($arFields["PROPERTY_VALUES"]["78"] as $key=>$moreimg)
{
MyWatermark::PostWaterMark(&$arFields["PROPERTY_VALUES"]["78"][$key]['VALUE']['tmp_name']);
}
}
}
function PostWaterMark(&$_image){
//Получаем папку для загрузок
$_upload_dir = COption::GetOptionString("main","upload_dir");
//Открываем картинку для наложения
$wmTarget = $_SERVER['DOCUMENT_ROOT'] ."/bitrix/php_interface/watermark.png";
$resultImage = imagecreatefromjpeg($_image);
imagealphablending($resultImage, true);
//Создаем временную картинку
$_image = $_SERVER['DOCUMENT_ROOT'] . "/" . $_upload_dir. "/tmp/".md5(microtime()).".jpg";
//Загружаем PNG ватермарка
$finalWaterMarkImage = imagecreatefrompng($wmTarget);
//Узнаем размеры картинки водяного знака
$finalWaterMarkWidth = imagesx($finalWaterMarkImage);
$finalWaterMarkHeight = imagesy($finalWaterMarkImage);
//Узнаем размеры загружаемой картинки
$imagesizeW = imagesx($resultImage);
$imagesizeH = imagesy($resultImage);
//Пихаем водяной знак в нижний правый угол картинки
imagecopy($resultImage, $finalWaterMarkImage, $imagesizeW - $finalWaterMarkWidth, $imagesizeH - $finalWaterMarkHeight, 0, 0, $finalWaterMarkWidth, $finalWaterMarkHeight);
imagealphablending($resultImage, false);
imagesavealpha($resultImage, true);
imagejpeg($resultImage, $_image, 100);
imagedestroy($resultImage);
imagedestroy($finalWaterMarkImage);
}
//Очищаем временную папку
function Clear(){
$_upload_dir = COption::GetOptionString("main",
"upload_dir");
$_WFILE = glob($_SERVER['DOCUMENT_ROOT'] . "/" .
$_upload_dir . "/tmp/*.jpg");
foreach($_WFILE as $_file)
unlink($_file);
return true;
}
}
?>
[/CODE]