Хак для DatsoGallery Отображение Watermark в мини эскизах
Те кто работал с галереей знают что она накладывает ватермарки токо на полную картинку.
Так что вот вам хак для наложения ватермарка и на мини эскизы тоже.
И так приступим,
1 - делаем картинку watermark_small.png (у меня она просто с непрозрачным фоном в примере) и кладем по адресу componentscom_datsogallery Размер картинки делается в соответствии с размером мини-эскиза.
2 - файл datsogallery.php
После строки
$thumbnailpath = $mosConfig_live_site . $ad_paththumbs . "/";
добавляем еще одну
$thumbnaildir = $mosConfig_absolute_path . $ad_paththumbs . "/";
находим строки
$dghits = _DG_HITS;
$dgvotes = _DG_RATING;
$dgcomment = _DG_COMMENT1;
$dgvotes = _DG_RATING;
$dgcomment = _DG_COMMENT1;
и прямо перед ними вставляем
//Добавляем watermark
$wm = $mosConfig_live_site."/".$dgurl."&func=wmark";
$wm = str_replace("&","&",$wm)."&";
////////////////////
$wm = $mosConfig_live_site."/".$dgurl."&func=wmark";
$wm = str_replace("&","&",$wm)."&";
////////////////////
Далее на пару строк ниже находим
echo "onmouseout="return nd();"><img src='$thumbnailpath$row1->imgthumbname' style='".$ad_imgstyle."' style="max-width:600px;" alt='".$tle."' /></a><br />";
и заменяем на
echo "onmouseout="return nd();"><img src='".$wm."tid=".$row1->id."' style='".$ad_imgstyle."' style="max-width:600px;" alt='".$tle."' /></a><br />";
3 - файл sub_wm.php - полностью заменяем его содержимое на:
<?php
/***************************************************
** DatsoGallery - A Joomla! Gallery Component **
** Copyright (C) 2006-2008 by Andrey Datso **
** Version : 1.6 **
** Homepage : http://www.datso.fr **
** License : Copyright, don't distribute **
** Modified by : Aliaksandr Rudik **
***************************************************/
defined ('_VALID_MOS') or die('Direct Access to this location is not allowed.');
$pic = "";
$path = "";
$id = 0;
$tid = intval( mosGetParam( $_REQUEST, 'tid', 0 ) );
$mid = intval( mosGetParam( $_REQUEST, 'mid', 0 ) );
$oid = intval( mosGetParam( $_REQUEST, 'oid', 0 ) );
if ($tid) {
$pic = "imgthumbname";
$path = $thumbnaildir;
$id = $tid;
$watermark = $gallerydir.'/watermark_small.png';
} else if ($mid) {
$pic = "imgfilename";
$path = $picturedir;
$id = $mid;
$watermark = $gallerydir.'/watermark.png';
} else if ($oid) {
$pic = "imgoriginalname";
$path = $originaldir;
$id = $oid;
$watermark = $gallerydir.'/watermark.png';
}
if ($id) {
$database->setQuery("select c.access "
. " from #__datsogallery_catg as c "
. " left join #__datsogallery as a on a.catid = c.cid "
. " where a.id = $id ");
$c_access = $database->loadResult();
if ($gid < $c_access) {
exit;
}else{
$database->setQuery("select a.$pic "
. " from #__datsogallery as a "
. " where a.id = $id ");
$pic = $database->loadResult();
$pic = $path.$pic;
}
$img_info = getimagesize($pic);
if (!$img_info) {
exit;
}else{
//$watermark = $gallerydir.'/watermark.png';
$watermark = imagecreatefrompng($watermark);
$watermark_width = imagesx($watermark);
$watermark_height = imagesy($watermark);
$image = imagecreatetruecolor($watermark_width, $watermark_height);
$image = imagecreatefromjpeg($pic);
$size = getimagesize($pic);
$dest_x = $size[0] - $watermark_width - 5;
$dest_y = $size[1] - $watermark_height - 5;
imagecopyresampled($image, $watermark, $dest_x, $dest_y, 0, 0, $watermark_width, $watermark_height, $watermark_width, $watermark_height);
header('content-type: image/jpeg');
imagejpeg($image, '', $dest_qual=95);
imagedestroy($image);
imagedestroy($watermark);
}
}
?>
Все, хак окончен, как оно выглядит и работает вы могли увидеть на скрине.
Проверялось на оригинальной 12-й версии и 1.6 галереи