Exemplo n.º 1
0
 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);
     }
 }
Exemplo n.º 2
0
/**
* 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;
}