function visitLink(&$item, $params = array()) { if (isset($params['version_number'])) { $version_factory = new Docman_LinkVersionFactory(); $version = $version_factory->getSpecificVersion($item, $params['version_number']); if ($version) { return $version->getLink(); } } return $item->getUrl(); }
public function __construct(Docman_Link $item, $versionNumber = null) { parent::__construct($item); $this->dao = new Docman_ApprovalTableLinkDao(); $vFactory = new Docman_LinkVersionFactory(); $dar = $this->dao->getLatestTableByItemId($item->getId(), 'ver.number'); if ($dar && !$dar->isError() && $dar->rowCount() == 1) { $row = $dar->getRow(); $lastVersionNumber = $row['number']; $lastItemVersion = $vFactory->getSpecificVersion($item, $lastVersionNumber); if ($versionNumber !== null && $lastItemVersion->getNumber() != $versionNumber) { $this->itemVersion = $vFactory->getSpecificVersion($item, $versionNumber); $this->customizable = false; } else { $this->itemVersion = $lastItemVersion; } } else { $this->itemVersion = $item->getCurrentVersion(); } }
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; }
private function getLinkVersions() { $uh = UserHelper::instance(); $content = '<h3>' . $GLOBALS['Language']->getText('plugin_docman', 'details_history_versions') . '</h3>'; $version_factory = new Docman_LinkVersionFactory(); $versions = $version_factory->getAllVersionForItem($this->item); if ($versions) { $titles = array($GLOBALS['Language']->getText('plugin_docman', 'details_history_versions_version'), $GLOBALS['Language']->getText('plugin_docman', 'details_history_versions_date'), $GLOBALS['Language']->getText('plugin_docman', 'details_history_versions_author'), $GLOBALS['Language']->getText('plugin_docman', 'details_history_versions_label'), $GLOBALS['Language']->getText('plugin_docman', 'details_history_versions_changelog')); $content .= html_build_list_table_top($titles, false, false, false); $odd_even = array('boxitem', 'boxitemalt'); $i = 0; foreach (array_keys($versions) as $key) { $download = Docman_View_View::buildUrl($this->url, array('action' => 'show', 'id' => $this->item->getId(), 'version_number' => $versions[$key]->getNumber())); $user = $versions[$key]->getAuthorId() ? $uh->getDisplayNameFromUserId($versions[$key]->getAuthorId()) : $GLOBALS['Language']->getText('plugin_docman', 'details_history_anonymous'); $content .= '<tr class="' . $odd_even[$i++ % count($odd_even)] . '">'; $content .= '<td align="center"><a href="' . $download . '">' . $versions[$key]->getNumber() . '</a></td>'; $content .= '<td>' . html_time_ago($versions[$key]->getDate()) . '</td>'; $content .= '<td>' . $this->hp->purify($user) . '</td>'; $content .= '<td>' . $this->hp->purify($versions[$key]->getLabel()) . '</td>'; $content .= '<td>' . $this->hp->purify($versions[$key]->getChangelog(), CODENDI_PURIFIER_LIGHT) . '</td>'; $content .= '</tr>'; } $content .= '</table>'; } else { $content .= '<div>' . $GLOBALS['Language']->getText('plugin_docman', 'details_history_versions_error') . '</div>'; } return $content; }