Хак для 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;

и прямо перед ними вставляем

  //Добавляем watermark
    $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 галереи

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *