*/ class BulkManageProperties extends BulkManagePlugin { /** * @see BulkManagePlugin::handleRequest */ function handleRequest($form) { $error = array(); $status = array(); $params = array(); /* Accumulate parameters */ $recursive = (isset($form['recursive']) && $form['recursive'] === 'on') ? true : false; $params['recursive'] = $recursive; /* Get the active parameters */ foreach ($form['property'] as $key => $property) { /* Check if the "active" checkbox was tagged */ if (isset($property['active']) && $property['active'] === 'on') { /* Build an array of parameters to pass to the stacker */ unset($property['active']); $params[$key] = $property; } } /* Errors */ if (empty($params)) { $error[] = 'form[error][noFilters]'; } return array(null, $error, $status, $params); } /** * @see BulkManagePlugin::loadTemplate */ function loadTemplate(&$template, &$form) { /* Controller */ $template->setVariable('controller', 'bulkmanage.BulkManage'); $template->style('modules/bulkmanage/bulkmanage.css'); if ($form['formName'] != 'BulkManageProperties') { $form['formName'] = 'BulkManageProperties'; $form['property']['enumfilename']['pattern'] = '%04d.%s'; $form['property']['enumfilename']['startnum'] = '1'; } return array(null, 'modules/bulkmanage/templates/BulkManageProperties.tpl', 'modules_bulkmange'); } /** * @see BulkManagePlugin::getTitle */ function getTitle() { list ($ret, $module) = GalleryCoreApi::loadPlugin('module', 'bulkmanage'); if ($ret) { return array($ret, null); } return array(null, $module->translate('Properties')); } /** * @see BulkManagePlugin::getAction */ function getActionTitle() { list ($ret, $module) = GalleryCoreApi::loadPlugin('module', 'bulkmanage'); if ($ret) { return array($ret, null); } return array(null, $module->translate('Editing Items')); } /** * @see BulkManagePlugin::processItem */ function processItem($item, $params) { /* Deal with GalleryDataItem's only */ if (!GalleryUtilities::isA($item, 'GalleryDataItem')) { return array(null, false); } /* Enumerate filename */ if (isset($params['enumfilename'])) { $startnum = (int) $params['enumfilename']['startnum']; static $i = 0; /* Get filename */ $filename = $item->getPathComponent(); $pathinfo = pathinfo($filename); /* Get extension */ if (isset($pathinfo['extension'])) { $ext = (isset($params['enumfilename']['uppercase']) && $params['enumfilename']['uppercase'] === 'on') ? strtoupper($pathinfo['extension']) : $pathinfo['extension']; } else { $ext = ''; } /* Rename file */ $newfilename = sprintf($params['enumfilename']['pattern'], $startnum + $i++, $ext); $ret = $item->rename($newfilename); if ($ret) { return array($ret, null); } } /* Blank the title */ if (isset($params['blanktitle'])) { if ($params['blanktitle']['blank'] === 'on') { $item->setTitle(''); } } /* Blank the summary */ if (isset($params['blanksummary'])) { if ($params['blanksummary']['blank'] === 'on') { $item->setSummary(''); } } /* Blank the keywords */ if (isset($params['blankkeywords'])) { if ($params['blankkeywords']['blank'] === 'on') { $item->setKeywords(''); } } /* Blank the description */ if (isset($params['blankdescription'])) { if ($params['blankdescription']['blank'] === 'on') { $item->setDescription(''); } } /* Reset the timestamp to our exif data */ if (isset($params['resettimestamp'])) { if ($params['resettimestamp']['reset'] === 'on') { list ($ret, $originationTimestamp) = GalleryCoreApi::fetchOriginationTimestamp($item); if ($ret) { return array($ret, null); } $item->setOriginationTimestamp($originationTimestamp); } } /* Shift the timestamp an arbitrary amount */ if (isset($params['shifttimestamp'])) { if (!empty($params['shifttimestamp']['shift'])) { $oldtimestamp = $item->getOriginationTimestamp(); $item->setOriginationTimestamp($oldtimestamp + (int) $params['shifttimestamp']['shift']); } } /* Save */ $ret = $item->save(); if ($ret) { return array($ret, null); } return array(null, true); } /** * @see BulkManagePlugin::getRequiredApiVersion */ function getRequiredApiVersion() { return array(1, 0); } /** * @see BulkManagePlugin::getId */ function getId() { return array(null, 'BulkManageProperties'); } } ?>