protected static function markupWikiLinks($markup, $matches) { $page = decodeHTML($matches[1]); $display_page = $matches[2] ? $markup->format($matches[2]) : htmlReady($page); if (keywordExists($page, $_SESSION['SessionSeminar'])) { return sprintf('<a href="%s">%s</a>', URLHelper::getLink("wiki.php", array('keyword' => $page)), $display_page); } else { return sprintf('<a href="%s">%s(?)</a>', URLHelper::getLink("wiki.php", array('keyword' => $page, 'view' => 'editnew')), $display_page); } }
/** * Delete WikiPage version and adjust backlinks. * * @param string WikiPage name * @param string WikiPage version * @param string ID of seminar/einrichtung * * @return string WikiPage name to display next * **/ function deleteWikiPage($keyword, $version, $range_id) { global $perm, $SessSemName, $dellatest; if (!$perm->have_studip_perm("tutor", $SessSemName[1])) { throw new AccessDeniedException(_('Sie haben keine Berechtigung, Seiten zu löschen.')); } $lv=getLatestVersion($keyword, $SessSemName[1]); if ($lv["version"] != $version) { throw new InvalidArgumentException(_('Die Version, die Sie löschen wollen, ist nicht die aktuellste. Überprüfen Sie, ob inzwischen eine aktuellere Version erstellt wurde.')); } NotificationCenter::postNotification('WikiPageWillDelete', array($range_id, $keyword)); $query = "DELETE FROM wiki WHERE keyword = ? AND version = ? AND range_id = ?"; $statement = DBManager::get()->prepare($query); $statement->execute(array($keyword, $version, $range_id)); NotificationCenter::postNotification('WikiPageDidDelete', array($range_id, $keyword)); if (!keywordExists($keyword)) { // all versions have gone $addmsg = '<br>' . sprintf(_("Damit ist die Seite %s mit allen Versionen gelöscht."),'<b>'.htmlReady($keyword).'</b>'); $newkeyword = "WikiWikiWeb"; } else { $newkeyword = $keyword; $addmsg = ""; } $message = MessageBox::info(sprintf(_('Version %s der Seite %s gelöscht.'), htmlReady($version), '<b>'.htmlReady($keyword).'</b>') . $addmsg); PageLayout::postMessage($message); if ($dellatest) { $lv=getLatestVersion($keyword, $SessSemName[1]); if ($lv) { $body=""; } else { $body=$lv["body"]; } refreshBacklinks($keyword, $body); } return $newkeyword; }