/** * Delete a version of a file * * @param Docman_File $item * @param Docman_Version $version * @param PFUser $user * * @return Boolean */ function _deleteVersion(Docman_File $item, Docman_Version $version, PFUser $user) { // Proceed to deletion $version_factory = $this->_getVersionFactory(); return $version_factory->deleteSpecificVersion($item, $version->getNumber()); }
public function queueNewDocumentVersion(Docman_Item $item, Docman_Version $version) { if ($this->plugin->isAllowed($item->getGroupId()) && $version->getNumber() > 1) { // will be done in plugin_docman_after_new_document since we // receive both event for a new document $this->system_event_manager->createEvent(SystemEvent_FULLTEXTSEARCH_DOCMAN_UPDATE::NAME, $this->getDocmanSerializedParameters($item, array($version->getNumber())), SystemEvent::PRIORITY_MEDIUM, SystemEvent::OWNER_APP); } }
/** * Restore one version * * @param Docman_Version $version * * @return Boolean */ public function restore($version) { $dao = $this->_getVersionDao(); $dar = $dao->searchDeletedVersion($version->getItemId(), $version->getNumber()); if ($dar && !$dar->isError()) { $row = $dar->getRow(); if (!$row['purge_date'] && file_exists($row['path'])) { if ($dao->restore($version->getItemId(), $version->getNumber())) { // Log the event // Take into account deleted items because, when we restore a deleted item // the versions are restored before the item (because we restore the item // only if at least one version was restored successfully $item = $this->_getItemFactory()->getItemFromDb($version->getItemId(), array('ignore_deleted' => true)); $user = $this->_getUserManager()->getCurrentUser(); $value = $version->getNumber(); if ($row['label'] !== '') { $value .= ' (' . $row['label'] . ')'; } $this->_getEventManager()->processEvent('plugin_docman_event_restore_version', array('group_id' => $item->getGroupId(), 'item' => $item, 'old_value' => $value, 'user' => $user)); return true; } } } return false; }