*/ /** * @package Watermark * @subpackage UserInterface */ class WatermarkSiteAdminController extends GalleryController { /** * @see GalleryController::handleRequest */ function handleRequest($form) { global $gallery; /* Make sure we have adequate permissions */ $ret = GalleryCoreApi::assertUserIsSiteAdministrator(); if ($ret->isError()) { return array($ret->wrap(__FILE__, __LINE__), null); } $status = array(); if (isset($form['action']['add']) && !empty($form['tmp_name'][1])) { /* Get the mime type from the upload info. */ $mimeType = $form['type'][1]; /* * If we don't get useful data from that or its a type we don't * recognize, take a swing at it using the file name. */ if ($mimeType == 'application/octet-stream' || $mimeType == 'application/unknown' || GalleryCoreApi::convertMimeToExtension($mimeType) == null) { $extension = GalleryUtilities::getFileExtension($form['name'][1]); $mimeType = GalleryCoreApi::convertExtensionToMime($extension); } list ($ret, $item) = GalleryCoreApi::newFactoryInstance('GalleryEntity', 'WatermarkImage'); if ($ret->isError()) { return array($ret->wrap(__FILE__, __LINE__), null); } if (!isset($item)) { return array(GalleryStatus::error(ERROR_MISSING_OBJECT, __FILE__, __LINE__), null); } $ret = $item->create($form['tmp_name'][1], $mimeType, $form['name'][1]); if ($ret->isError()) { return array($ret->wrap(__FILE__, __LINE__), null); } $ret = $item->save(); if ($ret->isError()) { return array($ret->wrap(__FILE__, __LINE__), null); } /* Give appropriate permissions */ foreach (array('id.allUserGroup' => 'core.viewSource', 'id.adminGroup' => 'core.all') as $key => $perm) { list ($ret, $id) = GalleryCoreApi::getPluginParameter('module', 'core', $key); if ($ret->isError()) { return array($ret->wrap(__FILE__, __LINE__), null); } $ret = GalleryCoreApi::addGroupPermission($item->getId(), $id, $perm); if ($ret->isError()) { return array($ret->wrap(__FILE__, __LINE__), null); } } $status['add'] = 1; $results['redirect']['view'] = 'core:SiteAdmin'; $results['redirect']['subView'] = 'watermark:WatermarkSiteAdminEdit'; $results['redirect']['itemId'] = $item->getId(); } else if (isset($form['action']['add'])) { $status['add_error'] = 1; $results['delegate']['view'] = 'core:SiteAdmin'; $results['delegate']['subView'] = 'watermark:WatermarkSiteAdmin'; } else if (isset($form['action']['delete']) && isset($form['delete']['itemId'])) { GalleryCoreApi::requireOnce(dirname(__FILE__) . '/classes/WatermarkHelper.class'); list ($ret, $wasDeleted) = WatermarkHelper::deleteWatermarkImageById($form['delete']['itemId']); if ($ret->isError()) { return array($ret->wrap(__FILE__, __LINE__), null); } if ($wasDeleted) { $status['delete'] = 1; $results['redirect'] = array('view' => 'core:SiteAdmin', 'subView' => 'watermark:WatermarkSiteAdmin'); } else { // Watermark is in use.. redirect to confirm page: $results['redirect'] = array('view' => 'core:SiteAdmin', 'subView' => 'watermark:ConfirmDelete', 'itemId' => $form['delete']['itemId'], 'fromAdmin' => 1); } } $results['status'] = $status; $results['error'] = array(); return array(GalleryStatus::success(), $results); } } /** * @package Watermark * @subpackage UserInterface */ class WatermarkSiteAdminView extends GalleryView { /** * @see GalleryView::loadTemplate */ function loadTemplate(&$template, &$form) { GalleryCoreApi::requireOnce(dirname(__FILE__) . '/classes/WatermarkHelper.class'); if ($form['formName'] != 'WatermarkSiteAdmin') { $form['formName'] = 'WatermarkSiteAdmin'; } list ($ret, $list) = WatermarkHelper::fetchWatermarks(); if ($ret->isError()) { return array($ret->wrap(__FILE__, __LINE__), null); } $owners = array(); $form['list'] = array(); if (!empty($list)) { $ownerIds = array(); foreach ($list as $id => $watermark) { $ownerIds[] = $watermark->getOwnerId(); $form['list'][] = $watermark->getMemberData(); } list ($ret, $tmp) = GalleryCoreApi::loadEntitiesById($ownerIds); if ($ret->isError()) { return array($ret->wrap(__FILE__, __LINE__), null); } for ($i = 0; $i < sizeof($tmp); $i++) { $owners[$tmp[$i]->getId()] = $tmp[$i]->getMemberData(); } } /* Set the form's encoding type since we're uploading binary files */ if ($template->hasVariable('SiteAdmin')) { $SiteAdmin =& $template->getVariableByReference('SiteAdmin'); $SiteAdmin['enctype'] = 'multipart/form-data'; } else { $SiteAdmin['enctype'] = 'multipart/form-data'; $template->setVariable('SiteAdmin', $SiteAdmin); } $WatermarkSiteAdmin = array(); $WatermarkSiteAdmin['owners'] = $owners; $template->setVariable('controller', 'watermark:WatermarkSiteAdmin'); $template->setVariable('WatermarkSiteAdmin', $WatermarkSiteAdmin); return array(GalleryStatus::success(), array('body' => 'modules/watermark/templates/WatermarkSiteAdmin.tpl')); } } ?>