public function createNewLinkVersion(Docman_Link $link, $label, $changelog, $date) { $label = $this->da->quoteSmart($label); $changelog = $this->da->quoteSmart($changelog); $date = $this->da->escapeInt($date); $link_url = $this->da->quoteSmart($link->getUrl()); $item_id = $this->da->escapeInt($link->getId()); $user_id = $this->da->escapeInt($link->getOwnerId()); $sql = "INSERT INTO plugin_docman_link_version (item_id, number, user_id, label, changelog, date, link_url)\n SELECT {$item_id}, IFNULL(MAX(number), 0) + 1 as number, {$user_id}, {$label}, {$changelog}, {$date}, {$link_url}\n FROM plugin_docman_link_version\n WHERE item_id = {$item_id}"; return $this->update($sql); }
public function queueNewDocumentLinkVersion(Docman_Link $item, Docman_LinkVersion $version) { if ($this->plugin->isAllowed($item->getGroupId()) && $version->getNumber() > 1) { $this->system_event_manager->createEvent(SystemEvent_FULLTEXTSEARCH_DOCMAN_UPDATELINK::NAME, $this->getDocmanSerializedParameters($item, array($version->getNumber())), SystemEvent::PRIORITY_MEDIUM, SystemEvent::OWNER_APP); } }
/** * @return Docman_LinkVersion */ public function getLatestVersion(Docman_Link $link) { $row = $this->dao->searchByItemId($link->getId())->getRow(); return new Docman_LinkVersion($row); }
private function updateLink(Codendi_Request $request, Docman_Link $item, PFUser $user) { $data = $request->get('item'); $item->setUrl($data['link_url']); $updated = $this->_getItemFactory()->updateLink($item, $request->get('version')); $this->manageLockNewVersion($user, $item, $request); // Approval table $link_version_factory = new Docman_LinkVersionFactory(); $last_version = $link_version_factory->getLatestVersion($item); if ($last_version) { // Approval table creation needs the item currentVersion to be set. $item->setCurrentVersion($last_version); $this->newVersionApprovalTable($request, $item, $user); } $this->_controler->feedback->log('info', $GLOBALS['Language']->getText('plugin_docman', 'info_create_newversion')); $event_data = array('item' => $item, 'version' => $last_version); $this->event_manager->processEvent(PLUGIN_DOCMAN_EVENT_NEW_LINKVERSION, $event_data); return $updated; }
public function updateLink(Docman_Link $link, array $version_data) { $update = $this->update(array('id' => $link->getId(), 'group_id' => $link->getGroupId(), 'title' => $link->getTitle(), 'user_id' => $link->getOwnerId(), 'item_type' => PLUGIN_DOCMAN_ITEM_TYPE_LINK, 'link_url' => $link->getUrl())); $link_version_factory = new Docman_LinkVersionFactory(); $create = $link_version_factory->create($link, $version_data['label'], $version_data['changelog'], $_SERVER['REQUEST_TIME']); return $update && $create; }