aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--admin/configuration.php3
-rw-r--r--admin/include/configuration_watermark_process.inc.php2
-rw-r--r--admin/themes/default/template/configuration_watermark.tpl7
-rw-r--r--i.php22
-rw-r--r--include/derivative_std_params.inc.php2
-rw-r--r--language/en_UK/admin.lang.php1
6 files changed, 28 insertions, 9 deletions
diff --git a/admin/configuration.php b/admin/configuration.php
index e7e6033c8..f363021f8 100644
--- a/admin/configuration.php
+++ b/admin/configuration.php
@@ -578,7 +578,7 @@ switch ($page['section'])
$position = 'bottomright';
}
- if ($wm->xrepeat != 0)
+ if ($wm->xrepeat != 0 || $wm->yrepeat != 0)
{
$position = 'custom';
}
@@ -592,6 +592,7 @@ switch ($page['section'])
'xpos' => $wm->xpos,
'ypos' => $wm->ypos,
'xrepeat' => $wm->xrepeat,
+ 'yrepeat' => $wm->yrepeat,
'opacity' => $wm->opacity,
'position' => $position,
)
diff --git a/admin/include/configuration_watermark_process.inc.php b/admin/include/configuration_watermark_process.inc.php
index ad23d92a2..2eeb381af 100644
--- a/admin/include/configuration_watermark_process.inc.php
+++ b/admin/include/configuration_watermark_process.inc.php
@@ -126,6 +126,7 @@ if (count($errors) == 0)
$watermark->xpos = intval($pwatermark['xpos']);
$watermark->ypos = intval($pwatermark['ypos']);
$watermark->xrepeat = intval($pwatermark['xrepeat']);
+ $watermark->yrepeat = intval($pwatermark['yrepeat']);
$watermark->opacity = intval($pwatermark['opacity']);
$watermark->min_size = array(intval($pwatermark['minw']),intval($pwatermark['minh']));
@@ -135,6 +136,7 @@ if (count($errors) == 0)
|| $watermark->xpos != $old_watermark->xpos
|| $watermark->ypos != $old_watermark->ypos
|| $watermark->xrepeat != $old_watermark->xrepeat
+ || $watermark->yrepeat != $old_watermark->yrepeat
|| $watermark->opacity != $old_watermark->opacity;
// save the new watermark configuration
diff --git a/admin/themes/default/template/configuration_watermark.tpl b/admin/themes/default/template/configuration_watermark.tpl
index 11343057d..24e2a346e 100644
--- a/admin/themes/default/template/configuration_watermark.tpl
+++ b/admin/themes/default/template/configuration_watermark.tpl
@@ -111,6 +111,13 @@
<input size="3" maxlength="3" type="text" name="w[xrepeat]" value="{$watermark.xrepeat}"{if isset($ferrors.watermark.xrepeat)} class="dError"{/if}>
{if isset($ferrors.watermark.xrepeat)}<span class="dErrorDesc" title="{$ferrors.watermark.xrepeat}">!</span>{/if}
</label>
+
+ <br>
+ <label>{'Y Repeat'|translate}
+ <input size="3" maxlength="3" type="text" name="w[yrepeat]" value="{$watermark.yrepeat}"{if isset($ferrors.watermark.yrepeat)} class="dError"{/if}>
+ {if isset($ferrors.watermark.yrepeat)}<span class="dErrorDesc" title="{$ferrors.watermark.yrepeat}">!</span>{/if}
+ </label>
+
</div>
</li>
diff --git a/i.php b/i.php
index 0f242cf2d..3666eb5c5 100644
--- a/i.php
+++ b/i.php
@@ -575,17 +575,23 @@ if ($params->will_watermark($d_size))
if ($image->compose($wm_image, $x, $y, $wm->opacity))
{
$changes++;
- if ($wm->xrepeat)
+ if ($wm->xrepeat || $wm->yrepeat)
{
- // todo
- $pad = $wm_size[0] + max(30, round($wm_size[0]/4));
+ $xpad = $wm_size[0] + max(30, round($wm_size[0]/4));
+ $ypad = $wm_size[1] + max(30, round($wm_size[1]/4));
+
for($i=-$wm->xrepeat; $i<=$wm->xrepeat; $i++)
{
- if (!$i) continue;
- $x2 = $x + $i * $pad;
- if ($x2>=0 && $x2+$wm_size[0]<$d_size[0])
- if (!$image->compose($wm_image, $x2, $y, $wm->opacity))
- break;
+ for($j=-$wm->yrepeat; $j<=$wm->yrepeat; $j++)
+ {
+ if (!$i && !$j) continue;
+ $x2 = $x + $i * $xpad;
+ $y2 = $y + $j * $ypad;
+ if ($x2>=0 && $x2+$wm_size[0]<$d_size[0] &&
+ $y2>=0 && $y2+$wm_size[1]<$d_size[1] )
+ if (!$image->compose($wm_image, $x2, $y2, $wm->opacity))
+ break;
+ }
}
}
}
diff --git a/include/derivative_std_params.inc.php b/include/derivative_std_params.inc.php
index a0f1edb76..9fe4c3b02 100644
--- a/include/derivative_std_params.inc.php
+++ b/include/derivative_std_params.inc.php
@@ -52,6 +52,8 @@ final class WatermarkParams
/** @var int */
public $xrepeat = 0;
/** @var int */
+ public $yrepeat = 0;
+ /** @var int */
public $opacity = 100;
}
diff --git a/language/en_UK/admin.lang.php b/language/en_UK/admin.lang.php
index 218c09661..272d2bf63 100644
--- a/language/en_UK/admin.lang.php
+++ b/language/en_UK/admin.lang.php
@@ -931,6 +931,7 @@ $lang['wrong filename'] = "wrong filename";
$lang['X Position'] = 'X Position';
$lang['X Repeat'] = 'X Repeat';
$lang['Y Position'] = 'Y Position';
+$lang['Y Repeat'] = 'Y Repeat';
$lang['Year'] = "Year";
$lang['You are running on development sources, no check possible.'] = "You are running on development sources, no check possible.";
$lang['You are running the latest version of Piwigo.'] = "You are running Piwigo latest version.";