Exemple #1
0
    if ($pagehash['flags'] & FLAG_PAGE_LOCKED && !defined('WIKI_ADMIN')) {
        $html = "<p>";
        $html .= gettext("This page has been locked by the administrator and cannot be edited.");
        $html .= "\n<p>";
        $html .= gettext("Sorry for the inconvenience.");
        $html .= "\n";
        GeneratePage('MESSAGE', $html, sprintf(gettext("Problem while editing %s"), $pagename), 0);
        ExitWiki("");
    }
    $textarea = htmlspecialchars(implode("\n", $pagehash["content"]));
    if (isset($copy)) {
        // $cdbi = OpenDataBase($WikiPageStore);
        $currentpage = RetrievePage($dbi, $pagename, $WikiPageStore);
        $pagehash["version"] = $currentpage["version"];
    } elseif ($pagehash["version"] > 1) {
        if (IsInArchive($dbi, $pagename)) {
            $pagehash["copy"] = 1;
        }
    }
} else {
    if (preg_match("/^{$WikiNameRegexp}\$/", $pagename)) {
        $newpage = $pagename;
    } else {
        $newpage = "[{$pagename}]";
    }
    $textarea = htmlspecialchars(sprintf(gettext("Describe %s here."), $newpage));
    unset($pagehash);
    $pagehash["version"] = 0;
    $pagehash["lastmodified"] = time();
    $pagehash["author"] = '';
}
Exemple #2
0
function SaveCopyToArchive($dbi, $pagename, $pagehash)
{
    global $ArchivePageStore;
    // echo "<p>save copy called<p>";
    // echo "<p>dbi in SaveCopyToArchive: '$dbi' '$ArchivePageStore' '$dbi[dbc]'<p>";
    // prepare the content for storage
    if (!isset($pagehash["pagename"])) {
        $pagehash["pagename"] = $pagename;
    }
    if (!isset($pagehash["flags"])) {
        $pagehash["flags"] = 0;
    }
    $pagehash["author"] = addslashes($pagehash["author"]);
    $pagehash["content"] = implode("\n", $pagehash["content"]);
    $pagehash["content"] = addslashes($pagehash["content"]);
    $pagehash["pagename"] = addslashes($pagehash["pagename"]);
    $pagehash["refs"] = serialize($pagehash["refs"]);
    if (IsInArchive($dbi, $pagename)) {
        $PAIRS = "author='{$pagehash['author']}'," . "content='{$pagehash['content']}'," . "created={$pagehash['created']}," . "flags={$pagehash['flags']}," . "lastmodified={$pagehash['lastmodified']}," . "pagename='{$pagehash['pagename']}'," . "refs='{$pagehash['refs']}'," . "version={$pagehash['version']}";
        $query = "UPDATE {$ArchivePageStore} SET {$PAIRS} WHERE pagename='{$pagehash['pagename']}'";
    } else {
        // do an insert
        // build up the column names and values for the query
        $COLUMNS = "author, content, created, flags, " . "lastmodified, pagename, refs, version";
        $VALUES = "'{$pagehash['author']}', '{$pagehash['content']}', " . "{$pagehash['created']}, {$pagehash['flags']}, " . "{$pagehash['lastmodified']}, '{$pagehash['pagename']}', " . "'{$pagehash['refs']}', {$pagehash['version']}";
        $query = "INSERT INTO {$ArchivePageStore} ({$COLUMNS}) VALUES({$VALUES})";
    }
    // echo "<p>Query: $query<p>\n";
    $retval = pg_exec($dbi['dbc'], $query);
    if ($retval == false) {
        echo "Insert/update failed: " . pg_errormessage($dbi['dbc']);
    }
}
Exemple #3
0
function SaveCopyToArchive($dbi, $pagename, $pagehash)
{
    global $ArchivePageStore;
    $pagehash = MakeDBHash($pagename, $pagehash);
    // $pagehash["content"] is now an array of strings
    // of MSQL_MAX_LINE_LENGTH
    if (IsInArchive($dbi, $pagename)) {
        $PAIRS = "author='{$pagehash['author']}'," . "created={$pagehash['created']}," . "flags={$pagehash['flags']}," . "lastmodified={$pagehash['lastmodified']}," . "pagename='{$pagehash['pagename']}'," . "refs='{$pagehash['refs']}'," . "version={$pagehash['version']}";
        $query = "UPDATE {$ArchivePageStore['table']} SET {$PAIRS} WHERE pagename='{$pagename}'";
    } else {
        // do an insert
        // build up the column names and values for the query
        $COLUMNS = "author, created, flags, lastmodified, " . "pagename, refs, version";
        $VALUES = "'{$pagehash['author']}', " . "{$pagehash['created']}, {$pagehash['flags']}, " . "{$pagehash['lastmodified']}, '{$pagehash['pagename']}', " . "'{$pagehash['refs']}', {$pagehash['version']}";
        $query = "INSERT INTO archive ({$COLUMNS}) VALUES({$VALUES})";
    }
    // echo "<p>Query: $query<p>\n";
    // first, insert the metadata
    $retval = msql_query($query, $dbi['dbc']);
    if ($retval == false) {
        printf(gettext("Insert/update into table 'archive' failed: %s"), msql_error());
        print "<br>\n";
    }
    // second, insert the page data
    // remove old data from page_table
    $query = "delete from {$ArchivePageStore['page_table']} where pagename='{$pagename}'";
    // echo "Delete query: $query<br>\n";
    $retval = msql_query($query, $dbi['dbc']);
    if ($retval == false) {
        printf(gettext("Delete on %s failed: %s"), $ArchivePageStore[page_table], msql_error());
        print "<br>\n";
    }
    // insert the new lines
    reset($pagehash["content"]);
    for ($x = 0; $x < count($pagehash["content"]); $x++) {
        $line = addslashes($pagehash["content"][$x]);
        $query = "INSERT INTO {$ArchivePageStore['page_table']} " . "(pagename, lineno, line) " . "VALUES('{$pagename}', {$x}, '{$line}')";
        // echo "Page line insert query: $query<br>\n";
        $retval = msql_query($query, $dbi['dbc']);
        if ($retval == false) {
            printf(gettext("Insert into %s failed: %s"), $ArchivePageStore[page_table], msql_error());
            print "<br>\n";
        }
    }
}