Add acquire-edit-lock action & update docs

This commit is contained in:
Starbeamrainbowlabs 2018-04-22 15:55:14 +01:00
parent 46d520644a
commit 21474a311d
Signed by: sbrl
GPG Key ID: 1BE5172E637709C2
66 changed files with 1345 additions and 686 deletions

View File

@ -10,6 +10,7 @@ This file holds the changelog for Pepperminty Wiki. This is the master list of t
- [Rest API] Added support for the `mode` parameter to the `random` action
- [Rest API] Added `format` parameter to `recentchanges` action
- [Rest API] Added `comments-fetch` action to return a page's comments as JSON
- [Rest API] Added `acquire-edit-key` action to allow scripts and other automated services (e.g. bots and [mobile apps](https://github.com/sbrl/Pepperminty-Wiki-Client-Android)) to fetch an edit key for a specified page name.
### Fixed
- Fixed various issues with both the module api & the rest api docs.

View File

@ -6191,12 +6191,12 @@ register_module([
"local_filename" => "diff.min.js",
"remote_url" => "https://cdnjs.cloudflare.com/ajax/libs/jsdiff/2.2.2/diff.min.js"
]);
/**
* @api {get} ?action=edit&page={pageName}[&newpage=yes] Get an editing page
* @apiDescription Gets an editing page for a given page. If you don't have permission to edit the page in question, a view source pagee is returned instead.
* @apiName EditPage
* @apiGroup Page
* @apiGroup Editing
* @apiPermission Anonymous
*
* @apiUse PageParameter
@ -6316,7 +6316,7 @@ register_module([
}
$content .= "<form method='post' name='edit-form' action='index.php?action=preview-edit&page=" . rawurlencode($env->page) . "' class='editform'>
<input type='hidden' name='prev-content-hash' value='" . ((isset($old_pagetext)) ? sha1($old_pagetext) : sha1($pagetext)) . "' />
<input type='hidden' name='prev-content-hash' value='" . generate_page_hash(isset($old_pagetext) ? $old_pagetext : $pagetext) . "' />
<button class='smartsave-restore' title=\"Only works if you haven't changed the editor's content already!\">Restore Locally Saved Content</button>
<textarea name='content' autofocus tabindex='1'>$pagetext</textarea>
<pre class='fit-text-mirror'></pre>
@ -6427,11 +6427,71 @@ window.addEventListener("load", function(event) {
});
/**
* @api {post} ?action=acquire-edit-key&page={pageName} Acquire an edit key for a page
* @apiDescription Returns an edit key that can be used to programmatically save an edit to a page. It does _not_ necessarily mean that such an edit will be saved. For example, editing might be disabled, or you might not have permission to save an edit on a particular page.
* @apiName AcquireEditKey
* @apiGroup Editing
* @apiPermission Anonymous
*
* @apiUse PageParameter
* @apiPara {string} format The format ot return the edit key in. Possible values: text, json. Default: text.
*/
/*
* █████ ██████ ██████ ██ ██ ██ ██████ ███████
* ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██
* ███████ ██ ██ ██ ██ ██ ██ ██████ █████ █████
* ██ ██ ██ ██ ▄▄ ██ ██ ██ ██ ██ ██ ██
* ██ ██ ██████ ██████ ██████ ██ ██ ██ ███████
* ▀▀
* 
* ███████ ██████ ██ ████████
* ██ ██ ██ ██ ██
* █████ ██ ██ ██ ██ █████
* ██ ██ ██ ██ ██
* ███████ ██████ ██ ██
*
* ██ ██ ███████ ██ ██
* ██ ██ ██ ██ ██
* █████ █████ ████
* ██ ██ ██ ██
* ██ ██ ███████ ██
*/
add_action("acquire-edit-key", function() {
global $env;
if(!file_exists($env->page_filename)) {
http_response_code(404);
header("content-type: text/plain");
exit("Error: The page '$env->page' couldn't be found.");
}
$format = $_GET["format"] ?? "text";
$page_hash = generate_page_hash(file_get_contents($env->page_filename));
switch($format) {
case "text":
header("content-type: text/plain");
exit("$env->page\t$page_hash");
case "json":
$result = new stdClass();
$result->page = $env->page;
$result->key = $page_hash;
header("content-type: application/json");
exit(json_encode($result));
default:
http_response_code(406);
header("content-type: text/plain");
exit("Error: The format $format is not currently known. Supported formats: text, json. Default: text.\nThink this is a bug? Open an issue at https://github.com/sbrl/Pepperminty-Wiki/issues/new");
}
});
/**
* @api {post} ?action=save&page={pageName} Save an edit to a page.
* @apiDescription Saves an edit to a page. If an edit conflict is encountered, then a conflict resolution page is returned instead.
* @apiName EditPage
* @apiGroup Page
* @apiGroup Editing
* @apiPermission Anonymous
*
* @apiUse PageParameter
@ -6648,6 +6708,10 @@ DIFFSCRIPT;
}
]);
function generate_page_hash($page_data) {
return sha1($page_data);
}

View File

@ -106,12 +106,12 @@
<ul class="dropdown-menu">
<li>
<a href="../reports/errors.html">
<i class="icon-list-alt"></i>&#160;Errors <span class="label label-info pull-right">44</span>
<i class="icon-list-alt"></i>&#160;Errors <span class="label label-info pull-right">45</span>
</a>
</li>
<li>
<a href="../reports/markers.html">
<i class="icon-list-alt"></i>&#160;Markers <span class="label label-info pull-right">6</span>
<i class="icon-list-alt"></i>&#160;Markers <span class="label label-info pull-right">6</span>
</a>
</li>
<li>
@ -136,10 +136,10 @@
<div class="accordion" style="margin-bottom: 0">
<div class="accordion-group">
<div class="accordion-heading">
<a class="accordion-toggle " data-toggle="collapse" data-target="#namespace-425711529"></a>
<a class="accordion-toggle " data-toggle="collapse" data-target="#namespace-938150446"></a>
<a href="../namespaces/default.html" style="margin-left: 30px; padding-left: 0">\</a>
</div>
<div id="namespace-425711529" class="accordion-body collapse in">
<div id="namespace-938150446" class="accordion-body collapse in">
<div class="accordion-inner">
@ -365,7 +365,7 @@ with a URL encoded version of the page name.</em></p>
<section class="span10 offset1">
<hr />
Documentation is powered by <a href="http://www.phpdoc.org/">phpDocumentor </a> and authored
on March 27th, 2018 at 15:57.
on April 22nd, 2018 at 14:53.
</section>
</section>
</section>

View File

@ -106,12 +106,12 @@
<ul class="dropdown-menu">
<li>
<a href="../reports/errors.html">
<i class="icon-list-alt"></i>&#160;Errors <span class="label label-info pull-right">44</span>
<i class="icon-list-alt"></i>&#160;Errors <span class="label label-info pull-right">45</span>
</a>
</li>
<li>
<a href="../reports/markers.html">
<i class="icon-list-alt"></i>&#160;Markers <span class="label label-info pull-right">6</span>
<i class="icon-list-alt"></i>&#160;Markers <span class="label label-info pull-right">6</span>
</a>
</li>
<li>
@ -136,10 +136,10 @@
<div class="accordion" style="margin-bottom: 0">
<div class="accordion-group">
<div class="accordion-heading">
<a class="accordion-toggle " data-toggle="collapse" data-target="#namespace-1186031156"></a>
<a class="accordion-toggle " data-toggle="collapse" data-target="#namespace-1168409890"></a>
<a href="../namespaces/default.html" style="margin-left: 30px; padding-left: 0">\</a>
</div>
<div id="namespace-1186031156" class="accordion-body collapse in">
<div id="namespace-1168409890" class="accordion-body collapse in">
<div class="accordion-inner">
@ -414,7 +414,7 @@ Added image support</p>
<section class="span10 offset1">
<hr />
Documentation is powered by <a href="http://www.phpdoc.org/">phpDocumentor </a> and authored
on March 27th, 2018 at 15:57.
on April 22nd, 2018 at 14:53.
</section>
</section>
</section>

View File

@ -106,12 +106,12 @@
<ul class="dropdown-menu">
<li>
<a href="../reports/errors.html">
<i class="icon-list-alt"></i>&#160;Errors <span class="label label-info pull-right">44</span>
<i class="icon-list-alt"></i>&#160;Errors <span class="label label-info pull-right">45</span>
</a>
</li>
<li>
<a href="../reports/markers.html">
<i class="icon-list-alt"></i>&#160;Markers <span class="label label-info pull-right">6</span>
<i class="icon-list-alt"></i>&#160;Markers <span class="label label-info pull-right">6</span>
</a>
</li>
<li>
@ -136,10 +136,10 @@
<div class="accordion" style="margin-bottom: 0">
<div class="accordion-group">
<div class="accordion-heading">
<a class="accordion-toggle " data-toggle="collapse" data-target="#namespace-540145657"></a>
<a class="accordion-toggle " data-toggle="collapse" data-target="#namespace-2011929176"></a>
<a href="../namespaces/default.html" style="margin-left: 30px; padding-left: 0">\</a>
</div>
<div id="namespace-540145657" class="accordion-body collapse in">
<div id="namespace-2011929176" class="accordion-body collapse in">
<div class="accordion-inner">
@ -525,7 +525,7 @@ index.</p>
<section class="span10 offset1">
<hr />
Documentation is powered by <a href="http://www.phpdoc.org/">phpDocumentor </a> and authored
on March 27th, 2018 at 15:57.
on April 22nd, 2018 at 14:53.
</section>
</section>
</section>

View File

@ -106,12 +106,12 @@
<ul class="dropdown-menu">
<li>
<a href="../reports/errors.html">
<i class="icon-list-alt"></i>&#160;Errors <span class="label label-info pull-right">44</span>
<i class="icon-list-alt"></i>&#160;Errors <span class="label label-info pull-right">45</span>
</a>
</li>
<li>
<a href="../reports/markers.html">
<i class="icon-list-alt"></i>&#160;Markers <span class="label label-info pull-right">6</span>
<i class="icon-list-alt"></i>&#160;Markers <span class="label label-info pull-right">6</span>
</a>
</li>
<li>
@ -136,10 +136,10 @@
<div class="accordion" style="margin-bottom: 0">
<div class="accordion-group">
<div class="accordion-heading">
<a class="accordion-toggle " data-toggle="collapse" data-target="#namespace-1518551345"></a>
<a class="accordion-toggle " data-toggle="collapse" data-target="#namespace-2144654170"></a>
<a href="../namespaces/default.html" style="margin-left: 30px; padding-left: 0">\</a>
</div>
<div id="namespace-1518551345" class="accordion-body collapse in">
<div id="namespace-2144654170" class="accordion-body collapse in">
<div class="accordion-inner">
@ -943,7 +943,7 @@ navigation bar.</p></td>
<section class="span10 offset1">
<hr />
Documentation is powered by <a href="http://www.phpdoc.org/">phpDocumentor </a> and authored
on March 27th, 2018 at 15:57.
on April 22nd, 2018 at 14:53.
</section>
</section>
</section>

View File

@ -106,12 +106,12 @@
<ul class="dropdown-menu">
<li>
<a href="../reports/errors.html">
<i class="icon-list-alt"></i>&#160;Errors <span class="label label-info pull-right">44</span>
<i class="icon-list-alt"></i>&#160;Errors <span class="label label-info pull-right">45</span>
</a>
</li>
<li>
<a href="../reports/markers.html">
<i class="icon-list-alt"></i>&#160;Markers <span class="label label-info pull-right">6</span>
<i class="icon-list-alt"></i>&#160;Markers <span class="label label-info pull-right">6</span>
</a>
</li>
<li>
@ -136,10 +136,10 @@
<div class="accordion" style="margin-bottom: 0">
<div class="accordion-group">
<div class="accordion-heading">
<a class="accordion-toggle " data-toggle="collapse" data-target="#namespace-1584606938"></a>
<a class="accordion-toggle " data-toggle="collapse" data-target="#namespace-1974710680"></a>
<a href="../namespaces/default.html" style="margin-left: 30px; padding-left: 0">\</a>
</div>
<div id="namespace-1584606938" class="accordion-body collapse in">
<div id="namespace-1974710680" class="accordion-body collapse in">
<div class="accordion-inner">
@ -919,7 +919,7 @@ in a list of search results.</em></p>
<section class="span10 offset1">
<hr />
Documentation is powered by <a href="http://www.phpdoc.org/">phpDocumentor </a> and authored
on March 27th, 2018 at 15:57.
on April 22nd, 2018 at 14:53.
</section>
</section>
</section>

View File

@ -106,12 +106,12 @@
<ul class="dropdown-menu">
<li>
<a href="../reports/errors.html">
<i class="icon-list-alt"></i>&#160;Errors <span class="label label-info pull-right">44</span>
<i class="icon-list-alt"></i>&#160;Errors <span class="label label-info pull-right">45</span>
</a>
</li>
<li>
<a href="../reports/markers.html">
<i class="icon-list-alt"></i>&#160;Markers <span class="label label-info pull-right">6</span>
<i class="icon-list-alt"></i>&#160;Markers <span class="label label-info pull-right">6</span>
</a>
</li>
<li>
@ -136,10 +136,10 @@
<div class="accordion" style="margin-bottom: 0">
<div class="accordion-group">
<div class="accordion-heading">
<a class="accordion-toggle " data-toggle="collapse" data-target="#namespace-1501432742"></a>
<a class="accordion-toggle " data-toggle="collapse" data-target="#namespace-1758575351"></a>
<a href="../namespaces/default.html" style="margin-left: 30px; padding-left: 0">\</a>
</div>
<div id="namespace-1501432742" class="accordion-body collapse in">
<div id="namespace-1758575351" class="accordion-body collapse in">
<div class="accordion-inner">
@ -1282,60 +1282,6 @@ listed to be cacnonical.</em></p>
<div class="row-fluid">
<div class="span8 content class">
<a id="method_accept_contains_mime" name="method_accept_contains_mime" class="anchor"></a>
<article class="method">
<h3 class=" ">accept_contains_mime()</h3>
<a href="#source-view" role="button" class="pull-right btn" data-toggle="modal" style="font-size: 1.1em; padding: 9px 14px"><i class="icon-code"></i></a>
<pre class="signature" style="margin-right: 54px;">accept_contains_mime(string <span class="argument">$accept_header</span>, string <span class="argument">$mime_type</span>) : boolean</pre>
<p><em>Figures out whether a given http accepts header contains a
specified mime type.</em></p>
<h4>Parameters</h4>
<table class="table table-condensed table-hover">
<tr>
<td>string</td>
<td>$accept_header </td>
<td><p>The accept header to search.</p></td>
</tr>
<tr>
<td>string</td>
<td>$mime_type </td>
<td><p>The mime type to search for.</p></td>
</tr>
</table>
<h4>Returns</h4>
boolean
&mdash; <p>Whether the specified mime type was found
in the specified accepts header.</p>
</article>
</div>
<aside class="span4 detailsbar">
<h1><i class="icon-arrow-down"></i></h1>
<dl>
<dt>File</dt>
<dd><a href=""><div class="path-wrapper">core.php</div></a></dd>
</dl>
<h2>Tags</h2>
<table class="table table-condensed">
<tr>
<th>
package
</th>
<td>
<p>core</p>
<p>core</p>
</td>
</tr>
</table>
</aside>
</div>
<div class="row-fluid">
<div class="span8 content class">
<a id="method_stack_trace" name="method_stack_trace" class="anchor"></a>
<article class="method">
<h3 class=" ">stack_trace()</h3>
@ -2487,7 +2433,7 @@ an edit is saved.</em></p>
<section class="span10 offset1">
<hr />
Documentation is powered by <a href="http://www.phpdoc.org/">phpDocumentor </a> and authored
on March 27th, 2018 at 15:57.
on April 22nd, 2018 at 14:53.
</section>
</section>
</section>

View File

@ -558,29 +558,6 @@ function system_extension_mime_type($ext) {
$ext = strtolower($ext);
return isset($types[$ext]) ? $types[$ext] : null;
}
/**
* Figures out whether a given http accepts header contains a
* specified mime type.
* @package core
* @param string $accept_header The accept header to search.
* @param string $mime_type The mime type to search for.
* @return bool Whether the specified mime type was found
* in the specified accepts header.
*/
function accept_contains_mime($accept_header, $mime_type)
{
$target_mime = explode("/", $mime_type);
$accepted_mimes = explode(",", $accept_header);
foreach($accepted_mimes as $accepted_mime) {
$next_mime = explode("/", explode(";", $accepted_mime)[0]);
if($next_mime == $mime_type || ($next_mime[0] == "*" && $next_mime[1] == "*"))
return true;
if($next_mime[1] == "*" && $next_mime[0] == $mime_type[0])
return true;
}
return false;
}
/**
* Generates a stack trace.
@ -1585,6 +1562,7 @@ if($settings->require_login_view === true && // If this site requires a login in
{
// Redirect the user to the login page
http_response_code(307);
header("x-login-required: yes");
$url = "?action=login&returnto=" . rawurlencode($_SERVER["REQUEST_URI"]) . "&required=true";
header("location: $url");
exit(page_renderer::render("Login required - $settings->sitename", "<p>$settings->sitename requires that you login before you are able to access it.</p>

View File

@ -106,12 +106,12 @@
<ul class="dropdown-menu">
<li>
<a href="../reports/errors.html">
<i class="icon-list-alt"></i>&#160;Errors <span class="label label-info pull-right">44</span>
<i class="icon-list-alt"></i>&#160;Errors <span class="label label-info pull-right">45</span>
</a>
</li>
<li>
<a href="../reports/markers.html">
<i class="icon-list-alt"></i>&#160;Markers <span class="label label-info pull-right">6</span>
<i class="icon-list-alt"></i>&#160;Markers <span class="label label-info pull-right">6</span>
</a>
</li>
<li>
@ -136,10 +136,10 @@
<div class="accordion" style="margin-bottom: 0">
<div class="accordion-group">
<div class="accordion-heading">
<a class="accordion-toggle " data-toggle="collapse" data-target="#namespace-615219511"></a>
<a class="accordion-toggle " data-toggle="collapse" data-target="#namespace-1878563720"></a>
<a href="../namespaces/default.html" style="margin-left: 30px; padding-left: 0">\</a>
</div>
<div id="namespace-615219511" class="accordion-body collapse in">
<div id="namespace-1878563720" class="accordion-body collapse in">
<div class="accordion-inner">
@ -239,7 +239,7 @@
<section class="span10 offset1">
<hr />
Documentation is powered by <a href="http://www.phpdoc.org/">phpDocumentor </a> and authored
on March 27th, 2018 at 15:57.
on April 22nd, 2018 at 14:53.
</section>
</section>
</section>

View File

@ -106,12 +106,12 @@
<ul class="dropdown-menu">
<li>
<a href="../reports/errors.html">
<i class="icon-list-alt"></i>&#160;Errors <span class="label label-info pull-right">44</span>
<i class="icon-list-alt"></i>&#160;Errors <span class="label label-info pull-right">45</span>
</a>
</li>
<li>
<a href="../reports/markers.html">
<i class="icon-list-alt"></i>&#160;Markers <span class="label label-info pull-right">6</span>
<i class="icon-list-alt"></i>&#160;Markers <span class="label label-info pull-right">6</span>
</a>
</li>
<li>
@ -136,10 +136,10 @@
<div class="accordion" style="margin-bottom: 0">
<div class="accordion-group">
<div class="accordion-heading">
<a class="accordion-toggle " data-toggle="collapse" data-target="#namespace-1937681687"></a>
<a class="accordion-toggle " data-toggle="collapse" data-target="#namespace-1340031433"></a>
<a href="../namespaces/default.html" style="margin-left: 30px; padding-left: 0">\</a>
</div>
<div id="namespace-1937681687" class="accordion-body collapse in">
<div id="namespace-1340031433" class="accordion-body collapse in">
<div class="accordion-inner">
@ -239,7 +239,7 @@
<section class="span10 offset1">
<hr />
Documentation is powered by <a href="http://www.phpdoc.org/">phpDocumentor </a> and authored
on March 27th, 2018 at 15:57.
on April 22nd, 2018 at 14:53.
</section>
</section>
</section>

View File

@ -106,12 +106,12 @@
<ul class="dropdown-menu">
<li>
<a href="../reports/errors.html">
<i class="icon-list-alt"></i>&#160;Errors <span class="label label-info pull-right">44</span>
<i class="icon-list-alt"></i>&#160;Errors <span class="label label-info pull-right">45</span>
</a>
</li>
<li>
<a href="../reports/markers.html">
<i class="icon-list-alt"></i>&#160;Markers <span class="label label-info pull-right">6</span>
<i class="icon-list-alt"></i>&#160;Markers <span class="label label-info pull-right">6</span>
</a>
</li>
<li>
@ -136,10 +136,10 @@
<div class="accordion" style="margin-bottom: 0">
<div class="accordion-group">
<div class="accordion-heading">
<a class="accordion-toggle " data-toggle="collapse" data-target="#namespace-826570683"></a>
<a class="accordion-toggle " data-toggle="collapse" data-target="#namespace-330644492"></a>
<a href="../namespaces/default.html" style="margin-left: 30px; padding-left: 0">\</a>
</div>
<div id="namespace-826570683" class="accordion-body collapse in">
<div id="namespace-330644492" class="accordion-body collapse in">
<div class="accordion-inner">
@ -239,7 +239,7 @@
<section class="span10 offset1">
<hr />
Documentation is powered by <a href="http://www.phpdoc.org/">phpDocumentor </a> and authored
on March 27th, 2018 at 15:57.
on April 22nd, 2018 at 14:53.
</section>
</section>
</section>

View File

@ -106,12 +106,12 @@
<ul class="dropdown-menu">
<li>
<a href="../reports/errors.html">
<i class="icon-list-alt"></i>&#160;Errors <span class="label label-info pull-right">44</span>
<i class="icon-list-alt"></i>&#160;Errors <span class="label label-info pull-right">45</span>
</a>
</li>
<li>
<a href="../reports/markers.html">
<i class="icon-list-alt"></i>&#160;Markers <span class="label label-info pull-right">6</span>
<i class="icon-list-alt"></i>&#160;Markers <span class="label label-info pull-right">6</span>
</a>
</li>
<li>
@ -136,10 +136,10 @@
<div class="accordion" style="margin-bottom: 0">
<div class="accordion-group">
<div class="accordion-heading">
<a class="accordion-toggle " data-toggle="collapse" data-target="#namespace-1107660964"></a>
<a class="accordion-toggle " data-toggle="collapse" data-target="#namespace-1546742979"></a>
<a href="../namespaces/default.html" style="margin-left: 30px; padding-left: 0">\</a>
</div>
<div id="namespace-1107660964" class="accordion-body collapse in">
<div id="namespace-1546742979" class="accordion-body collapse in">
<div class="accordion-inner">
@ -239,7 +239,7 @@
<section class="span10 offset1">
<hr />
Documentation is powered by <a href="http://www.phpdoc.org/">phpDocumentor </a> and authored
on March 27th, 2018 at 15:57.
on April 22nd, 2018 at 14:53.
</section>
</section>
</section>

View File

@ -106,12 +106,12 @@
<ul class="dropdown-menu">
<li>
<a href="../reports/errors.html">
<i class="icon-list-alt"></i>&#160;Errors <span class="label label-info pull-right">44</span>
<i class="icon-list-alt"></i>&#160;Errors <span class="label label-info pull-right">45</span>
</a>
</li>
<li>
<a href="../reports/markers.html">
<i class="icon-list-alt"></i>&#160;Markers <span class="label label-info pull-right">6</span>
<i class="icon-list-alt"></i>&#160;Markers <span class="label label-info pull-right">6</span>
</a>
</li>
<li>
@ -136,10 +136,10 @@
<div class="accordion" style="margin-bottom: 0">
<div class="accordion-group">
<div class="accordion-heading">
<a class="accordion-toggle " data-toggle="collapse" data-target="#namespace-2076669498"></a>
<a class="accordion-toggle " data-toggle="collapse" data-target="#namespace-163300518"></a>
<a href="../namespaces/default.html" style="margin-left: 30px; padding-left: 0">\</a>
</div>
<div id="namespace-2076669498" class="accordion-body collapse in">
<div id="namespace-163300518" class="accordion-body collapse in">
<div class="accordion-inner">
@ -239,7 +239,7 @@
<section class="span10 offset1">
<hr />
Documentation is powered by <a href="http://www.phpdoc.org/">phpDocumentor </a> and authored
on March 27th, 2018 at 15:57.
on April 22nd, 2018 at 14:53.
</section>
</section>
</section>

View File

@ -106,12 +106,12 @@
<ul class="dropdown-menu">
<li>
<a href="../reports/errors.html">
<i class="icon-list-alt"></i>&#160;Errors <span class="label label-info pull-right">44</span>
<i class="icon-list-alt"></i>&#160;Errors <span class="label label-info pull-right">45</span>
</a>
</li>
<li>
<a href="../reports/markers.html">
<i class="icon-list-alt"></i>&#160;Markers <span class="label label-info pull-right">6</span>
<i class="icon-list-alt"></i>&#160;Markers <span class="label label-info pull-right">6</span>
</a>
</li>
<li>
@ -136,10 +136,10 @@
<div class="accordion" style="margin-bottom: 0">
<div class="accordion-group">
<div class="accordion-heading">
<a class="accordion-toggle " data-toggle="collapse" data-target="#namespace-875762809"></a>
<a class="accordion-toggle " data-toggle="collapse" data-target="#namespace-1588513163"></a>
<a href="../namespaces/default.html" style="margin-left: 30px; padding-left: 0">\</a>
</div>
<div id="namespace-875762809" class="accordion-body collapse in">
<div id="namespace-1588513163" class="accordion-body collapse in">
<div class="accordion-inner">
@ -239,7 +239,7 @@
<section class="span10 offset1">
<hr />
Documentation is powered by <a href="http://www.phpdoc.org/">phpDocumentor </a> and authored
on March 27th, 2018 at 15:57.
on April 22nd, 2018 at 14:53.
</section>
</section>
</section>

View File

@ -106,12 +106,12 @@
<ul class="dropdown-menu">
<li>
<a href="../reports/errors.html">
<i class="icon-list-alt"></i>&#160;Errors <span class="label label-info pull-right">44</span>
<i class="icon-list-alt"></i>&#160;Errors <span class="label label-info pull-right">45</span>
</a>
</li>
<li>
<a href="../reports/markers.html">
<i class="icon-list-alt"></i>&#160;Markers <span class="label label-info pull-right">6</span>
<i class="icon-list-alt"></i>&#160;Markers <span class="label label-info pull-right">6</span>
</a>
</li>
<li>
@ -136,10 +136,10 @@
<div class="accordion" style="margin-bottom: 0">
<div class="accordion-group">
<div class="accordion-heading">
<a class="accordion-toggle " data-toggle="collapse" data-target="#namespace-2022587188"></a>
<a class="accordion-toggle " data-toggle="collapse" data-target="#namespace-130881301"></a>
<a href="../namespaces/default.html" style="margin-left: 30px; padding-left: 0">\</a>
</div>
<div id="namespace-2022587188" class="accordion-body collapse in">
<div id="namespace-130881301" class="accordion-body collapse in">
<div class="accordion-inner">
@ -298,7 +298,7 @@
<section class="span10 offset1">
<hr />
Documentation is powered by <a href="http://www.phpdoc.org/">phpDocumentor </a> and authored
on March 27th, 2018 at 15:57.
on April 22nd, 2018 at 14:53.
</section>
</section>
</section>

View File

@ -106,12 +106,12 @@
<ul class="dropdown-menu">
<li>
<a href="../reports/errors.html">
<i class="icon-list-alt"></i>&#160;Errors <span class="label label-info pull-right">44</span>
<i class="icon-list-alt"></i>&#160;Errors <span class="label label-info pull-right">45</span>
</a>
</li>
<li>
<a href="../reports/markers.html">
<i class="icon-list-alt"></i>&#160;Markers <span class="label label-info pull-right">6</span>
<i class="icon-list-alt"></i>&#160;Markers <span class="label label-info pull-right">6</span>
</a>
</li>
<li>
@ -136,10 +136,10 @@
<div class="accordion" style="margin-bottom: 0">
<div class="accordion-group">
<div class="accordion-heading">
<a class="accordion-toggle " data-toggle="collapse" data-target="#namespace-977356070"></a>
<a class="accordion-toggle " data-toggle="collapse" data-target="#namespace-629799061"></a>
<a href="../namespaces/default.html" style="margin-left: 30px; padding-left: 0">\</a>
</div>
<div id="namespace-977356070" class="accordion-body collapse in">
<div id="namespace-629799061" class="accordion-body collapse in">
<div class="accordion-inner">
@ -544,7 +544,7 @@ at which the comments are being rendered.</p></td>
<section class="span10 offset1">
<hr />
Documentation is powered by <a href="http://www.phpdoc.org/">phpDocumentor </a> and authored
on March 27th, 2018 at 15:57.
on April 22nd, 2018 at 14:53.
</section>
</section>
</section>

View File

@ -106,12 +106,12 @@
<ul class="dropdown-menu">
<li>
<a href="../reports/errors.html">
<i class="icon-list-alt"></i>&#160;Errors <span class="label label-info pull-right">44</span>
<i class="icon-list-alt"></i>&#160;Errors <span class="label label-info pull-right">45</span>
</a>
</li>
<li>
<a href="../reports/markers.html">
<i class="icon-list-alt"></i>&#160;Markers <span class="label label-info pull-right">6</span>
<i class="icon-list-alt"></i>&#160;Markers <span class="label label-info pull-right">6</span>
</a>
</li>
<li>
@ -136,10 +136,10 @@
<div class="accordion" style="margin-bottom: 0">
<div class="accordion-group">
<div class="accordion-heading">
<a class="accordion-toggle " data-toggle="collapse" data-target="#namespace-1313301697"></a>
<a class="accordion-toggle " data-toggle="collapse" data-target="#namespace-1891110800"></a>
<a href="../namespaces/default.html" style="margin-left: 30px; padding-left: 0">\</a>
</div>
<div id="namespace-1313301697" class="accordion-body collapse in">
<div id="namespace-1891110800" class="accordion-body collapse in">
<div class="accordion-inner">
@ -239,7 +239,7 @@
<section class="span10 offset1">
<hr />
Documentation is powered by <a href="http://www.phpdoc.org/">phpDocumentor </a> and authored
on March 27th, 2018 at 15:57.
on April 22nd, 2018 at 14:53.
</section>
</section>
</section>

View File

@ -106,12 +106,12 @@
<ul class="dropdown-menu">
<li>
<a href="../reports/errors.html">
<i class="icon-list-alt"></i>&#160;Errors <span class="label label-info pull-right">44</span>
<i class="icon-list-alt"></i>&#160;Errors <span class="label label-info pull-right">45</span>
</a>
</li>
<li>
<a href="../reports/markers.html">
<i class="icon-list-alt"></i>&#160;Markers <span class="label label-info pull-right">6</span>
<i class="icon-list-alt"></i>&#160;Markers <span class="label label-info pull-right">6</span>
</a>
</li>
<li>
@ -136,10 +136,10 @@
<div class="accordion" style="margin-bottom: 0">
<div class="accordion-group">
<div class="accordion-heading">
<a class="accordion-toggle " data-toggle="collapse" data-target="#namespace-1929473902"></a>
<a class="accordion-toggle " data-toggle="collapse" data-target="#namespace-333713764"></a>
<a href="../namespaces/default.html" style="margin-left: 30px; padding-left: 0">\</a>
</div>
<div id="namespace-1929473902" class="accordion-body collapse in">
<div id="namespace-333713764" class="accordion-body collapse in">
<div class="accordion-inner">
@ -304,7 +304,7 @@
<section class="span10 offset1">
<hr />
Documentation is powered by <a href="http://www.phpdoc.org/">phpDocumentor </a> and authored
on March 27th, 2018 at 15:57.
on April 22nd, 2018 at 14:53.
</section>
</section>
</section>

View File

@ -106,12 +106,12 @@
<ul class="dropdown-menu">
<li>
<a href="../reports/errors.html">
<i class="icon-list-alt"></i>&#160;Errors <span class="label label-info pull-right">44</span>
<i class="icon-list-alt"></i>&#160;Errors <span class="label label-info pull-right">45</span>
</a>
</li>
<li>
<a href="../reports/markers.html">
<i class="icon-list-alt"></i>&#160;Markers <span class="label label-info pull-right">6</span>
<i class="icon-list-alt"></i>&#160;Markers <span class="label label-info pull-right">6</span>
</a>
</li>
<li>
@ -136,10 +136,10 @@
<div class="accordion" style="margin-bottom: 0">
<div class="accordion-group">
<div class="accordion-heading">
<a class="accordion-toggle " data-toggle="collapse" data-target="#namespace-131874565"></a>
<a class="accordion-toggle " data-toggle="collapse" data-target="#namespace-660992114"></a>
<a href="../namespaces/default.html" style="margin-left: 30px; padding-left: 0">\</a>
</div>
<div id="namespace-131874565" class="accordion-body collapse in">
<div id="namespace-660992114" class="accordion-body collapse in">
<div class="accordion-inner">
@ -384,7 +384,7 @@
<section class="span10 offset1">
<hr />
Documentation is powered by <a href="http://www.phpdoc.org/">phpDocumentor </a> and authored
on March 27th, 2018 at 15:57.
on April 22nd, 2018 at 14:53.
</section>
</section>
</section>

View File

@ -106,12 +106,12 @@
<ul class="dropdown-menu">
<li>
<a href="../reports/errors.html">
<i class="icon-list-alt"></i>&#160;Errors <span class="label label-info pull-right">44</span>
<i class="icon-list-alt"></i>&#160;Errors <span class="label label-info pull-right">45</span>
</a>
</li>
<li>
<a href="../reports/markers.html">
<i class="icon-list-alt"></i>&#160;Markers <span class="label label-info pull-right">6</span>
<i class="icon-list-alt"></i>&#160;Markers <span class="label label-info pull-right">6</span>
</a>
</li>
<li>
@ -136,10 +136,10 @@
<div class="accordion" style="margin-bottom: 0">
<div class="accordion-group">
<div class="accordion-heading">
<a class="accordion-toggle " data-toggle="collapse" data-target="#namespace-775827532"></a>
<a class="accordion-toggle " data-toggle="collapse" data-target="#namespace-862156623"></a>
<a href="../namespaces/default.html" style="margin-left: 30px; padding-left: 0">\</a>
</div>
<div id="namespace-775827532" class="accordion-body collapse in">
<div id="namespace-862156623" class="accordion-body collapse in">
<div class="accordion-inner">
@ -239,7 +239,7 @@
<section class="span10 offset1">
<hr />
Documentation is powered by <a href="http://www.phpdoc.org/">phpDocumentor </a> and authored
on March 27th, 2018 at 15:57.
on April 22nd, 2018 at 14:53.
</section>
</section>
</section>

View File

@ -106,12 +106,12 @@
<ul class="dropdown-menu">
<li>
<a href="../reports/errors.html">
<i class="icon-list-alt"></i>&#160;Errors <span class="label label-info pull-right">44</span>
<i class="icon-list-alt"></i>&#160;Errors <span class="label label-info pull-right">45</span>
</a>
</li>
<li>
<a href="../reports/markers.html">
<i class="icon-list-alt"></i>&#160;Markers <span class="label label-info pull-right">6</span>
<i class="icon-list-alt"></i>&#160;Markers <span class="label label-info pull-right">6</span>
</a>
</li>
<li>
@ -136,10 +136,10 @@
<div class="accordion" style="margin-bottom: 0">
<div class="accordion-group">
<div class="accordion-heading">
<a class="accordion-toggle " data-toggle="collapse" data-target="#namespace-1918430307"></a>
<a class="accordion-toggle " data-toggle="collapse" data-target="#namespace-389990780"></a>
<a href="../namespaces/default.html" style="margin-left: 30px; padding-left: 0">\</a>
</div>
<div id="namespace-1918430307" class="accordion-body collapse in">
<div id="namespace-389990780" class="accordion-body collapse in">
<div class="accordion-inner">
@ -246,7 +246,7 @@
<section class="span10 offset1">
<hr />
Documentation is powered by <a href="http://www.phpdoc.org/">phpDocumentor </a> and authored
on March 27th, 2018 at 15:57.
on April 22nd, 2018 at 14:53.
</section>
</section>
</section>

View File

@ -106,12 +106,12 @@
<ul class="dropdown-menu">
<li>
<a href="../reports/errors.html">
<i class="icon-list-alt"></i>&#160;Errors <span class="label label-info pull-right">44</span>
<i class="icon-list-alt"></i>&#160;Errors <span class="label label-info pull-right">45</span>
</a>
</li>
<li>
<a href="../reports/markers.html">
<i class="icon-list-alt"></i>&#160;Markers <span class="label label-info pull-right">6</span>
<i class="icon-list-alt"></i>&#160;Markers <span class="label label-info pull-right">6</span>
</a>
</li>
<li>
@ -136,10 +136,10 @@
<div class="accordion" style="margin-bottom: 0">
<div class="accordion-group">
<div class="accordion-heading">
<a class="accordion-toggle " data-toggle="collapse" data-target="#namespace-251834310"></a>
<a class="accordion-toggle " data-toggle="collapse" data-target="#namespace-1310911310"></a>
<a href="../namespaces/default.html" style="margin-left: 30px; padding-left: 0">\</a>
</div>
<div id="namespace-251834310" class="accordion-body collapse in">
<div id="namespace-1310911310" class="accordion-body collapse in">
<div class="accordion-inner">
@ -381,7 +381,7 @@
<section class="span10 offset1">
<hr />
Documentation is powered by <a href="http://www.phpdoc.org/">phpDocumentor </a> and authored
on March 27th, 2018 at 15:57.
on April 22nd, 2018 at 14:53.
</section>
</section>
</section>

View File

@ -106,12 +106,12 @@
<ul class="dropdown-menu">
<li>
<a href="../reports/errors.html">
<i class="icon-list-alt"></i>&#160;Errors <span class="label label-info pull-right">44</span>
<i class="icon-list-alt"></i>&#160;Errors <span class="label label-info pull-right">45</span>
</a>
</li>
<li>
<a href="../reports/markers.html">
<i class="icon-list-alt"></i>&#160;Markers <span class="label label-info pull-right">6</span>
<i class="icon-list-alt"></i>&#160;Markers <span class="label label-info pull-right">6</span>
</a>
</li>
<li>
@ -136,10 +136,10 @@
<div class="accordion" style="margin-bottom: 0">
<div class="accordion-group">
<div class="accordion-heading">
<a class="accordion-toggle " data-toggle="collapse" data-target="#namespace-417747000"></a>
<a class="accordion-toggle " data-toggle="collapse" data-target="#namespace-499492904"></a>
<a href="../namespaces/default.html" style="margin-left: 30px; padding-left: 0">\</a>
</div>
<div id="namespace-417747000" class="accordion-body collapse in">
<div id="namespace-499492904" class="accordion-body collapse in">
<div class="accordion-inner">
@ -503,7 +503,7 @@ the image.</p></td>
<section class="span10 offset1">
<hr />
Documentation is powered by <a href="http://www.phpdoc.org/">phpDocumentor </a> and authored
on March 27th, 2018 at 15:57.
on April 22nd, 2018 at 14:53.
</section>
</section>
</section>

View File

@ -106,12 +106,12 @@
<ul class="dropdown-menu">
<li>
<a href="../reports/errors.html">
<i class="icon-list-alt"></i>&#160;Errors <span class="label label-info pull-right">44</span>
<i class="icon-list-alt"></i>&#160;Errors <span class="label label-info pull-right">45</span>
</a>
</li>
<li>
<a href="../reports/markers.html">
<i class="icon-list-alt"></i>&#160;Markers <span class="label label-info pull-right">6</span>
<i class="icon-list-alt"></i>&#160;Markers <span class="label label-info pull-right">6</span>
</a>
</li>
<li>
@ -136,10 +136,10 @@
<div class="accordion" style="margin-bottom: 0">
<div class="accordion-group">
<div class="accordion-heading">
<a class="accordion-toggle " data-toggle="collapse" data-target="#namespace-1707546201"></a>
<a class="accordion-toggle " data-toggle="collapse" data-target="#namespace-669578759"></a>
<a href="../namespaces/default.html" style="margin-left: 30px; padding-left: 0">\</a>
</div>
<div id="namespace-1707546201" class="accordion-body collapse in">
<div id="namespace-669578759" class="accordion-body collapse in">
<div class="accordion-inner">
@ -239,7 +239,7 @@
<section class="span10 offset1">
<hr />
Documentation is powered by <a href="http://www.phpdoc.org/">phpDocumentor </a> and authored
on March 27th, 2018 at 15:57.
on April 22nd, 2018 at 14:53.
</section>
</section>
</section>

View File

@ -106,12 +106,12 @@
<ul class="dropdown-menu">
<li>
<a href="../reports/errors.html">
<i class="icon-list-alt"></i>&#160;Errors <span class="label label-info pull-right">44</span>
<i class="icon-list-alt"></i>&#160;Errors <span class="label label-info pull-right">45</span>
</a>
</li>
<li>
<a href="../reports/markers.html">
<i class="icon-list-alt"></i>&#160;Markers <span class="label label-info pull-right">6</span>
<i class="icon-list-alt"></i>&#160;Markers <span class="label label-info pull-right">6</span>
</a>
</li>
<li>
@ -136,10 +136,10 @@
<div class="accordion" style="margin-bottom: 0">
<div class="accordion-group">
<div class="accordion-heading">
<a class="accordion-toggle " data-toggle="collapse" data-target="#namespace-25228693"></a>
<a class="accordion-toggle " data-toggle="collapse" data-target="#namespace-1373037861"></a>
<a href="../namespaces/default.html" style="margin-left: 30px; padding-left: 0">\</a>
</div>
<div id="namespace-25228693" class="accordion-body collapse in">
<div id="namespace-1373037861" class="accordion-body collapse in">
<div class="accordion-inner">
@ -239,7 +239,7 @@
<section class="span10 offset1">
<hr />
Documentation is powered by <a href="http://www.phpdoc.org/">phpDocumentor </a> and authored
on March 27th, 2018 at 15:57.
on April 22nd, 2018 at 14:53.
</section>
</section>
</section>

View File

@ -106,12 +106,12 @@
<ul class="dropdown-menu">
<li>
<a href="../reports/errors.html">
<i class="icon-list-alt"></i>&#160;Errors <span class="label label-info pull-right">44</span>
<i class="icon-list-alt"></i>&#160;Errors <span class="label label-info pull-right">45</span>
</a>
</li>
<li>
<a href="../reports/markers.html">
<i class="icon-list-alt"></i>&#160;Markers <span class="label label-info pull-right">6</span>
<i class="icon-list-alt"></i>&#160;Markers <span class="label label-info pull-right">6</span>
</a>
</li>
<li>
@ -136,10 +136,10 @@
<div class="accordion" style="margin-bottom: 0">
<div class="accordion-group">
<div class="accordion-heading">
<a class="accordion-toggle " data-toggle="collapse" data-target="#namespace-638372598"></a>
<a class="accordion-toggle " data-toggle="collapse" data-target="#namespace-717531834"></a>
<a href="../namespaces/default.html" style="margin-left: 30px; padding-left: 0">\</a>
</div>
<div id="namespace-638372598" class="accordion-body collapse in">
<div id="namespace-717531834" class="accordion-body collapse in">
<div class="accordion-inner">
@ -239,7 +239,7 @@
<section class="span10 offset1">
<hr />
Documentation is powered by <a href="http://www.phpdoc.org/">phpDocumentor </a> and authored
on March 27th, 2018 at 15:57.
on April 22nd, 2018 at 14:53.
</section>
</section>
</section>

View File

@ -106,12 +106,12 @@
<ul class="dropdown-menu">
<li>
<a href="../reports/errors.html">
<i class="icon-list-alt"></i>&#160;Errors <span class="label label-info pull-right">44</span>
<i class="icon-list-alt"></i>&#160;Errors <span class="label label-info pull-right">45</span>
</a>
</li>
<li>
<a href="../reports/markers.html">
<i class="icon-list-alt"></i>&#160;Markers <span class="label label-info pull-right">6</span>
<i class="icon-list-alt"></i>&#160;Markers <span class="label label-info pull-right">6</span>
</a>
</li>
<li>
@ -136,10 +136,10 @@
<div class="accordion" style="margin-bottom: 0">
<div class="accordion-group">
<div class="accordion-heading">
<a class="accordion-toggle " data-toggle="collapse" data-target="#namespace-373741980"></a>
<a class="accordion-toggle " data-toggle="collapse" data-target="#namespace-564241527"></a>
<a href="../namespaces/default.html" style="margin-left: 30px; padding-left: 0">\</a>
</div>
<div id="namespace-373741980" class="accordion-body collapse in">
<div id="namespace-564241527" class="accordion-body collapse in">
<div class="accordion-inner">
@ -239,7 +239,7 @@
<section class="span10 offset1">
<hr />
Documentation is powered by <a href="http://www.phpdoc.org/">phpDocumentor </a> and authored
on March 27th, 2018 at 15:57.
on April 22nd, 2018 at 14:53.
</section>
</section>
</section>

View File

@ -106,12 +106,12 @@
<ul class="dropdown-menu">
<li>
<a href="../reports/errors.html">
<i class="icon-list-alt"></i>&#160;Errors <span class="label label-info pull-right">44</span>
<i class="icon-list-alt"></i>&#160;Errors <span class="label label-info pull-right">45</span>
</a>
</li>
<li>
<a href="../reports/markers.html">
<i class="icon-list-alt"></i>&#160;Markers <span class="label label-info pull-right">6</span>
<i class="icon-list-alt"></i>&#160;Markers <span class="label label-info pull-right">6</span>
</a>
</li>
<li>
@ -136,10 +136,10 @@
<div class="accordion" style="margin-bottom: 0">
<div class="accordion-group">
<div class="accordion-heading">
<a class="accordion-toggle " data-toggle="collapse" data-target="#namespace-119593812"></a>
<a class="accordion-toggle " data-toggle="collapse" data-target="#namespace-2002736924"></a>
<a href="../namespaces/default.html" style="margin-left: 30px; padding-left: 0">\</a>
</div>
<div id="namespace-119593812" class="accordion-body collapse in">
<div id="namespace-2002736924" class="accordion-body collapse in">
<div class="accordion-inner">
@ -239,7 +239,7 @@
<section class="span10 offset1">
<hr />
Documentation is powered by <a href="http://www.phpdoc.org/">phpDocumentor </a> and authored
on March 27th, 2018 at 15:57.
on April 22nd, 2018 at 14:53.
</section>
</section>
</section>

View File

@ -106,12 +106,12 @@
<ul class="dropdown-menu">
<li>
<a href="../reports/errors.html">
<i class="icon-list-alt"></i>&#160;Errors <span class="label label-info pull-right">44</span>
<i class="icon-list-alt"></i>&#160;Errors <span class="label label-info pull-right">45</span>
</a>
</li>
<li>
<a href="../reports/markers.html">
<i class="icon-list-alt"></i>&#160;Markers <span class="label label-info pull-right">6</span>
<i class="icon-list-alt"></i>&#160;Markers <span class="label label-info pull-right">6</span>
</a>
</li>
<li>
@ -136,10 +136,10 @@
<div class="accordion" style="margin-bottom: 0">
<div class="accordion-group">
<div class="accordion-heading">
<a class="accordion-toggle " data-toggle="collapse" data-target="#namespace-1306164280"></a>
<a class="accordion-toggle " data-toggle="collapse" data-target="#namespace-202698370"></a>
<a href="../namespaces/default.html" style="margin-left: 30px; padding-left: 0">\</a>
</div>
<div id="namespace-1306164280" class="accordion-body collapse in">
<div id="namespace-202698370" class="accordion-body collapse in">
<div class="accordion-inner">
@ -239,7 +239,7 @@
<section class="span10 offset1">
<hr />
Documentation is powered by <a href="http://www.phpdoc.org/">phpDocumentor </a> and authored
on March 27th, 2018 at 15:57.
on April 22nd, 2018 at 14:53.
</section>
</section>
</section>

View File

@ -106,12 +106,12 @@
<ul class="dropdown-menu">
<li>
<a href="../reports/errors.html">
<i class="icon-list-alt"></i>&#160;Errors <span class="label label-info pull-right">44</span>
<i class="icon-list-alt"></i>&#160;Errors <span class="label label-info pull-right">45</span>
</a>
</li>
<li>
<a href="../reports/markers.html">
<i class="icon-list-alt"></i>&#160;Markers <span class="label label-info pull-right">6</span>
<i class="icon-list-alt"></i>&#160;Markers <span class="label label-info pull-right">6</span>
</a>
</li>
<li>
@ -136,10 +136,10 @@
<div class="accordion" style="margin-bottom: 0">
<div class="accordion-group">
<div class="accordion-heading">
<a class="accordion-toggle " data-toggle="collapse" data-target="#namespace-423912745"></a>
<a class="accordion-toggle " data-toggle="collapse" data-target="#namespace-446217372"></a>
<a href="../namespaces/default.html" style="margin-left: 30px; padding-left: 0">\</a>
</div>
<div id="namespace-423912745" class="accordion-body collapse in">
<div id="namespace-446217372" class="accordion-body collapse in">
<div class="accordion-inner">
@ -239,7 +239,7 @@
<section class="span10 offset1">
<hr />
Documentation is powered by <a href="http://www.phpdoc.org/">phpDocumentor </a> and authored
on March 27th, 2018 at 15:57.
on April 22nd, 2018 at 14:53.
</section>
</section>
</section>

View File

@ -106,12 +106,12 @@
<ul class="dropdown-menu">
<li>
<a href="../reports/errors.html">
<i class="icon-list-alt"></i>&#160;Errors <span class="label label-info pull-right">44</span>
<i class="icon-list-alt"></i>&#160;Errors <span class="label label-info pull-right">45</span>
</a>
</li>
<li>
<a href="../reports/markers.html">
<i class="icon-list-alt"></i>&#160;Markers <span class="label label-info pull-right">6</span>
<i class="icon-list-alt"></i>&#160;Markers <span class="label label-info pull-right">6</span>
</a>
</li>
<li>
@ -136,10 +136,10 @@
<div class="accordion" style="margin-bottom: 0">
<div class="accordion-group">
<div class="accordion-heading">
<a class="accordion-toggle " data-toggle="collapse" data-target="#namespace-1367647496"></a>
<a class="accordion-toggle " data-toggle="collapse" data-target="#namespace-196419031"></a>
<a href="../namespaces/default.html" style="margin-left: 30px; padding-left: 0">\</a>
</div>
<div id="namespace-1367647496" class="accordion-body collapse in">
<div id="namespace-196419031" class="accordion-body collapse in">
<div class="accordion-inner">
@ -340,7 +340,7 @@
<section class="span10 offset1">
<hr />
Documentation is powered by <a href="http://www.phpdoc.org/">phpDocumentor </a> and authored
on March 27th, 2018 at 15:57.
on April 22nd, 2018 at 14:53.
</section>
</section>
</section>

View File

@ -106,12 +106,12 @@
<ul class="dropdown-menu">
<li>
<a href="../reports/errors.html">
<i class="icon-list-alt"></i>&#160;Errors <span class="label label-info pull-right">44</span>
<i class="icon-list-alt"></i>&#160;Errors <span class="label label-info pull-right">45</span>
</a>
</li>
<li>
<a href="../reports/markers.html">
<i class="icon-list-alt"></i>&#160;Markers <span class="label label-info pull-right">6</span>
<i class="icon-list-alt"></i>&#160;Markers <span class="label label-info pull-right">6</span>
</a>
</li>
<li>
@ -136,10 +136,10 @@
<div class="accordion" style="margin-bottom: 0">
<div class="accordion-group">
<div class="accordion-heading">
<a class="accordion-toggle " data-toggle="collapse" data-target="#namespace-453139013"></a>
<a class="accordion-toggle " data-toggle="collapse" data-target="#namespace-1474704656"></a>
<a href="../namespaces/default.html" style="margin-left: 30px; padding-left: 0">\</a>
</div>
<div id="namespace-453139013" class="accordion-body collapse in">
<div id="namespace-1474704656" class="accordion-body collapse in">
<div class="accordion-inner">
@ -295,7 +295,7 @@ enabled, or sha256 otherwise.</p>
<section class="span10 offset1">
<hr />
Documentation is powered by <a href="http://www.phpdoc.org/">phpDocumentor </a> and authored
on March 27th, 2018 at 15:57.
on April 22nd, 2018 at 14:53.
</section>
</section>
</section>

View File

@ -106,12 +106,12 @@
<ul class="dropdown-menu">
<li>
<a href="../reports/errors.html">
<i class="icon-list-alt"></i>&#160;Errors <span class="label label-info pull-right">44</span>
<i class="icon-list-alt"></i>&#160;Errors <span class="label label-info pull-right">45</span>
</a>
</li>
<li>
<a href="../reports/markers.html">
<i class="icon-list-alt"></i>&#160;Markers <span class="label label-info pull-right">6</span>
<i class="icon-list-alt"></i>&#160;Markers <span class="label label-info pull-right">6</span>
</a>
</li>
<li>
@ -136,10 +136,10 @@
<div class="accordion" style="margin-bottom: 0">
<div class="accordion-group">
<div class="accordion-heading">
<a class="accordion-toggle " data-toggle="collapse" data-target="#namespace-1278657214"></a>
<a class="accordion-toggle " data-toggle="collapse" data-target="#namespace-1194338874"></a>
<a href="../namespaces/default.html" style="margin-left: 30px; padding-left: 0">\</a>
</div>
<div id="namespace-1278657214" class="accordion-body collapse in">
<div id="namespace-1194338874" class="accordion-body collapse in">
<div class="accordion-inner">
@ -239,7 +239,7 @@
<section class="span10 offset1">
<hr />
Documentation is powered by <a href="http://www.phpdoc.org/">phpDocumentor </a> and authored
on March 27th, 2018 at 15:57.
on April 22nd, 2018 at 14:53.
</section>
</section>
</section>

View File

@ -106,12 +106,12 @@
<ul class="dropdown-menu">
<li>
<a href="../reports/errors.html">
<i class="icon-list-alt"></i>&#160;Errors <span class="label label-info pull-right">44</span>
<i class="icon-list-alt"></i>&#160;Errors <span class="label label-info pull-right">45</span>
</a>
</li>
<li>
<a href="../reports/markers.html">
<i class="icon-list-alt"></i>&#160;Markers <span class="label label-info pull-right">6</span>
<i class="icon-list-alt"></i>&#160;Markers <span class="label label-info pull-right">6</span>
</a>
</li>
<li>
@ -136,10 +136,10 @@
<div class="accordion" style="margin-bottom: 0">
<div class="accordion-group">
<div class="accordion-heading">
<a class="accordion-toggle " data-toggle="collapse" data-target="#namespace-2027577659"></a>
<a class="accordion-toggle " data-toggle="collapse" data-target="#namespace-529132537"></a>
<a href="../namespaces/default.html" style="margin-left: 30px; padding-left: 0">\</a>
</div>
<div id="namespace-2027577659" class="accordion-body collapse in">
<div id="namespace-529132537" class="accordion-body collapse in">
<div class="accordion-inner">
@ -239,7 +239,7 @@
<section class="span10 offset1">
<hr />
Documentation is powered by <a href="http://www.phpdoc.org/">phpDocumentor </a> and authored
on March 27th, 2018 at 15:57.
on April 22nd, 2018 at 14:53.
</section>
</section>
</section>

View File

@ -106,12 +106,12 @@
<ul class="dropdown-menu">
<li>
<a href="../reports/errors.html">
<i class="icon-list-alt"></i>&#160;Errors <span class="label label-info pull-right">44</span>
<i class="icon-list-alt"></i>&#160;Errors <span class="label label-info pull-right">45</span>
</a>
</li>
<li>
<a href="../reports/markers.html">
<i class="icon-list-alt"></i>&#160;Markers <span class="label label-info pull-right">6</span>
<i class="icon-list-alt"></i>&#160;Markers <span class="label label-info pull-right">6</span>
</a>
</li>
<li>
@ -136,10 +136,10 @@
<div class="accordion" style="margin-bottom: 0">
<div class="accordion-group">
<div class="accordion-heading">
<a class="accordion-toggle " data-toggle="collapse" data-target="#namespace-857635256"></a>
<a class="accordion-toggle " data-toggle="collapse" data-target="#namespace-1428248836"></a>
<a href="../namespaces/default.html" style="margin-left: 30px; padding-left: 0">\</a>
</div>
<div id="namespace-857635256" class="accordion-body collapse in">
<div id="namespace-1428248836" class="accordion-body collapse in">
<div class="accordion-inner">
@ -239,7 +239,7 @@
<section class="span10 offset1">
<hr />
Documentation is powered by <a href="http://www.phpdoc.org/">phpDocumentor </a> and authored
on March 27th, 2018 at 15:57.
on April 22nd, 2018 at 14:53.
</section>
</section>
</section>

View File

@ -106,12 +106,12 @@
<ul class="dropdown-menu">
<li>
<a href="../reports/errors.html">
<i class="icon-list-alt"></i>&#160;Errors <span class="label label-info pull-right">44</span>
<i class="icon-list-alt"></i>&#160;Errors <span class="label label-info pull-right">45</span>
</a>
</li>
<li>
<a href="../reports/markers.html">
<i class="icon-list-alt"></i>&#160;Markers <span class="label label-info pull-right">6</span>
<i class="icon-list-alt"></i>&#160;Markers <span class="label label-info pull-right">6</span>
</a>
</li>
<li>
@ -136,10 +136,10 @@
<div class="accordion" style="margin-bottom: 0">
<div class="accordion-group">
<div class="accordion-heading">
<a class="accordion-toggle " data-toggle="collapse" data-target="#namespace-1889324532"></a>
<a class="accordion-toggle " data-toggle="collapse" data-target="#namespace-760808978"></a>
<a href="../namespaces/default.html" style="margin-left: 30px; padding-left: 0">\</a>
</div>
<div id="namespace-1889324532" class="accordion-body collapse in">
<div id="namespace-760808978" class="accordion-body collapse in">
<div class="accordion-inner">
@ -239,7 +239,7 @@
<section class="span10 offset1">
<hr />
Documentation is powered by <a href="http://www.phpdoc.org/">phpDocumentor </a> and authored
on March 27th, 2018 at 15:57.
on April 22nd, 2018 at 14:53.
</section>
</section>
</section>

View File

@ -106,12 +106,12 @@
<ul class="dropdown-menu">
<li>
<a href="../reports/errors.html">
<i class="icon-list-alt"></i>&#160;Errors <span class="label label-info pull-right">44</span>
<i class="icon-list-alt"></i>&#160;Errors <span class="label label-info pull-right">45</span>
</a>
</li>
<li>
<a href="../reports/markers.html">
<i class="icon-list-alt"></i>&#160;Markers <span class="label label-info pull-right">6</span>
<i class="icon-list-alt"></i>&#160;Markers <span class="label label-info pull-right">6</span>
</a>
</li>
<li>
@ -136,10 +136,10 @@
<div class="accordion" style="margin-bottom: 0">
<div class="accordion-group">
<div class="accordion-heading">
<a class="accordion-toggle " data-toggle="collapse" data-target="#namespace-1486509053"></a>
<a class="accordion-toggle " data-toggle="collapse" data-target="#namespace-1035095023"></a>
<a href="../namespaces/default.html" style="margin-left: 30px; padding-left: 0">\</a>
</div>
<div id="namespace-1486509053" class="accordion-body collapse in">
<div id="namespace-1035095023" class="accordion-body collapse in">
<div class="accordion-inner">
@ -239,7 +239,7 @@
<section class="span10 offset1">
<hr />
Documentation is powered by <a href="http://www.phpdoc.org/">phpDocumentor </a> and authored
on March 27th, 2018 at 15:57.
on April 22nd, 2018 at 14:53.
</section>
</section>
</section>

View File

@ -106,12 +106,12 @@
<ul class="dropdown-menu">
<li>
<a href="../reports/errors.html">
<i class="icon-list-alt"></i>&#160;Errors <span class="label label-info pull-right">44</span>
<i class="icon-list-alt"></i>&#160;Errors <span class="label label-info pull-right">45</span>
</a>
</li>
<li>
<a href="../reports/markers.html">
<i class="icon-list-alt"></i>&#160;Markers <span class="label label-info pull-right">6</span>
<i class="icon-list-alt"></i>&#160;Markers <span class="label label-info pull-right">6</span>
</a>
</li>
<li>
@ -136,10 +136,10 @@
<div class="accordion" style="margin-bottom: 0">
<div class="accordion-group">
<div class="accordion-heading">
<a class="accordion-toggle " data-toggle="collapse" data-target="#namespace-1288297845"></a>
<a class="accordion-toggle " data-toggle="collapse" data-target="#namespace-4857908"></a>
<a href="../namespaces/default.html" style="margin-left: 30px; padding-left: 0">\</a>
</div>
<div id="namespace-1288297845" class="accordion-body collapse in">
<div id="namespace-4857908" class="accordion-body collapse in">
<div class="accordion-inner">
@ -246,7 +246,7 @@
<section class="span10 offset1">
<hr />
Documentation is powered by <a href="http://www.phpdoc.org/">phpDocumentor </a> and authored
on March 27th, 2018 at 15:57.
on April 22nd, 2018 at 14:53.
</section>
</section>
</section>

View File

@ -106,12 +106,12 @@
<ul class="dropdown-menu">
<li>
<a href="../reports/errors.html">
<i class="icon-list-alt"></i>&#160;Errors <span class="label label-info pull-right">44</span>
<i class="icon-list-alt"></i>&#160;Errors <span class="label label-info pull-right">45</span>
</a>
</li>
<li>
<a href="../reports/markers.html">
<i class="icon-list-alt"></i>&#160;Markers <span class="label label-info pull-right">6</span>
<i class="icon-list-alt"></i>&#160;Markers <span class="label label-info pull-right">6</span>
</a>
</li>
<li>
@ -136,10 +136,10 @@
<div class="accordion" style="margin-bottom: 0">
<div class="accordion-group">
<div class="accordion-heading">
<a class="accordion-toggle " data-toggle="collapse" data-target="#namespace-1876411094"></a>
<a class="accordion-toggle " data-toggle="collapse" data-target="#namespace-825867458"></a>
<a href="../namespaces/default.html" style="margin-left: 30px; padding-left: 0">\</a>
</div>
<div id="namespace-1876411094" class="accordion-body collapse in">
<div id="namespace-825867458" class="accordion-body collapse in">
<div class="accordion-inner">
@ -246,7 +246,7 @@
<section class="span10 offset1">
<hr />
Documentation is powered by <a href="http://www.phpdoc.org/">phpDocumentor </a> and authored
on March 27th, 2018 at 15:57.
on April 22nd, 2018 at 14:53.
</section>
</section>
</section>

View File

@ -8,24 +8,19 @@ register_module([
"code" => function() {
global $settings;
/**
* @api {get} ?action=status Get the json-formatted status of this wiki
* @api {get} ?action=status[&minified=type] Get the json-formatted status of this wiki
* @apiName Status
* @apiGroup Stats
* @apiPermission Anonymous
*
*
* @apiParam {boolean} Whether or not the result should be minified JSON. Default: false
*/
add_action("status", function() {
global $version, $env, $settings, $actions;
// Make sure the client can accept JSON
if(!accept_contains_mime($_SERVER["HTTP_ACCEPT"] ?? "application/json", "application/json")) {
http_response_code(406);
header("content-type: text/plain");
exit("Unfortunately, this API is currently only available in application/json at the moment, which you haven't indicated you accept in your http accept header. You said this in your accept header:\n" . $_SERVER["HTTP_ACCEPT"]);
}
$minified = ($_GET["minified"] ?? "false") == "true";
$action_names = array_keys(get_object_vars($actions));
sort($action_names);
@ -38,10 +33,10 @@ register_module([
$result->logo_url = $settings->favicon;
header("content-type: application/json");
exit(json_encode($result, JSON_PRETTY_PRINT) . "\n");
exit($minified ? json_encode($result) : json_encode($result, JSON_PRETTY_PRINT) . "\n");
});
add_help_section("960-api-status", "Wiki Status API", "<p></p>");
add_help_section("960-api-status", "Wiki Status API", "<p>$settings->sitename has a <a href='?action=status'>status page</a> that returns some basic information about the current state of the wiki in <a href='http://www.secretgeek.net/json_3mins'>JSON</a>. It can be used as a connection tester - as the Pepperminty Wiki Android app does.</p>");
}
]);

View File

@ -192,6 +192,48 @@ register_module([
exit(page_renderer::render_main("Comment Deleted - $settings->sitename", "<p>The comment with the id <code>" . htmlentities($target_id) . "</code> on the page <em>$env->page</em> has been deleted successfully. <a href='?page=" . rawurlencode($env->page) . "&redirect=no'>Go back</a> to " . htmlentities($env->page) . ".</p>"));
});
/**
* @api {post} ?action=comments-fetch&page={page_name} Fetch the comments for a page
* @apiName CommentsFetch
* @apiGroup Comment
* @apiPermission Anonymous
* @apiDescription Fetches the comments for the specified page. Returns them in a nested JSON structure.
*
* @apiUse PageParameter
* @apiError PageNoteFound The page to fetch the comments for was not found.
*/
/*
* ██████ ██████ ███ ███ ███ ███ ███████ ███ ██ ████████
* ██ ██ ██ ████ ████ ████ ████ ██ ████ ██ ██
* ██ ██ ██ ██ ████ ██ ██ ████ ██ █████ ██ ██ ██ ██ █████
* ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██
* ██████ ██████ ██ ██ ██ ██ ███████ ██ ████ ██
*
* ███████ ███████ ████████ ██████ ██ ██
* ██ ██ ██ ██ ██ ██
* █████ █████ ██ ██ ███████
* ██ ██ ██ ██ ██ ██
* ██ ███████ ██ ██████ ██ ██
*/
add_action("comments-fetch", function() {
global $env;
$comments_filename = get_comment_filename($env->page);
if(!file_exists($comments_filename)) {
http_response_code(404);
header("content-type: text/plain");
exit("Error: No comments file was found for the page '$env->page'.");
}
$comments_data = json_decode(file_get_contents($comments_filename));
$result = json_encode($comments_data);
header("content-type: application/json");
header("content-length: " . strlen($result));
exit($result);
});
if($env->action == "view") {
page_renderer::register_part_preprocessor(function(&$parts) {

View File

@ -38,9 +38,9 @@ register_module([
$content .= "<p>This page lets you configure $settings->sitename's master settings. Please be careful - you can break things easily on this page if you're not careful!</p>\n";
$content .= "<h2>Actions</h2>";
$content .= "<button class='action-invindex-rebuild'>Rebuild Search Index</button><br />\n";
$content .= "<output class='action-invindex-rebuild-latestmessage'></output><br />\n";
$content .= "<button class='action-invindex-rebuild' title='Rebuilds the index that is consulted when searching the wiki. Hit this button if some pages are not showing up.'>Rebuild Search Index</button>\n";
$content .= "<progress class='action-invindex-rebuild-progress' min='0' max='100' value='0' style='display: none;'></progress><br />\n";
$content .= "<output class='action-invindex-rebuild-latestmessage'></output><br />\n";
$invindex_rebuild_script = <<<SCRIPT
window.addEventListener("load", function(event) {

View File

@ -7,12 +7,6 @@ register_module([
"id" => "feature-recent-changes",
"code" => function() {
global $settings, $env, $paths;
/**
* @api {get} ?action=recentchanges Get a list of recent changes
* @apiName RecentChanges
* @apiGroup Stats
* @apiPermission Anonymous
*/
// Add the recent changes json file to $paths for convenience.
$paths->recentchanges = $env->storage_prefix . "recent-changes.json";
@ -20,6 +14,14 @@ register_module([
if(!file_exists($paths->recentchanges))
file_put_contents($paths->recentchanges, "[]");
/**
* @api {get} ?action=recent-changes[&format={code}] Get a list of recent changes
* @apiName RecentChanges
* @apiGroup Stats
* @apiPermission Anonymous
*
* @apiParam {string} format The format to return the recent changes in. Values: html, json. Default: html.
*/
/*
* ██████ ███████ ██████ ███████ ███ ██ ████████
* ██ ██ ██ ██ ██ ████ ██ ██
@ -36,21 +38,30 @@ register_module([
add_action("recent-changes", function() {
global $settings, $paths, $pageindex;
$content = "\t\t<h1>Recent Changes</h1>\n";
$format = $_GET["format"] ?? "html";
$recent_changes = json_decode(file_get_contents($paths->recentchanges));
if(count($recent_changes) > 0)
{
$content .= render_recent_changes($recent_changes);
}
else
{
// No changes yet :(
$content .= "<p><em>None yet! Try making a few changes and then check back here.</em></p>\n";
switch($format) {
case "html":
$content = "\t\t<h1>Recent Changes</h1>\n";
if(count($recent_changes) > 0)
$content .= render_recent_changes($recent_changes);
else // No changes yet :(
$content .= "<p><em>None yet! Try making a few changes and then check back here.</em></p>\n";
exit(page_renderer::render("Recent Changes - $settings->sitename", $content));
break;
case "json":
$result = json_encode($recent_changes);
header("content-type: application/json");
header("content-length: " . strlen($result));
exit($result);
break;
}
exit(page_renderer::render("Recent Changes - $settings->sitename", $content));
});
register_save_preprocessor(function(&$pageinfo, &$newsource, &$oldsource) {

View File

@ -588,7 +588,7 @@ class search
if(!file_exists($page_filename)) {
echo("data: [" . ($i + 1) . " / $max] Error: Can't find $page_filename\n");
flush();
$missing_files++;
$i++; $missing_files++;
continue;
}
$pagesource = Normalizer::normalize(file_get_contents($page_filename), Normalizer::FORM_C);

View File

@ -480,11 +480,12 @@ register_module([
if($mime_type == "application/pdf")
$fileTypeDisplay = "file";
$originalUrl = $env->storage_prefix == "./" ? $filepath : "?action=preview&size=original&page=" . rawurlencode($env->page);
$preview_sizes = [ 256, 512, 768, 1024, 1440, 1920 ];
$preview_html .= "\t\t\t<figure class='preview'>
<img src='$previewUrl' />
<a href='$originalUrl'><img src='$previewUrl' /></a>
<nav class='image-controls'>
<ul><li><a href='" . ($env->storage_prefix == "./" ? $filepath : "?action=preview&size=original&page=" . rawurlencode($env->page)) . "'>&#x01f304; Original $fileTypeDisplay</a></li>";
<ul><li><a href='$originalUrl'>&#x01f304; Original $fileTypeDisplay</a></li>";
if($mime_type !== "image/svg+xml")
{
$preview_html .= "<li>Other Sizes: ";

View File

@ -26,7 +26,7 @@ register_module([
$credits = [
"Code" => [
"author" => "Starbeamrainbowlabs",
"author_url" => "https://starbeamrmainbowlabs.com/",
"author_url" => "https://starbeamrainbowlabs.com/",
"thing_url" => "https://github.com/sbrl/Pepprminty-Wiki",
"icon" => "https://avatars0.githubusercontent.com/u/9929737?v=3&s=24"
],

View File

@ -14,12 +14,12 @@ register_module([
"local_filename" => "diff.min.js",
"remote_url" => "https://cdnjs.cloudflare.com/ajax/libs/jsdiff/2.2.2/diff.min.js"
]);
/**
* @api {get} ?action=edit&page={pageName}[&newpage=yes] Get an editing page
* @apiDescription Gets an editing page for a given page. If you don't have permission to edit the page in question, a view source pagee is returned instead.
* @apiName EditPage
* @apiGroup Page
* @apiGroup Editing
* @apiPermission Anonymous
*
* @apiUse PageParameter
@ -139,7 +139,7 @@ register_module([
}
$content .= "<form method='post' name='edit-form' action='index.php?action=preview-edit&page=" . rawurlencode($env->page) . "' class='editform'>
<input type='hidden' name='prev-content-hash' value='" . ((isset($old_pagetext)) ? sha1($old_pagetext) : sha1($pagetext)) . "' />
<input type='hidden' name='prev-content-hash' value='" . generate_page_hash(isset($old_pagetext) ? $old_pagetext : $pagetext) . "' />
<button class='smartsave-restore' title=\"Only works if you haven't changed the editor's content already!\">Restore Locally Saved Content</button>
<textarea name='content' autofocus tabindex='1'>$pagetext</textarea>
<pre class='fit-text-mirror'></pre>
@ -250,11 +250,71 @@ window.addEventListener("load", function(event) {
});
/**
* @api {post} ?action=acquire-edit-key&page={pageName} Acquire an edit key for a page
* @apiDescription Returns an edit key that can be used to programmatically save an edit to a page. It does _not_ necessarily mean that such an edit will be saved. For example, editing might be disabled, or you might not have permission to save an edit on a particular page.
* @apiName AcquireEditKey
* @apiGroup Editing
* @apiPermission Anonymous
*
* @apiUse PageParameter
* @apiPara {string} format The format ot return the edit key in. Possible values: text, json. Default: text.
*/
/*
* █████ ██████ ██████ ██ ██ ██ ██████ ███████
* ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██
* ███████ ██ ██ ██ ██ ██ ██ ██████ █████ █████
* ██ ██ ██ ██ ▄▄ ██ ██ ██ ██ ██ ██ ██
* ██ ██ ██████ ██████ ██████ ██ ██ ██ ███████
* ▀▀
* 
* ███████ ██████ ██ ████████
* ██ ██ ██ ██ ██
* █████ ██ ██ ██ ██ █████
* ██ ██ ██ ██ ██
* ███████ ██████ ██ ██
*
* ██ ██ ███████ ██ ██
* ██ ██ ██ ██ ██
* █████ █████ ████
* ██ ██ ██ ██
* ██ ██ ███████ ██
*/
add_action("acquire-edit-key", function() {
global $env;
if(!file_exists($env->page_filename)) {
http_response_code(404);
header("content-type: text/plain");
exit("Error: The page '$env->page' couldn't be found.");
}
$format = $_GET["format"] ?? "text";
$page_hash = generate_page_hash(file_get_contents($env->page_filename));
switch($format) {
case "text":
header("content-type: text/plain");
exit("$env->page\t$page_hash");
case "json":
$result = new stdClass();
$result->page = $env->page;
$result->key = $page_hash;
header("content-type: application/json");
exit(json_encode($result));
default:
http_response_code(406);
header("content-type: text/plain");
exit("Error: The format $format is not currently known. Supported formats: text, json. Default: text.\nThink this is a bug? Open an issue at https://github.com/sbrl/Pepperminty-Wiki/issues/new");
}
});
/**
* @api {post} ?action=save&page={pageName} Save an edit to a page.
* @apiDescription Saves an edit to a page. If an edit conflict is encountered, then a conflict resolution page is returned instead.
* @apiName EditPage
* @apiGroup Page
* @apiGroup Editing
* @apiPermission Anonymous
*
* @apiUse PageParameter
@ -471,5 +531,9 @@ DIFFSCRIPT;
}
]);
function generate_page_hash($page_data) {
return sha1($page_data);
}
?>

View File

@ -64,7 +64,7 @@ register_module([
* @apiPermission Anonymous
*
* @apiParam {string} user The user name to login with.
* @apiParam {string} password The password to login with.
* @apiParam {string} pass The password to login with.
* @apiParam {string} returnto The URL to redirect to upon a successful login.
*
* @apiError InvalidCredentialsError The supplied credentials were invalid. Note that this error is actually a redirect to ?action=login&failed=yes (with the returnto parameter appended if you supplied one)
@ -86,21 +86,23 @@ register_module([
add_action("checklogin", function() {
global $settings, $env;
//actually do the login
// Actually do the login
if(isset($_POST["user"]) and isset($_POST["pass"]))
{
//the user wants to log in
// The user wants to log in
$user = $_POST["user"];
$pass = $_POST["pass"];
if($settings->users->$user->password == hash_password($pass))
{
// Success! :D
$env->is_logged_in = true;
$expiretime = time() + 60*60*24*30; //30 days from now
$expiretime = time() + 60*60*24*30; // 30 days from now
$_SESSION["$settings->sessionprefix-user"] = $user;
$_SESSION["$settings->sessionprefix-pass"] = hash_password($pass);
$_SESSION["$settings->sessionprefix-expiretime"] = $expiretime;
//redirect to wherever the user was going
// Redirect to wherever the user was going
http_response_code(302);
header("x-login-success: yes");
if(isset($_GET["returnto"]))
header("location: " . $_GET["returnto"]);
else
@ -109,7 +111,9 @@ register_module([
}
else
{
// Login failed :-(
http_response_code(302);
header("x-login-success: no");
$nextUrl = "index.php?action=login&failed=yes";
if(!empty($_GET["returnto"]))
$nextUrl .= "&returnto=" . rawurlencode($_GET["returnto"]);

View File

@ -598,8 +598,7 @@ class PeppermintParsedown extends ParsedownExtra
if($imageCaption)
{
//$rawStyle = $result["element"]["attributes"]["style"] ?? "";
$rawStyle = $result["element"]["attributes"]["style"];
$rawStyle = $result["element"]["text"][0]["attributes"]["style"];
$containerStyle = preg_replace('/^.*float/', "float", $rawStyle);
$mediaStyle = preg_replace('/\s*float.*;/', "", $rawStyle);
$result["element"] = [

View File

@ -106,12 +106,12 @@
<ul class="dropdown-menu">
<li>
<a href="../reports/errors.html">
<i class="icon-list-alt"></i>&#160;Errors <span class="label label-info pull-right">44</span>
<i class="icon-list-alt"></i>&#160;Errors <span class="label label-info pull-right">45</span>
</a>
</li>
<li>
<a href="../reports/markers.html">
<i class="icon-list-alt"></i>&#160;Markers <span class="label label-info pull-right">6</span>
<i class="icon-list-alt"></i>&#160;Markers <span class="label label-info pull-right">6</span>
</a>
</li>
<li>
@ -136,10 +136,10 @@
<div class="accordion" style="margin-bottom: 0">
<div class="accordion-group">
<div class="accordion-heading">
<a class="accordion-toggle " data-toggle="collapse" data-target="#namespace-1037350861"></a>
<a class="accordion-toggle " data-toggle="collapse" data-target="#namespace-979740190"></a>
<a href="../namespaces/default.html" style="margin-left: 30px; padding-left: 0">\</a>
</div>
<div id="namespace-1037350861" class="accordion-body collapse in">
<div id="namespace-979740190" class="accordion-body collapse in">
<div class="accordion-inner">
@ -239,7 +239,7 @@
<section class="span10 offset1">
<hr />
Documentation is powered by <a href="http://www.phpdoc.org/">phpDocumentor </a> and authored
on March 27th, 2018 at 15:57.
on April 22nd, 2018 at 14:53.
</section>
</section>
</section>

View File

@ -0,0 +1,250 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0"/>
<meta charset="utf-8"/>
<title>Pepperminty Wiki Module API</title>
<meta name="author" content=""/>
<meta name="description" content=""/>
<link href="../css/bootstrap-combined.no-icons.min.css" rel="stylesheet">
<link href="../css/font-awesome.min.css" rel="stylesheet">
<link href="../css/prism.css" rel="stylesheet" media="all"/>
<link href="../css/template.css" rel="stylesheet" media="all"/>
<!--[if lt IE 9]>
<script src="../js/html5.js"></script>
<![endif]-->
<script src="../js/jquery-1.11.0.min.js"></script>
<script src="../js/ui/1.10.4/jquery-ui.min.js"></script>
<script src="../js/bootstrap.min.js"></script>
<script src="../js/jquery.smooth-scroll.js"></script>
<script src="../js/prism.min.js"></script>
<!-- TODO: Add http://jscrollpane.kelvinluck.com/ to style the scrollbars for browsers not using webkit-->
<script type="text/javascript">
function loadExternalCodeSnippets() {
Array.prototype.slice.call(document.querySelectorAll('pre[data-src]')).forEach(function (pre) {
var src = pre.getAttribute('data-src');
var extension = (src.match(/\.(\w+)$/) || [, ''])[1];
var language = 'php';
var code = document.createElement('code');
code.className = 'language-' + language;
pre.textContent = '';
code.textContent = 'Loading…';
pre.appendChild(code);
var xhr = new XMLHttpRequest();
xhr.open('GET', src, true);
xhr.onreadystatechange = function () {
if (xhr.readyState == 4) {
if (xhr.status < 400 && xhr.responseText) {
code.textContent = xhr.responseText;
Prism.highlightElement(code);
}
else if (xhr.status >= 400) {
code.textContent = '✖ Error ' + xhr.status + ' while fetching file: ' + xhr.statusText;
}
else {
code.textContent = '✖ Error: File does not exist or is empty';
}
}
};
xhr.send(null);
});
}
$(document).ready(function(){
loadExternalCodeSnippets();
});
$('#source-view').on('shown', function () {
loadExternalCodeSnippets();
})
</script>
<link rel="shortcut icon" href="../images/favicon.ico"/>
<link rel="apple-touch-icon" href="../images/apple-touch-icon.png"/>
<link rel="apple-touch-icon" sizes="72x72" href="../images/apple-touch-icon-72x72.png"/>
<link rel="apple-touch-icon" sizes="114x114" href="../images/apple-touch-icon-114x114.png"/>
</head>
<body>
<div class="navbar navbar-fixed-top">
<div class="navbar-inner">
<div class="container">
<a class="btn btn-navbar" data-toggle="collapse" data-target=".nav-collapse">
<i class="icon-ellipsis-vertical"></i>
</a>
<a class="brand" href="../index.html">Pepperminty Wiki Module API</a>
<div class="nav-collapse">
<ul class="nav pull-right">
<li class="dropdown" id="charts-menu">
<a href="#" class="dropdown-toggle" data-toggle="dropdown">
Charts <b class="caret"></b>
</a>
<ul class="dropdown-menu">
<li>
<a href="../graphs/class.html">
<i class="icon-list-alt"></i>&#160;Class hierarchy diagram
</a>
</li>
</ul>
</li>
<li class="dropdown" id="reports-menu">
<a href="#" class="dropdown-toggle" data-toggle="dropdown">
Reports <b class="caret"></b>
</a>
<ul class="dropdown-menu">
<li>
<a href="../reports/errors.html">
<i class="icon-list-alt"></i>&#160;Errors <span class="label label-info pull-right">45</span>
</a>
</li>
<li>
<a href="../reports/markers.html">
<i class="icon-list-alt"></i>&#160;Markers <span class="label label-info pull-right">6</span>
</a>
</li>
<li>
<a href="../reports/deprecated.html">
<i class="icon-list-alt"></i>&#160;Deprecated <span class="label label-info pull-right">0</span>
</a>
</li>
</ul>
</li>
</ul>
</div>
</div>
</div>
<!--<div class="go_to_top">-->
<!--<a href="#___" style="color: inherit">Back to top&#160;&#160;<i class="icon-upload icon-white"></i></a>-->
<!--</div>-->
</div>
<div id="___" class="container-fluid">
<section class="row-fluid">
<div class="span2 sidebar">
<div class="accordion" style="margin-bottom: 0">
<div class="accordion-group">
<div class="accordion-heading">
<a class="accordion-toggle " data-toggle="collapse" data-target="#namespace-2040620667"></a>
<a href="../namespaces/default.html" style="margin-left: 30px; padding-left: 0">\</a>
</div>
<div id="namespace-2040620667" class="accordion-body collapse in">
<div class="accordion-inner">
<ul>
<li class="class"><a href="../classes/ids.html">ids</a></li>
<li class="class"><a href="../classes/page_renderer.html">page_renderer</a></li>
<li class="class"><a href="../classes/PeppermintParsedown.html">PeppermintParsedown</a></li>
<li class="class"><a href="../classes/search.html">search</a></li>
<li class="class"><a href="../classes/Slimdown.html">Slimdown</a></li>
</ul>
</div>
</div>
</div>
</div>
</div>
</section>
<section class="row-fluid">
<div class="span10 offset2">
<div class="row-fluid">
<div class="span8 content file">
<nav>
</nav>
<a href="#source-view" role="button" class="pull-right btn" data-toggle="modal"><i class="icon-code"></i></a>
<h1><small></small>peppermint-config-info.php</h1>
<p><em></em></p>
</div>
<aside class="span4 detailsbar">
<dl>
<dt>Package</dt>
<dd><div class="namespace-wrapper">\Default</div></dd>
</dl>
<h2>Tags</h2>
<table class="table table-condensed">
<tr><td colspan="2"><em>None found</em></td></tr>
</table>
</aside>
</div>
</div>
</section>
<div id="source-view" class="modal hide fade" tabindex="-1" role="dialog" aria-labelledby="source-view-label" aria-hidden="true">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal" aria-hidden="true">×</button>
<h3 id="source-view-label"></h3>
</div>
<div class="modal-body">
<pre data-src="../files/peppermint-config-info.php.txt" class="language-php line-numbers"></pre>
</div>
</div>
<footer class="row-fluid">
<section class="span10 offset2">
<section class="row-fluid">
<section class="span10 offset1">
<section class="row-fluid footer-sections">
<section class="span4">
<h1><i class="icon-code"></i></h1>
<div>
<ul>
</ul>
</div>
</section>
<section class="span4">
<h1><i class="icon-bar-chart"></i></h1>
<div>
<ul>
<li><a href="../graphs/class.html">Class Hierarchy Diagram</a></li>
</ul>
</div>
</section>
<section class="span4">
<h1><i class="icon-pushpin"></i></h1>
<div>
<ul>
<li><a href="../reports/errors.html">Errors</a></li>
<li><a href="../reports/markers.html">Markers</a></li>
</ul>
</div>
</section>
</section>
</section>
</section>
<section class="row-fluid">
<section class="span10 offset1">
<hr />
Documentation is powered by <a href="http://www.phpdoc.org/">phpDocumentor </a> and authored
on April 22nd, 2018 at 14:53.
</section>
</section>
</section>
</footer>
</div>
</body>
</html>

View File

@ -0,0 +1,121 @@
<!DOCTYPE html>
<html>
<head>
<meta charset='utf-8' />
<title>peppermint.json configuration guide</title>
</head>
<body>
<h1><img src="https://starbeamrainbowlabs.com/images/logos/peppermint.png" class="logo" /> <code>peppermint.json</code> Configuration Guide</h1>
<p>This page contains a comprehensive guide to all the settings present in <code>peppermint.json</code>. If anything's missing or unclear, please <a href="https://github.com/sbrl/Pepperminty-Wiki/issues/new">open an issue</a>!</p>
<p><strong>Current Pepperminty Wiki Version: <?php echo(trim(file_get_contents("version"))); ?></strong></p>
<p><small><em>Note that settings added after the last stable release may not be shown on <a href='https://starbeamrainbowlabs.com/labs/peppermint/peppermint-config-info.php'>the version on starbeamrainbowlabs.com</a> until the next release.</em></small></p>
<h2>Type Legend</h2>
<table>
<tr>
<th>Type</th>
<th>Meaning</th>
</tr>
<tr>
<td><code>text</code></td>
<td>A string of text, which may or may or may not allow HTML. Consult individual descriptions for more specific information.</td>
</tr>
<tr>
<td><code>textarea</code></td>
<td>A longer string of text that may or may not allow HTML.</td>
</tr>
<tr>
<td><code>array</code></td>
<td>An array of strings.</td>
</tr>
<tr>
<td><code>url</code></td>
<td>A url to a remote resource.</td>
</tr>
<tr>
<td><code>checkbox</code></td>
<td>A boolean value - i.e. either <code>true</code> or <code>false</code>.</td>
</tr>
<tr>
<td><code>email</code></td>
<td>An email address.</td>
</tr>
<tr>
<td><code>number</code></td>
<td>A numerical value that may or may not be floating-point.</td>
</tr>
<tr>
<td><code>usertable</code></td>
<td>An object that contains the users' usernames and passwords.</td>
</tr>
<tr>
<td><code>nav</code></td>
<td>A complex array of items that should appear as a navigation bar. Consult the description for <a href='#config_nav_links'><code>nav_links</code></a> for more information.</td>
</tr>
<tr>
<td><code>map</code></td>
<td>An object that maps a set of values onto another set of values.</td>
</tr>
</table>
<hr />
<h2>Configuration Guide</h2>
<table class="main">
<colgroup>
<col span="1" style="width: 20%;" />
<col span="1" style="width: 7%;" />
<col span="1" style="width: 43%;" />
<col span="1" style="width: 30%;" />
</colgroup>
<thead>
<tr>
<th>Key</th>
<th>Type</th>
<th>Description</th>
<th>Default Value</th>
</tr>
</thead>
<tbody>
<?php
$config = json_decode(file_get_contents("peppermint.guiconfig.json"));
foreach($config as $config_key => $config_info) {
echo("<tr id='config_$config_key'>");
echo("<td><code>$config_key</code></td>");
echo("<td><code>$config_info->type</code></td>");
echo("<td>$config_info->description</td>");
echo("<td><pre><code>" . json_encode($config_info->default, true) . "</code></pre></td>");
echo("</tr>\n");
}
?>
</tbody>
</table>
<!---------------->
<link rel="stylesheet" href="//starbeamrainbowlabs.com/theme/basic.css" />
<style>
body { padding: 1rem; color: #442772; background-colour: #eee8f2; } /* syntaxtic gets confused sometimes */
h1 { text-align: center; }
h2 { margin-top: 2em; }
hr { margin: 3em 0; }
table.main { width: 100%; table-layout: fixed; border-collapse: collapse; }
tr:nth-child(even), thead
{ background: rgba(68, 39, 113, 0.25); }
pre { white-space: pre-wrap; word-wrap: break-word; }
a { color: #9e7eb4; }
.largebutton { font-size: 2rem; }
.logo { max-width: 1.25em; vertical-align: middle; }
</style>
</body>
</html>

View File

@ -106,12 +106,12 @@
<ul class="dropdown-menu">
<li>
<a href="../reports/errors.html">
<i class="icon-list-alt"></i>&#160;Errors <span class="label label-info pull-right">44</span>
<i class="icon-list-alt"></i>&#160;Errors <span class="label label-info pull-right">45</span>
</a>
</li>
<li>
<a href="../reports/markers.html">
<i class="icon-list-alt"></i>&#160;Markers <span class="label label-info pull-right">6</span>
<i class="icon-list-alt"></i>&#160;Markers <span class="label label-info pull-right">6</span>
</a>
</li>
<li>
@ -136,10 +136,10 @@
<div class="accordion" style="margin-bottom: 0">
<div class="accordion-group">
<div class="accordion-heading">
<a class="accordion-toggle " data-toggle="collapse" data-target="#namespace-1317610252"></a>
<a class="accordion-toggle " data-toggle="collapse" data-target="#namespace-1315444457"></a>
<a href="../namespaces/default.html" style="margin-left: 30px; padding-left: 0">\</a>
</div>
<div id="namespace-1317610252" class="accordion-body collapse in">
<div id="namespace-1315444457" class="accordion-body collapse in">
<div class="accordion-inner">
@ -239,7 +239,7 @@
<section class="span10 offset1">
<hr />
Documentation is powered by <a href="http://www.phpdoc.org/">phpDocumentor </a> and authored
on March 27th, 2018 at 15:57.
on April 22nd, 2018 at 14:53.
</section>
</section>
</section>

View File

@ -83,12 +83,12 @@
<ul class="dropdown-menu">
<li>
<a href="../reports/errors.html">
<i class="icon-list-alt"></i>&#160;Errors <span class="label label-info pull-right">44</span>
<i class="icon-list-alt"></i>&#160;Errors <span class="label label-info pull-right">45</span>
</a>
</li>
<li>
<a href="../reports/markers.html">
<i class="icon-list-alt"></i>&#160;Markers <span class="label label-info pull-right">6</span>
<i class="icon-list-alt"></i>&#160;Markers <span class="label label-info pull-right">6</span>
</a>
</li>
<li>
@ -152,7 +152,7 @@
<section class="span10 offset1">
<hr />
Documentation is powered by <a href="http://www.phpdoc.org/">phpDocumentor </a> and authored
on March 27th, 2018 at 15:57.
on April 22nd, 2018 at 14:53.
</section>
</section>
</section>

View File

@ -58,12 +58,12 @@
<ul class="dropdown-menu">
<li>
<a href="reports/errors.html">
<i class="icon-list-alt"></i>&#160;Errors <span class="label label-info pull-right">44</span>
<i class="icon-list-alt"></i>&#160;Errors <span class="label label-info pull-right">45</span>
</a>
</li>
<li>
<a href="reports/markers.html">
<i class="icon-list-alt"></i>&#160;Markers <span class="label label-info pull-right">6</span>
<i class="icon-list-alt"></i>&#160;Markers <span class="label label-info pull-right">6</span>
</a>
</li>
<li>
@ -88,10 +88,10 @@
<div class="accordion" style="margin-bottom: 0">
<div class="accordion-group">
<div class="accordion-heading">
<a class="accordion-toggle " data-toggle="collapse" data-target="#namespace-1616927494"></a>
<a class="accordion-toggle " data-toggle="collapse" data-target="#namespace-1824445131"></a>
<a href="namespaces/default.html" style="margin-left: 30px; padding-left: 0">\</a>
</div>
<div id="namespace-1616927494" class="accordion-body collapse in">
<div id="namespace-1824445131" class="accordion-body collapse in">
<div class="accordion-inner">
@ -166,60 +166,6 @@
<div class="row-fluid">
<div class="span8 content class">
<a id="method_accept_contains_mime" name="method_accept_contains_mime" class="anchor"></a>
<article class="method">
<h3 class=" ">accept_contains_mime()</h3>
<a href="#source-view" role="button" class="pull-right btn" data-toggle="modal" style="font-size: 1.1em; padding: 9px 14px"><i class="icon-code"></i></a>
<pre class="signature" style="margin-right: 54px;">accept_contains_mime(string <span class="argument">$accept_header</span>, string <span class="argument">$mime_type</span>) : boolean</pre>
<p><em>Figures out whether a given http accepts header contains a
specified mime type.</em></p>
<h4>Parameters</h4>
<table class="table table-condensed table-hover">
<tr>
<td>string</td>
<td>$accept_header </td>
<td><p>The accept header to search.</p></td>
</tr>
<tr>
<td>string</td>
<td>$mime_type </td>
<td><p>The mime type to search for.</p></td>
</tr>
</table>
<h4>Returns</h4>
boolean
&mdash; <p>Whether the specified mime type was found
in the specified accepts header.</p>
</article>
</div>
<aside class="span4 detailsbar">
<h1><i class="icon-arrow-down"></i></h1>
<dl>
<dt>File</dt>
<dd><a href=""><div class="path-wrapper"></div></a></dd>
</dl>
<h2>Tags</h2>
<table class="table table-condensed">
<tr>
<th>
package
</th>
<td>
<p>core</p>
<p>core</p>
</td>
</tr>
</table>
</aside>
</div>
<div class="row-fluid">
<div class="span8 content class">
<a id="method_add_action" name="method_add_action" class="anchor"></a>
<article class="method">
<h3 class=" ">add_action()</h3>
@ -3515,7 +3461,7 @@ listed to be cacnonical.</em></p>
<section class="span10 offset1">
<hr />
Documentation is powered by <a href="http://www.phpdoc.org/">phpDocumentor </a> and authored
on March 27th, 2018 at 15:57.
on April 22nd, 2018 at 14:53.
</section>
</section>
</section>

View File

@ -58,12 +58,12 @@
<ul class="dropdown-menu">
<li>
<a href="../reports/errors.html">
<i class="icon-list-alt"></i>&#160;Errors <span class="label label-info pull-right">44</span>
<i class="icon-list-alt"></i>&#160;Errors <span class="label label-info pull-right">45</span>
</a>
</li>
<li>
<a href="../reports/markers.html">
<i class="icon-list-alt"></i>&#160;Markers <span class="label label-info pull-right">6</span>
<i class="icon-list-alt"></i>&#160;Markers <span class="label label-info pull-right">6</span>
</a>
</li>
<li>
@ -88,10 +88,10 @@
<div class="accordion" style="margin-bottom: 0">
<div class="accordion-group">
<div class="accordion-heading">
<a class="accordion-toggle " data-toggle="collapse" data-target="#namespace-1392434946"></a>
<a class="accordion-toggle " data-toggle="collapse" data-target="#namespace-1772966249"></a>
<a href="../namespaces/default.html" style="margin-left: 30px; padding-left: 0">\</a>
</div>
<div id="namespace-1392434946" class="accordion-body collapse in">
<div id="namespace-1772966249" class="accordion-body collapse in">
<div class="accordion-inner">
@ -166,60 +166,6 @@
<div class="row-fluid">
<div class="span8 content class">
<a id="method_accept_contains_mime" name="method_accept_contains_mime" class="anchor"></a>
<article class="method">
<h3 class=" ">accept_contains_mime()</h3>
<a href="#source-view" role="button" class="pull-right btn" data-toggle="modal" style="font-size: 1.1em; padding: 9px 14px"><i class="icon-code"></i></a>
<pre class="signature" style="margin-right: 54px;">accept_contains_mime(string <span class="argument">$accept_header</span>, string <span class="argument">$mime_type</span>) : boolean</pre>
<p><em>Figures out whether a given http accepts header contains a
specified mime type.</em></p>
<h4>Parameters</h4>
<table class="table table-condensed table-hover">
<tr>
<td>string</td>
<td>$accept_header </td>
<td><p>The accept header to search.</p></td>
</tr>
<tr>
<td>string</td>
<td>$mime_type </td>
<td><p>The mime type to search for.</p></td>
</tr>
</table>
<h4>Returns</h4>
boolean
&mdash; <p>Whether the specified mime type was found
in the specified accepts header.</p>
</article>
</div>
<aside class="span4 detailsbar">
<h1><i class="icon-arrow-down"></i></h1>
<dl>
<dt>File</dt>
<dd><a href=""><div class="path-wrapper"></div></a></dd>
</dl>
<h2>Tags</h2>
<table class="table table-condensed">
<tr>
<th>
package
</th>
<td>
<p>core</p>
<p>core</p>
</td>
</tr>
</table>
</aside>
</div>
<div class="row-fluid">
<div class="span8 content class">
<a id="method_add_action" name="method_add_action" class="anchor"></a>
<article class="method">
<h3 class=" ">add_action()</h3>
@ -3515,7 +3461,7 @@ listed to be cacnonical.</em></p>
<section class="span10 offset1">
<hr />
Documentation is powered by <a href="http://www.phpdoc.org/">phpDocumentor </a> and authored
on March 27th, 2018 at 15:57.
on April 22nd, 2018 at 14:53.
</section>
</section>
</section>

View File

@ -59,12 +59,12 @@
<ul class="dropdown-menu">
<li>
<a href="../reports/errors.html">
<i class="icon-list-alt"></i>&#160;Errors <span class="label label-info pull-right">44</span>
<i class="icon-list-alt"></i>&#160;Errors <span class="label label-info pull-right">45</span>
</a>
</li>
<li>
<a href="../reports/markers.html">
<i class="icon-list-alt"></i>&#160;Markers <span class="label label-info pull-right">6</span>
<i class="icon-list-alt"></i>&#160;Markers <span class="label label-info pull-right">6</span>
</a>
</li>
<li>
@ -142,7 +142,7 @@
<section class="span10 offset1">
<hr />
Documentation is powered by <a href="http://www.phpdoc.org/">phpDocumentor </a> and authored
on March 27th, 2018 at 15:57.
on April 22nd, 2018 at 14:53.
</section>
</section>
</section>

View File

@ -59,12 +59,12 @@
<ul class="dropdown-menu">
<li>
<a href="../reports/errors.html">
<i class="icon-list-alt"></i>&#160;Errors <span class="label label-info pull-right">44</span>
<i class="icon-list-alt"></i>&#160;Errors <span class="label label-info pull-right">45</span>
</a>
</li>
<li>
<a href="../reports/markers.html">
<i class="icon-list-alt"></i>&#160;Markers <span class="label label-info pull-right">6</span>
<i class="icon-list-alt"></i>&#160;Markers <span class="label label-info pull-right">6</span>
</a>
</li>
<li>
@ -89,7 +89,8 @@
<ul class="side-nav nav nav-list">
<li class="nav-header">Navigation</li>
<li><a href="#modules/feature-recent-changes.php"><i class="icon-file"></i> modules/feature-recent-changes.php</a></li>
<li><a href="#peppermint-config-info.php"><i class="icon-file"></i> peppermint-config-info.php</a></li>
<li><a href="#modules/feature-recent-changes.php"><i class="icon-file"></i> modules/feature-recent-changes.php</a></li>
<li><a href="#modules/page-login.php"><i class="icon-file"></i> modules/page-login.php</a></li>
<li><a href="#modules/action-hash.php"><i class="icon-file"></i> modules/action-hash.php</a></li>
<li><a href="#modules/page-help.php"><i class="icon-file"></i> modules/page-help.php</a></li>
@ -132,6 +133,32 @@
</ul>
<div class="package-contents">
<a name="peppermint-config-info.php" id="peppermint-config-info.php"></a>
<h3>
<i class="icon-file"></i>
peppermint-config-info.php
<small style="float: right;padding-right: 10px;">1</small>
</h3>
<div>
<table class="table markers table-bordered">
<thead>
<tr>
<th>Type</th>
<th>Line</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td>error</td>
<td>0</td>
<td>No summary was found for this file</td>
</tr>
</tbody>
</table>
</div>
</div>
<div class="package-contents">
<a name="modules/feature-recent-changes.php" id="modules/feature-recent-changes.php"></a>
<h3>
@ -1086,7 +1113,7 @@
<section class="span10 offset1">
<hr />
Documentation is powered by <a href="http://www.phpdoc.org/">phpDocumentor </a> and authored
on March 27th, 2018 at 15:57.
on April 22nd, 2018 at 14:53.
</section>
</section>
</section>

View File

@ -59,12 +59,12 @@
<ul class="dropdown-menu">
<li>
<a href="../reports/errors.html">
<i class="icon-list-alt"></i>&#160;Errors <span class="label label-info pull-right">44</span>
<i class="icon-list-alt"></i>&#160;Errors <span class="label label-info pull-right">45</span>
</a>
</li>
<li>
<a href="../reports/markers.html">
<i class="icon-list-alt"></i>&#160;Markers <span class="label label-info pull-right">6</span>
<i class="icon-list-alt"></i>&#160;Markers <span class="label label-info pull-right">6</span>
</a>
</li>
<li>
@ -88,7 +88,7 @@
<div class="span2 sidebar">
<ul class="side-nav nav nav-list">
<li class="nav-header">Navigation</li>
<li><a href="#core.php"><i class="icon-file"></i> core.php</a></li>
<li><a href="#core.php"><i class="icon-file"></i> core.php</a></li>
<li><a href="#modules/page-edit.php"><i class="icon-file"></i> modules/page-edit.php</a></li>
<li><a href="#modules/feature-upload.php"><i class="icon-file"></i> modules/feature-upload.php</a></li>
<li><a href="#modules/feature-history.php"><i class="icon-file"></i> modules/feature-history.php</a></li>
@ -105,7 +105,7 @@
<div id="marker-accordion">
<div class="package-contents">
<div class="package-contents">
<a name="core.php" id="core.php"></a>
<h3>
<i class="icon-file"></i>
@ -126,7 +126,7 @@
</tr>
<tr>
<td>TODO</td>
<td>652</td>
<td>629</td>
<td>Identify which platforms don&#039;t have it and whether we still need this</td>
</tr>
</table>
@ -148,7 +148,7 @@
</tr>
<tr>
<td>TODO</td>
<td>428</td>
<td>488</td>
<td>Add an option to record the user&#039;s IP here instead </td>
</tr>
</table>
@ -260,7 +260,7 @@
<section class="span10 offset1">
<hr />
Documentation is powered by <a href="http://www.phpdoc.org/">phpDocumentor </a> and authored
on March 27th, 2018 at 15:57.
on April 22nd, 2018 at 14:53.
</section>
</section>
</section>

View File

@ -26,7 +26,7 @@ define({ "api": [
"group": "Parameter",
"type": "string",
"optional": false,
"field": "password",
"field": "pass",
"description": "<p>The password to login with.</p>"
},
{
@ -210,6 +210,189 @@ define({ "api": [
"filename": "./modules/feature-comments.php",
"groupTitle": "Comment"
},
{
"type": "post",
"url": "?action=comments-fetch&page={page_name}",
"title": "Fetch the comments for a page",
"name": "CommentsFetch",
"group": "Comment",
"permission": [
{
"name": "Anonymous",
"title": "Anybody may use this call.",
"description": ""
}
],
"description": "<p>Fetches the comments for the specified page. Returns them in a nested JSON structure.</p>",
"error": {
"fields": {
"Error 4xx": [
{
"group": "Error 4xx",
"optional": false,
"field": "PageNoteFound",
"description": "<p>The page to fetch the comments for was not found.</p>"
}
]
}
},
"version": "0.0.0",
"filename": "./modules/feature-comments.php",
"groupTitle": "Comment",
"parameter": {
"fields": {
"Parameter": [
{
"group": "Parameter",
"type": "string",
"optional": false,
"field": "page",
"description": "<p>The page to operate on.</p>"
}
]
}
}
},
{
"type": "post",
"url": "?action=acquire-edit-key&page={pageName}",
"title": "Acquire an edit key for a page",
"description": "<p>Returns an edit key that can be used to programmatically save an edit to a page. It does <em>not</em> necessarily mean that such an edit will be saved. For example, editing might be disabled, or you might not have permission to save an edit on a particular page.</p>",
"name": "AcquireEditKey",
"group": "Editing",
"permission": [
{
"name": "Anonymous",
"title": "Anybody may use this call.",
"description": ""
}
],
"version": "0.0.0",
"filename": "./modules/page-edit.php",
"groupTitle": "Editing",
"parameter": {
"fields": {
"Parameter": [
{
"group": "Parameter",
"type": "string",
"optional": false,
"field": "page",
"description": "<p>The page to operate on.</p>"
}
]
}
}
},
{
"type": "get",
"url": "?action=edit&page={pageName}[&newpage=yes]",
"title": "Get an editing page",
"description": "<p>Gets an editing page for a given page. If you don't have permission to edit the page in question, a view source pagee is returned instead.</p>",
"name": "EditPage",
"group": "Editing",
"permission": [
{
"name": "Anonymous",
"title": "Anybody may use this call.",
"description": ""
}
],
"parameter": {
"fields": {
"Parameter": [
{
"group": "Parameter",
"type": "string",
"optional": false,
"field": "newpage",
"description": "<p>Set to 'yes' if a new page is being created. Only affects a few bits of text here and there, and the HTTP response code recieved on success from the <code>save</code> action.</p>"
},
{
"group": "Parameter",
"type": "string",
"optional": false,
"field": "page",
"description": "<p>The page to operate on.</p>"
}
]
}
},
"version": "0.0.0",
"filename": "./modules/page-edit.php",
"groupTitle": "Editing"
},
{
"type": "post",
"url": "?action=save&page={pageName}",
"title": "Save an edit to a page.",
"description": "<p>Saves an edit to a page. If an edit conflict is encountered, then a conflict resolution page is returned instead.</p>",
"name": "EditPage",
"group": "Editing",
"permission": [
{
"name": "Anonymous",
"title": "Anybody may use this call.",
"description": ""
}
],
"parameter": {
"fields": {
"Parameter": [
{
"group": "Parameter",
"type": "string",
"optional": false,
"field": "newpage",
"description": "<p>GET only. Set to 'yes' to indicate that this is a new page that is being saved. Only affects the HTTP response code you recieve upon success.</p>"
},
{
"group": "Parameter",
"type": "string",
"optional": false,
"field": "content",
"description": "<p>POST only. The new content to save to the given filename.</p>"
},
{
"group": "Parameter",
"type": "string",
"optional": false,
"field": "tags",
"description": "<p>POST only. A comma-separated list of tags to assign to the current page. Will replace the existing list of tags, if any are present.</p>"
},
{
"group": "Parameter",
"type": "string",
"optional": false,
"field": "prev-content-hash",
"description": "<p>POST only. The hash of the original content before editing. If this hash is found to be different to a hash computed of the currentl saved content, a conflict resolution page will be returned instead of saving the provided content.</p>"
},
{
"group": "Parameter",
"type": "string",
"optional": false,
"field": "page",
"description": "<p>The page to operate on.</p>"
}
]
}
},
"error": {
"fields": {
"Error 4xx": [
{
"group": "Error 4xx",
"optional": false,
"field": "UnsufficientPermissionError",
"description": "<p>You don't currently have sufficient permissions to save an edit.</p>"
}
]
}
},
"version": "0.0.0",
"filename": "./modules/page-edit.php",
"groupTitle": "Editing"
},
{
"type": "post",
"url": "?action=preview-edit&page={pageName}[&newpage=yes]",
@ -311,115 +494,6 @@ define({ "api": [
"filename": "./modules/page-delete.php",
"groupTitle": "Page"
},
{
"type": "post",
"url": "?action=save&page={pageName}",
"title": "Save an edit to a page.",
"description": "<p>Saves an edit to a page. If an edit conflict is encountered, then a conflict resolution page is returned instead.</p>",
"name": "EditPage",
"group": "Page",
"permission": [
{
"name": "Anonymous",
"title": "Anybody may use this call.",
"description": ""
}
],
"parameter": {
"fields": {
"Parameter": [
{
"group": "Parameter",
"type": "string",
"optional": false,
"field": "newpage",
"description": "<p>GET only. Set to 'yes' to indicate that this is a new page that is being saved. Only affects the HTTP response code you recieve upon success.</p>"
},
{
"group": "Parameter",
"type": "string",
"optional": false,
"field": "content",
"description": "<p>POST only. The new content to save to the given filename.</p>"
},
{
"group": "Parameter",
"type": "string",
"optional": false,
"field": "tags",
"description": "<p>POST only. A comma-separated list of tags to assign to the current page. Will replace the existing list of tags, if any are present.</p>"
},
{
"group": "Parameter",
"type": "string",
"optional": false,
"field": "prev-content-hash",
"description": "<p>POST only. The hash of the original content before editing. If this hash is found to be different to a hash computed of the currentl saved content, a conflict resolution page will be returned instead of saving the provided content.</p>"
},
{
"group": "Parameter",
"type": "string",
"optional": false,
"field": "page",
"description": "<p>The page to operate on.</p>"
}
]
}
},
"error": {
"fields": {
"Error 4xx": [
{
"group": "Error 4xx",
"optional": false,
"field": "UnsufficientPermissionError",
"description": "<p>You don't currently have sufficient permissions to save an edit.</p>"
}
]
}
},
"version": "0.0.0",
"filename": "./modules/page-edit.php",
"groupTitle": "Page"
},
{
"type": "get",
"url": "?action=edit&page={pageName}[&newpage=yes]",
"title": "Get an editing page",
"description": "<p>Gets an editing page for a given page. If you don't have permission to edit the page in question, a view source pagee is returned instead.</p>",
"name": "EditPage",
"group": "Page",
"permission": [
{
"name": "Anonymous",
"title": "Anybody may use this call.",
"description": ""
}
],
"parameter": {
"fields": {
"Parameter": [
{
"group": "Parameter",
"type": "string",
"optional": false,
"field": "newpage",
"description": "<p>Set to 'yes' if a new page is being created. Only affects a few bits of text here and there, and the HTTP response code recieved on success from the <code>save</code> action.</p>"
},
{
"group": "Parameter",
"type": "string",
"optional": false,
"field": "page",
"description": "<p>The page to operate on.</p>"
}
]
}
},
"version": "0.0.0",
"filename": "./modules/page-edit.php",
"groupTitle": "Page"
},
{
"type": "get",
"url": "?action=history&page={pageName}[&format={format}]",
@ -999,7 +1073,7 @@ define({ "api": [
},
{
"type": "get",
"url": "?action=recentchanges",
"url": "?action=recent-changes[&format={code}]",
"title": "Get a list of recent changes",
"name": "RecentChanges",
"group": "Stats",
@ -1010,13 +1084,26 @@ define({ "api": [
"description": ""
}
],
"parameter": {
"fields": {
"Parameter": [
{
"group": "Parameter",
"type": "string",
"optional": false,
"field": "format",
"description": "<p>The format to return the recent changes in. Values: html, json. Default: html.</p>"
}
]
}
},
"version": "0.0.0",
"filename": "./modules/feature-recent-changes.php",
"groupTitle": "Stats"
},
{
"type": "get",
"url": "?action=status",
"url": "?action=status[&minified=type]",
"title": "Get the json-formatted status of this wiki",
"name": "Status",
"group": "Stats",
@ -1027,6 +1114,19 @@ define({ "api": [
"description": ""
}
],
"parameter": {
"fields": {
"Parameter": [
{
"group": "Parameter",
"type": "boolean",
"optional": false,
"field": "Whether",
"description": "<p>or not the result should be minified JSON. Default: false</p>"
}
]
}
},
"version": "0.0.0",
"filename": "./modules/api-status.php",
"groupTitle": "Stats"

View File

@ -26,7 +26,7 @@
"group": "Parameter",
"type": "string",
"optional": false,
"field": "password",
"field": "pass",
"description": "<p>The password to login with.</p>"
},
{
@ -210,6 +210,189 @@
"filename": "./modules/feature-comments.php",
"groupTitle": "Comment"
},
{
"type": "post",
"url": "?action=comments-fetch&page={page_name}",
"title": "Fetch the comments for a page",
"name": "CommentsFetch",
"group": "Comment",
"permission": [
{
"name": "Anonymous",
"title": "Anybody may use this call.",
"description": ""
}
],
"description": "<p>Fetches the comments for the specified page. Returns them in a nested JSON structure.</p>",
"error": {
"fields": {
"Error 4xx": [
{
"group": "Error 4xx",
"optional": false,
"field": "PageNoteFound",
"description": "<p>The page to fetch the comments for was not found.</p>"
}
]
}
},
"version": "0.0.0",
"filename": "./modules/feature-comments.php",
"groupTitle": "Comment",
"parameter": {
"fields": {
"Parameter": [
{
"group": "Parameter",
"type": "string",
"optional": false,
"field": "page",
"description": "<p>The page to operate on.</p>"
}
]
}
}
},
{
"type": "post",
"url": "?action=acquire-edit-key&page={pageName}",
"title": "Acquire an edit key for a page",
"description": "<p>Returns an edit key that can be used to programmatically save an edit to a page. It does <em>not</em> necessarily mean that such an edit will be saved. For example, editing might be disabled, or you might not have permission to save an edit on a particular page.</p>",
"name": "AcquireEditKey",
"group": "Editing",
"permission": [
{
"name": "Anonymous",
"title": "Anybody may use this call.",
"description": ""
}
],
"version": "0.0.0",
"filename": "./modules/page-edit.php",
"groupTitle": "Editing",
"parameter": {
"fields": {
"Parameter": [
{
"group": "Parameter",
"type": "string",
"optional": false,
"field": "page",
"description": "<p>The page to operate on.</p>"
}
]
}
}
},
{
"type": "get",
"url": "?action=edit&page={pageName}[&newpage=yes]",
"title": "Get an editing page",
"description": "<p>Gets an editing page for a given page. If you don't have permission to edit the page in question, a view source pagee is returned instead.</p>",
"name": "EditPage",
"group": "Editing",
"permission": [
{
"name": "Anonymous",
"title": "Anybody may use this call.",
"description": ""
}
],
"parameter": {
"fields": {
"Parameter": [
{
"group": "Parameter",
"type": "string",
"optional": false,
"field": "newpage",
"description": "<p>Set to 'yes' if a new page is being created. Only affects a few bits of text here and there, and the HTTP response code recieved on success from the <code>save</code> action.</p>"
},
{
"group": "Parameter",
"type": "string",
"optional": false,
"field": "page",
"description": "<p>The page to operate on.</p>"
}
]
}
},
"version": "0.0.0",
"filename": "./modules/page-edit.php",
"groupTitle": "Editing"
},
{
"type": "post",
"url": "?action=save&page={pageName}",
"title": "Save an edit to a page.",
"description": "<p>Saves an edit to a page. If an edit conflict is encountered, then a conflict resolution page is returned instead.</p>",
"name": "EditPage",
"group": "Editing",
"permission": [
{
"name": "Anonymous",
"title": "Anybody may use this call.",
"description": ""
}
],
"parameter": {
"fields": {
"Parameter": [
{
"group": "Parameter",
"type": "string",
"optional": false,
"field": "newpage",
"description": "<p>GET only. Set to 'yes' to indicate that this is a new page that is being saved. Only affects the HTTP response code you recieve upon success.</p>"
},
{
"group": "Parameter",
"type": "string",
"optional": false,
"field": "content",
"description": "<p>POST only. The new content to save to the given filename.</p>"
},
{
"group": "Parameter",
"type": "string",
"optional": false,
"field": "tags",
"description": "<p>POST only. A comma-separated list of tags to assign to the current page. Will replace the existing list of tags, if any are present.</p>"
},
{
"group": "Parameter",
"type": "string",
"optional": false,
"field": "prev-content-hash",
"description": "<p>POST only. The hash of the original content before editing. If this hash is found to be different to a hash computed of the currentl saved content, a conflict resolution page will be returned instead of saving the provided content.</p>"
},
{
"group": "Parameter",
"type": "string",
"optional": false,
"field": "page",
"description": "<p>The page to operate on.</p>"
}
]
}
},
"error": {
"fields": {
"Error 4xx": [
{
"group": "Error 4xx",
"optional": false,
"field": "UnsufficientPermissionError",
"description": "<p>You don't currently have sufficient permissions to save an edit.</p>"
}
]
}
},
"version": "0.0.0",
"filename": "./modules/page-edit.php",
"groupTitle": "Editing"
},
{
"type": "post",
"url": "?action=preview-edit&page={pageName}[&newpage=yes]",
@ -311,115 +494,6 @@
"filename": "./modules/page-delete.php",
"groupTitle": "Page"
},
{
"type": "post",
"url": "?action=save&page={pageName}",
"title": "Save an edit to a page.",
"description": "<p>Saves an edit to a page. If an edit conflict is encountered, then a conflict resolution page is returned instead.</p>",
"name": "EditPage",
"group": "Page",
"permission": [
{
"name": "Anonymous",
"title": "Anybody may use this call.",
"description": ""
}
],
"parameter": {
"fields": {
"Parameter": [
{
"group": "Parameter",
"type": "string",
"optional": false,
"field": "newpage",
"description": "<p>GET only. Set to 'yes' to indicate that this is a new page that is being saved. Only affects the HTTP response code you recieve upon success.</p>"
},
{
"group": "Parameter",
"type": "string",
"optional": false,
"field": "content",
"description": "<p>POST only. The new content to save to the given filename.</p>"
},
{
"group": "Parameter",
"type": "string",
"optional": false,
"field": "tags",
"description": "<p>POST only. A comma-separated list of tags to assign to the current page. Will replace the existing list of tags, if any are present.</p>"
},
{
"group": "Parameter",
"type": "string",
"optional": false,
"field": "prev-content-hash",
"description": "<p>POST only. The hash of the original content before editing. If this hash is found to be different to a hash computed of the currentl saved content, a conflict resolution page will be returned instead of saving the provided content.</p>"
},
{
"group": "Parameter",
"type": "string",
"optional": false,
"field": "page",
"description": "<p>The page to operate on.</p>"
}
]
}
},
"error": {
"fields": {
"Error 4xx": [
{
"group": "Error 4xx",
"optional": false,
"field": "UnsufficientPermissionError",
"description": "<p>You don't currently have sufficient permissions to save an edit.</p>"
}
]
}
},
"version": "0.0.0",
"filename": "./modules/page-edit.php",
"groupTitle": "Page"
},
{
"type": "get",
"url": "?action=edit&page={pageName}[&newpage=yes]",
"title": "Get an editing page",
"description": "<p>Gets an editing page for a given page. If you don't have permission to edit the page in question, a view source pagee is returned instead.</p>",
"name": "EditPage",
"group": "Page",
"permission": [
{
"name": "Anonymous",
"title": "Anybody may use this call.",
"description": ""
}
],
"parameter": {
"fields": {
"Parameter": [
{
"group": "Parameter",
"type": "string",
"optional": false,
"field": "newpage",
"description": "<p>Set to 'yes' if a new page is being created. Only affects a few bits of text here and there, and the HTTP response code recieved on success from the <code>save</code> action.</p>"
},
{
"group": "Parameter",
"type": "string",
"optional": false,
"field": "page",
"description": "<p>The page to operate on.</p>"
}
]
}
},
"version": "0.0.0",
"filename": "./modules/page-edit.php",
"groupTitle": "Page"
},
{
"type": "get",
"url": "?action=history&page={pageName}[&format={format}]",
@ -999,7 +1073,7 @@
},
{
"type": "get",
"url": "?action=recentchanges",
"url": "?action=recent-changes[&format={code}]",
"title": "Get a list of recent changes",
"name": "RecentChanges",
"group": "Stats",
@ -1010,13 +1084,26 @@
"description": ""
}
],
"parameter": {
"fields": {
"Parameter": [
{
"group": "Parameter",
"type": "string",
"optional": false,
"field": "format",
"description": "<p>The format to return the recent changes in. Values: html, json. Default: html.</p>"
}
]
}
},
"version": "0.0.0",
"filename": "./modules/feature-recent-changes.php",
"groupTitle": "Stats"
},
{
"type": "get",
"url": "?action=status",
"url": "?action=status[&minified=type]",
"title": "Get the json-formatted status of this wiki",
"name": "Status",
"group": "Stats",
@ -1027,6 +1114,19 @@
"description": ""
}
],
"parameter": {
"fields": {
"Parameter": [
{
"group": "Parameter",
"type": "boolean",
"optional": false,
"field": "Whether",
"description": "<p>or not the result should be minified JSON. Default: false</p>"
}
]
}
},
"version": "0.0.0",
"filename": "./modules/api-status.php",
"groupTitle": "Stats"

View File

@ -8,7 +8,7 @@ define({
"apidoc": "0.3.0",
"generator": {
"name": "apidoc",
"time": "2018-03-27T15:57:49.013Z",
"time": "2018-04-22T14:53:29.858Z",
"url": "http://apidocjs.com",
"version": "0.17.6"
}

View File

@ -8,7 +8,7 @@
"apidoc": "0.3.0",
"generator": {
"name": "apidoc",
"time": "2018-03-27T15:57:49.013Z",
"time": "2018-04-22T14:53:29.858Z",
"url": "http://apidocjs.com",
"version": "0.17.6"
}

View File

@ -167,7 +167,7 @@
"author": "Starbeamrainbowlabs",
"description": "Allows you to edit pages by adding the edit and save actions. You should probably include this one.",
"id": "page-edit",
"lastupdate": 1521390769,
"lastupdate": 1524408762,
"optional": false
},
{

View File

@ -14,12 +14,12 @@ register_module([
"local_filename" => "diff.min.js",
"remote_url" => "https://cdnjs.cloudflare.com/ajax/libs/jsdiff/2.2.2/diff.min.js"
]);
/**
* @api {get} ?action=edit&page={pageName}[&newpage=yes] Get an editing page
* @apiDescription Gets an editing page for a given page. If you don't have permission to edit the page in question, a view source pagee is returned instead.
* @apiName EditPage
* @apiGroup Page
* @apiGroup Editing
* @apiPermission Anonymous
*
* @apiUse PageParameter
@ -139,7 +139,7 @@ register_module([
}
$content .= "<form method='post' name='edit-form' action='index.php?action=preview-edit&page=" . rawurlencode($env->page) . "' class='editform'>
<input type='hidden' name='prev-content-hash' value='" . ((isset($old_pagetext)) ? sha1($old_pagetext) : sha1($pagetext)) . "' />
<input type='hidden' name='prev-content-hash' value='" . generate_page_hash(isset($old_pagetext) ? $old_pagetext : $pagetext) . "' />
<button class='smartsave-restore' title=\"Only works if you haven't changed the editor's content already!\">Restore Locally Saved Content</button>
<textarea name='content' autofocus tabindex='1'>$pagetext</textarea>
<pre class='fit-text-mirror'></pre>
@ -250,11 +250,71 @@ window.addEventListener("load", function(event) {
});
/**
* @api {post} ?action=acquire-edit-key&page={pageName} Acquire an edit key for a page
* @apiDescription Returns an edit key that can be used to programmatically save an edit to a page. It does _not_ necessarily mean that such an edit will be saved. For example, editing might be disabled, or you might not have permission to save an edit on a particular page.
* @apiName AcquireEditKey
* @apiGroup Editing
* @apiPermission Anonymous
*
* @apiUse PageParameter
* @apiPara {string} format The format ot return the edit key in. Possible values: text, json. Default: text.
*/
/*
* █████ ██████ ██████ ██ ██ ██ ██████ ███████
* ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██
* ███████ ██ ██ ██ ██ ██ ██ ██████ █████ █████
* ██ ██ ██ ██ ▄▄ ██ ██ ██ ██ ██ ██ ██
* ██ ██ ██████ ██████ ██████ ██ ██ ██ ███████
* ▀▀
* 
* ███████ ██████ ██ ████████
* ██ ██ ██ ██ ██
* █████ ██ ██ ██ ██ █████
* ██ ██ ██ ██ ██
* ███████ ██████ ██ ██
*
* ██ ██ ███████ ██ ██
* ██ ██ ██ ██ ██
* █████ █████ ████
* ██ ██ ██ ██
* ██ ██ ███████ ██
*/
add_action("acquire-edit-key", function() {
global $env;
if(!file_exists($env->page_filename)) {
http_response_code(404);
header("content-type: text/plain");
exit("Error: The page '$env->page' couldn't be found.");
}
$format = $_GET["format"] ?? "text";
$page_hash = generate_page_hash(file_get_contents($env->page_filename));
switch($format) {
case "text":
header("content-type: text/plain");
exit("$env->page\t$page_hash");
case "json":
$result = new stdClass();
$result->page = $env->page;
$result->key = $page_hash;
header("content-type: application/json");
exit(json_encode($result));
default:
http_response_code(406);
header("content-type: text/plain");
exit("Error: The format $format is not currently known. Supported formats: text, json. Default: text.\nThink this is a bug? Open an issue at https://github.com/sbrl/Pepperminty-Wiki/issues/new");
}
});
/**
* @api {post} ?action=save&page={pageName} Save an edit to a page.
* @apiDescription Saves an edit to a page. If an edit conflict is encountered, then a conflict resolution page is returned instead.
* @apiName EditPage
* @apiGroup Page
* @apiGroup Editing
* @apiPermission Anonymous
*
* @apiUse PageParameter
@ -471,4 +531,8 @@ DIFFSCRIPT;
}
]);
function generate_page_hash($page_data) {
return sha1($page_data);
}
?>