PDA

Zobacz pełną wersję : Znak wodny na produktach VirtueMart.



miniol
15-07-2009, 03:58
Znak wodny to bardzo ciekawa i przydatna funkcja zabezpieczająca nasze zdjęcia.

Potrzebne są 3 pliki.

1. .htaccess
2. watermark.php
3. watermark.png

Wszystkie trzy pliki muszą znajdować się w katalogu components\com_virtuemart\shop_image\product


Zawartość pliku .htaccess

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} -f
RewriteRule \.(gif|jpeg|jpg|png)$ watermark.php [QSA,NC]


Zawartość pliku watermark.php

<?php
$path = $_SERVER['DOCUMENT_ROOT'].$_SERVER['REQUEST_URI'];
$image = imagecreatefromstring(file_get_contents($path));
$w = imagesx($image);
$h = imagesy($image);
$watermark = imagecreatefrompng('watermark.png');
$ww = imagesx($watermark);
$wh = imagesy($watermark);
imagecopy($image, $watermark, $w-$ww, $h-$wh, 0, 0, $ww, $wh);
header('Content-type: image/jpeg');
imagejpeg($image);
exit();
?>


W pliku watermark.png dajemy logo znaku wodnego



Znalezione na http://forum.virtuemart.net/index.php?topic=47606.msg169277


Oczywiście można to zastosować także do miniaturek czy zdjęć kategorii. Wtedy postępujemy analogicznie w odpowiednich katalogach.

zwiastun
15-07-2009, 04:26
Jeszcze lepiej byś zrobił, gdybyś dodał w poradniku na wiki.
http://wiki.joomla.pl/VirtueMart/R%C3%B3%C5%BCne_rozwi%C4%85zania

miniol
15-07-2009, 04:39
OK dodane do wiki :)

zwiastun
15-07-2009, 11:24
Lekko poprawione - podejrzyj.
Podziękował!

miniol
16-07-2009, 01:20
Dzięki za poprawki.

Dodałem też jeszcze jedno rozwiązanie.

Jak znajdę więcej czasu to jeszcze podopisuję jakieś rozwiązania, które pamiętam.

jamci
05-11-2009, 20:47
A można to zrobić tak, żeby znak wodny nie pojawiał się w pokazie slajdów losowych produktów? Nieładnie to wygląda, bo czasami znak wodny pojawia się na środku zdjęcia...

miniol
02-04-2012, 09:18
Odpowiedź z kilkuletnim poślizgiem, ale może komuś w przyszłości.
Żeby miniaturki nie zostały przysłonięte dużym znakiem wodnym, wystarczy wrzucić wszystkie te pliki również do katalogu resized. Ale tam wstawiamy mniejsze logo.
Bo jeśli w resized nie ma osobnego skryptu, to dziedziczy on ustawienia z nadrzędnego katalogu.