Upgrade viewing module to support revisions

This commit is contained in:
Starbeamrainbowlabs 2016-06-04 19:04:50 +01:00
parent ee1224bbe9
commit 9c760789f4
4 changed files with 47 additions and 11 deletions

View File

@ -2803,7 +2803,7 @@ register_module([
// should be the page name. // should be the page name.
$pageindex->$new_filename = $entry; $pageindex->$new_filename = $entry;
// Generate a revision to keep the apge history up to date // Generate a revision to keep the page history up to date
if(module_exists("feature-history")) if(module_exists("feature-history"))
{ {
$oldsource = ""; // Only variables can be passed by reference, not literals $oldsource = ""; // Only variables can be passed by reference, not literals
@ -4328,7 +4328,7 @@ register_module([
register_module([ register_module([
"name" => "Page viewer", "name" => "Page viewer",
"version" => "0.13", "version" => "0.14",
"author" => "Starbeamrainbowlabs", "author" => "Starbeamrainbowlabs",
"description" => "Allows you to view pages. You really should include this one.", "description" => "Allows you to view pages. You really should include this one.",
"id" => "page-view", "id" => "page-view",
@ -4380,18 +4380,36 @@ register_module([
} }
} }
$isHistoryRevision = false;
if(isset($_GET["revision"]) and is_numeric($_GET["revision"]))
{
// We have a revision number!
$isHistoryRevision = true;
$revisionNumber = intval($_GET["revision"]);
}
$title = "$env->page - $settings->sitename"; $title = "$env->page - $settings->sitename";
if(isset($pageindex->$page->protect) && $pageindex->$page->protect === true) if(isset($pageindex->$page->protect) && $pageindex->$page->protect === true)
$title = $settings->protectedpagechar . $title; $title = $settings->protectedpagechar . $title;
$content = "<h1>$env->page</h1>\n"; $content = "";
if(!$isHistoryRevision)
$content .= "<h1>$env->page</h1>\n";
else
{
$content .= "<h1>Revision #$revisionNumber of $env->page</h1>\n";
$content .= "<p class='revision-note'><em>(<a href='?page=" . rawurlencode($env->page) . "'>See current</a>)</em></p>\n";
}
// Add an extra message if the requester was redirected from another page // Add an extra message if the requester was redirected from another page
if(isset($_GET["redirected_from"])) if(isset($_GET["redirected_from"]))
$content .= "<p><em>Redirected from <a href='?page=" . rawurlencode($_GET["redirected_from"]) . "&redirect=no'>" . $_GET["redirected_from"] . "</a>.</em></p>"; $content .= "<p><em>Redirected from <a href='?page=" . rawurlencode($_GET["redirected_from"]) . "&redirect=no'>" . $_GET["redirected_from"] . "</a>.</em></p>";
$pageFilename = "$env->storage_prefix$env->page.md";
$parsing_start = microtime(true); $parsing_start = microtime(true);
$content .= parse_page_source(file_get_contents("$env->storage_prefix$env->page.md")); $content .= parse_page_source(file_get_contents($pageFilename));
if(!empty($pageindex->$page->tags)) if(!empty($pageindex->$page->tags))
{ {

View File

@ -77,7 +77,7 @@
"author": "Starbeamrainbowlabs", "author": "Starbeamrainbowlabs",
"description": "Adds the ability to upload files to Pepperminty Wiki. Uploaded files act as pages and have the special 'File\/' prefix.", "description": "Adds the ability to upload files to Pepperminty Wiki. Uploaded files act as pages and have the special 'File\/' prefix.",
"id": "feature-upload", "id": "feature-upload",
"lastupdate": 1465044741, "lastupdate": 1465044942,
"optional": false "optional": false
}, },
{ {
@ -181,11 +181,11 @@
}, },
{ {
"name": "Page viewer", "name": "Page viewer",
"version": "0.13", "version": "0.14",
"author": "Starbeamrainbowlabs", "author": "Starbeamrainbowlabs",
"description": "Allows you to view pages. You really should include this one.", "description": "Allows you to view pages. You really should include this one.",
"id": "page-view", "id": "page-view",
"lastupdate": 1462110488, "lastupdate": 1465063434,
"optional": false "optional": false
}, },
{ {

View File

@ -153,7 +153,7 @@ register_module([
// should be the page name. // should be the page name.
$pageindex->$new_filename = $entry; $pageindex->$new_filename = $entry;
// Generate a revision to keep the apge history up to date // Generate a revision to keep the page history up to date
if(module_exists("feature-history")) if(module_exists("feature-history"))
{ {
$oldsource = ""; // Only variables can be passed by reference, not literals $oldsource = ""; // Only variables can be passed by reference, not literals

View File

@ -1,7 +1,7 @@
<?php <?php
register_module([ register_module([
"name" => "Page viewer", "name" => "Page viewer",
"version" => "0.13", "version" => "0.14",
"author" => "Starbeamrainbowlabs", "author" => "Starbeamrainbowlabs",
"description" => "Allows you to view pages. You really should include this one.", "description" => "Allows you to view pages. You really should include this one.",
"id" => "page-view", "id" => "page-view",
@ -53,18 +53,36 @@ register_module([
} }
} }
$isHistoryRevision = false;
if(isset($_GET["revision"]) and is_numeric($_GET["revision"]))
{
// We have a revision number!
$isHistoryRevision = true;
$revisionNumber = intval($_GET["revision"]);
}
$title = "$env->page - $settings->sitename"; $title = "$env->page - $settings->sitename";
if(isset($pageindex->$page->protect) && $pageindex->$page->protect === true) if(isset($pageindex->$page->protect) && $pageindex->$page->protect === true)
$title = $settings->protectedpagechar . $title; $title = $settings->protectedpagechar . $title;
$content = "<h1>$env->page</h1>\n"; $content = "";
if(!$isHistoryRevision)
$content .= "<h1>$env->page</h1>\n";
else
{
$content .= "<h1>Revision #$revisionNumber of $env->page</h1>\n";
$content .= "<p class='revision-note'><em>(<a href='?page=" . rawurlencode($env->page) . "'>See current</a>)</em></p>\n";
}
// Add an extra message if the requester was redirected from another page // Add an extra message if the requester was redirected from another page
if(isset($_GET["redirected_from"])) if(isset($_GET["redirected_from"]))
$content .= "<p><em>Redirected from <a href='?page=" . rawurlencode($_GET["redirected_from"]) . "&redirect=no'>" . $_GET["redirected_from"] . "</a>.</em></p>"; $content .= "<p><em>Redirected from <a href='?page=" . rawurlencode($_GET["redirected_from"]) . "&redirect=no'>" . $_GET["redirected_from"] . "</a>.</em></p>";
$pageFilename = "$env->storage_prefix$env->page.md";
$parsing_start = microtime(true); $parsing_start = microtime(true);
$content .= parse_page_source(file_get_contents("$env->storage_prefix$env->page.md")); $content .= parse_page_source(file_get_contents($pageFilename));
if(!empty($pageindex->$page->tags)) if(!empty($pageindex->$page->tags))
{ {