Example #1
0
$query = new Query($config);
$wigit->query = $query;
$wikiPage = $query->getPagename();
$wikiFilename = $wigit->nameToFile($wikiPage);
$wikiFile = __DIR__ . "/" . $config->data_dir . "/" . $wikiFilename;
if ($query->getAction() == 'POST') {
    // Save (TODO: does not work for page named "./%")
    $handle = fopen($wikiFile, "w");
    $data = $query->getParam('data');
    fputs($handle, stripslashes($data));
    fclose($handle);
    // TODO: if page does not exist use "Created"
    $commitMessage = addslashes("Changed {$wikiPage}");
    $author = addslashes($wigit->getAuthorForUser($wigit->getUser()));
    $wigit->createNewPage($wikiPage, $author, $commitMessage);
    header("Location: " . $query->getURL($wikiPage));
    exit;
} else {
    if ($query->getAction() == "DELETE") {
        // Delete
        if (file_exists($wikiFile)) {
            if (!$wigit->git("rm {$wikiFilename}")) {
                exit('rm');
            }
            $commitMessage = addslashes("Deleted {$wikiPage}");
            $author = addslashes($wigit->getAuthorForUser($wigit->getUser()));
            if (!$wigit->git("commit --allow-empty --no-verify --message='{$commitMessage}' --author='{$author}'")) {
                exit('commit');
            }
            if (!$wigit->git("gc")) {
                exit('gc');