Watermark в doit-cms

Для создания и использования watermark в doit-cms необходимо создать специализированнаую функцию, которая будет отвечать за создание и вывод изображения с watermark'ом.

Создание функции watermark()

В папке app создаем папку с названием mod_watermark. Далее, в папке mod_watermark создаем php файл с именем watermark.func.php. Копируем в этот файл нижепреведенный код:

<?php
function generate_watermark($jpeg, $png, $result)
{
	
	$ext  = strtolower(substr(strrchr($jpeg, '.'), 1));
	
	$stamp = imagecreatefrompng($png);
	
	switch ($ext){
		case 'jpg':
		$im = imagecreatefromjpeg($jpeg);
		break;
		
		case 'jpeg':
		$im = imagecreatefromjpeg($jpeg);
		break;
		
		case 'png':
		$im = imagecreatefrompng($jpeg);
		break;
	
		case 'gif':
		$im = imagecreatefromgif($jpeg);
		break;
		
		case 'bmp':
		$im = imagecreatefromgif($jpeg);
		break;
	
	}
	


	$marge_right = 2;
	$marge_bottom = 2;
	$sx = imagesx($stamp);
	$sy = imagesy($stamp);


	imagecopy($im, $stamp, imagesx($im) - $sx - $marge_right, imagesy($im) - $sy - $marge_bottom, 0, 0, 
        imagesx($stamp), imagesy($stamp));
	imagejpeg($im,$result);

} 

function watermark($image)
{
	
	$new_watermark = md5($image).'-w';
	$imagenew = preg_replace('/[a-z0-9]{32}/',$new_watermark,$image);
	if(!file_exists($_SERVER['DOCUMENT_ROOT'].$imagenew)){
		generate_watermark($_SERVER['DOCUMENT_ROOT'].$image, 'ПУТЬ ДО Watermark', 
                $_SERVER['DOCUMENT_ROOT'].$imagenew);
	}
	return $imagenew;
}

В строке 51 фразу ПУТЬ ДО Watermark необходимо заменить на действующий путь до watermark'а.

Функция для работы с watermark готова. Что бы использовать изображения с нанесенным на них watermark'ом, в шаблоне прописываем:

<img src= "{.image|watermark}"> или <a href="{.image|watermark}">

Ниже, сможете скачать файл watermark.func.php


Скачать watermark.func.zip