/**
  * 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;
 }