3
3
* $RCSfile: ItemEditWatermark.inc,v $
5
5
* Gallery - a web based photo album viewer and editor
6
* Copyright (C) 2000-2005 Bharat Mediratta
6
* Copyright (C) 2000-2006 Bharat Mediratta
8
8
* This program is free software; you can redistribute it and/or modify
9
9
* it under the terms of the GNU General Public License as published by
48
48
list ($ret, $module) = GalleryCoreApi::loadPlugin('module', 'watermark');
49
if ($ret->isError()) {
50
return array($ret->wrap(__FILE__, __LINE__), null, null);
50
return array($ret->wrap(__FILE__, __LINE__), null, null, null);
53
53
if (isset($form['action']['save'])) {
60
60
if (empty($error)) {
61
61
list ($ret, $watermark) = GalleryCoreApi::loadEntitiesById($form['watermarkId']);
62
if ($ret->isError()) {
63
return array($ret->wrap(__FILE__, __LINE__), null, null);
63
return array($ret->wrap(__FILE__, __LINE__), null, null, null);
66
GalleryCoreApi::relativeRequireOnce(
66
GalleryCoreApi::requireOnce(
67
67
'modules/watermark/classes/WatermarkHelper.class');
68
68
$ret = WatermarkHelper::watermarkItem(
69
69
$watermark, $item, $form['xPercent'], $form['yPercent'],
73
73
$form['whichDerivative']['resize']),
74
74
DERIVATIVE_TYPE_IMAGE_THUMBNAIL => isset(
75
75
$form['whichDerivative']['thumbnail'])));
76
if ($ret->isError()) {
77
return array($ret->wrap(__FILE__, __LINE__), null, null);
77
return array($ret->wrap(__FILE__, __LINE__), null, null, null);
79
79
$status = $module->translate('Watermark applied successfully');
81
81
} else if (isset($form['action']['remove'])) {
82
82
list ($ret, $derivativeTable) =
83
83
GalleryCoreApi::fetchDerivativesByItemIds(array($item->getId()));
84
if ($ret->isError()) {
85
return array($ret->wrap(__FILE__, __LINE__), null, null);
85
return array($ret->wrap(__FILE__, __LINE__), null, null, null);
88
88
if (isset($derivativeTable[$item->getId()])) {
96
96
/* Lock them all */
97
97
list ($ret, $lockId) = GalleryCoreApi::acquireWriteLock($ids);
98
if ($ret->isError()) {
99
return array($ret->wrap(__FILE__, __LINE__), null, null);
99
return array($ret->wrap(__FILE__, __LINE__), null, null, null);
102
102
foreach ($derivatives as $derivative) {
103
103
list ($ret, $derivative) = $derivative->refresh();
104
if ($ret->isError()) {
105
return array($ret->wrap(__FILE__, __LINE__), null, null);
105
return array($ret->wrap(__FILE__, __LINE__), null, null, null);
108
108
$newPostFilters = GalleryCoreApi::removeDerivativeOperation(
113
113
$preferred = $derivative;
116
$ret = $derivative->save(true);
117
if ($ret->isError()) {
118
return array($ret->wrap(__FILE__, __LINE__), null, null);
116
$ret = $derivative->save();
118
return array($ret->wrap(__FILE__, __LINE__), null, null, null);
123
123
$ret = GalleryCoreApi::releaseLocks($lockId);
124
if ($ret->isError()) {
125
return array($ret->wrap(__FILE__, __LINE__), null, null);
125
return array($ret->wrap(__FILE__, __LINE__), null, null, null);
129
129
if (isset($preferred)) {
130
130
list ($ret, $preferred) = $preferred->refresh();
131
if ($ret->isError()) {
132
return array($ret->wrap(__FILE__, __LINE__), null, null);
132
return array($ret->wrap(__FILE__, __LINE__), null, null, null);
135
135
if ($preferred->hasNoOperations()) {
136
136
$ret = GalleryCoreApi::remapSourceIds(
137
137
$preferred->getId(), $preferred->getDerivativeSourceId());
138
if ($ret->isError()) {
139
return array($ret->wrap(__FILE__, __LINE__), null, null);
139
return array($ret->wrap(__FILE__, __LINE__), null, null, null);
142
142
$ret = GalleryCoreApi::deleteEntityById($preferred->getId());
143
if ($ret->isError()) {
144
return array($ret->wrap(__FILE__, __LINE__), null, null);
144
return array($ret->wrap(__FILE__, __LINE__), null, null, null);
148
148
$status = $module->translate('Watermark removed successfully');
151
return array(GalleryStatus::success(), $error, $status);
151
return array(null, $error, $status, false);
161
161
$ItemEditWatermark['showApplet'] = $thumbnail != null;
163
163
list ($ret, $ItemEditWatermark['isAdmin']) = GalleryCoreApi::isUserInSiteAdminGroup();
164
if ($ret->isError()) {
165
165
return array($ret->wrap(__FILE__, __LINE__), null, null);
168
168
/* Load up all watermarks */
169
GalleryCoreApi::relativeRequireOnce('modules/watermark/classes/WatermarkHelper.class');
169
GalleryCoreApi::requireOnce('modules/watermark/classes/WatermarkHelper.class');
170
170
list ($ret, $watermarks) = WatermarkHelper::fetchWatermarks();
171
if ($ret->isError()) {
172
172
return array($ret->wrap(__FILE__, __LINE__), null, null);
175
175
if (!empty($watermarks)) {
176
176
foreach (array_keys($watermarks) as $watermarkId) {
177
$watermarks[$watermarkId] = $watermarks[$watermarkId]->getMemberData();
177
$watermarks[$watermarkId] = (array)$watermarks[$watermarkId];
232
232
/* Grab the smallest derivative that's greater than 400px on a side */
233
233
list ($ret, $derivatives) =
234
234
GalleryCoreApi::fetchDerivativesByItemIds(array($item->getId()));
235
if ($ret->isError()) {
236
236
return array($ret->wrap(__FILE__, __LINE__), null, null);
238
238
$smallestSize = null;
251
251
$ItemEditWatermark = array();
252
252
$ItemEditWatermark['watermarks'] = $watermarks;
253
$ItemEditWatermark['item'] = $item->getMemberData();
253
$ItemEditWatermark['item'] = (array)$item;
254
254
$ItemEditWatermark['derivative'] =
255
isset($displayDerivative) ? $displayDerivative->getMemberData() : null;
255
isset($displayDerivative) ? (array)$displayDerivative : null;
257
257
$template->setVariable('ItemEditWatermark', $ItemEditWatermark);
258
258
$template->setVariable('controller', 'core.ItemEditWatermark');
259
return array(GalleryStatus::success(),
260
260
'modules/watermark/templates/ItemEditWatermark.tpl', 'modules_watermark');
306
306
function getTitle() {
307
307
list ($ret, $module) = GalleryCoreApi::loadPlugin('module', 'watermark');
308
if ($ret->isError()) {
309
309
return array($ret->wrap(__FILE__, __LINE__), null);
312
return array(GalleryStatus::success(), $module->translate('Watermark'));
312
return array(null, $module->translate('Watermark'));