1
0
Fork 0
mirror of https://github.com/sbrl/Pepperminty-Wiki.git synced 2024-11-25 17:23:00 +00:00

Add format param support to recentchanges

This commit is contained in:
Starbeamrainbowlabs 2018-04-17 18:59:23 +01:00
parent eb973b58b2
commit 19c5679461
Signed by: sbrl
GPG key ID: 1BE5172E637709C2
4 changed files with 57 additions and 34 deletions

View file

@ -4,10 +4,11 @@ This file holds the changelog for Pepperminty Wiki. This is the master list of t
## v0.16-dev ## v0.16-dev
### Added ### Added
- [Rest API] Added support for the `mode` parameter to the `random` action.
- Add json support to the search action :D - Add json support to the search action :D
- Added page moves to the recent changes page (#151) - Added page moves to the recent changes page (#151)
- Hyperlinked image preview on file pages to the original image (#153) - Hyperlinked image preview on file pages to the original image (#153)
- [Rest API] Added support for the `mode` parameter to the `random` action
- [Rest API] Added `format` parameter to `recentchanges` action
### Fixed ### Fixed
- Fixed various issues with both the module api & the rest api docs. - Fixed various issues with both the module api & the rest api docs.

View file

@ -3279,12 +3279,6 @@ register_module([
"id" => "feature-recent-changes", "id" => "feature-recent-changes",
"code" => function() { "code" => function() {
global $settings, $env, $paths; 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. // Add the recent changes json file to $paths for convenience.
$paths->recentchanges = $env->storage_prefix . "recent-changes.json"; $paths->recentchanges = $env->storage_prefix . "recent-changes.json";
@ -3292,6 +3286,14 @@ register_module([
if(!file_exists($paths->recentchanges)) if(!file_exists($paths->recentchanges))
file_put_contents($paths->recentchanges, "[]"); file_put_contents($paths->recentchanges, "[]");
/**
* @api {get} ?action=recentchanges[&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.
*/
/* /*
* ██████ ███████ ██████ ███████ ███ ██ ████████ * ██████ ███████ ██████ ███████ ███ ██ ████████
* ██ ██ ██ ██ ██ ████ ██ ██ * ██ ██ ██ ██ ██ ████ ██ ██
@ -3308,21 +3310,30 @@ register_module([
add_action("recent-changes", function() { add_action("recent-changes", function() {
global $settings, $paths, $pageindex; 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)); $recent_changes = json_decode(file_get_contents($paths->recentchanges));
switch($format) {
case "html":
$content = "\t\t<h1>Recent Changes</h1>\n";
if(count($recent_changes) > 0) if(count($recent_changes) > 0)
{
$content .= render_recent_changes($recent_changes); $content .= render_recent_changes($recent_changes);
} else // No changes yet :(
else
{
// No changes yet :(
$content .= "<p><em>None yet! Try making a few changes and then check back here.</em></p>\n"; $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)); 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: $result");
exit($result);
break;
}
}); });
register_save_preprocessor(function(&$pageinfo, &$newsource, &$oldsource) { register_save_preprocessor(function(&$pageinfo, &$newsource, &$oldsource) {

View file

@ -86,7 +86,7 @@
"author": "Starbeamrainbowlabs", "author": "Starbeamrainbowlabs",
"description": "Adds recent changes. Access through the 'recent-changes' action.", "description": "Adds recent changes. Access through the 'recent-changes' action.",
"id": "feature-recent-changes", "id": "feature-recent-changes",
"lastupdate": 1521408644, "lastupdate": 1523987868,
"optional": false "optional": false
}, },
{ {

View file

@ -7,12 +7,6 @@ register_module([
"id" => "feature-recent-changes", "id" => "feature-recent-changes",
"code" => function() { "code" => function() {
global $settings, $env, $paths; 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. // Add the recent changes json file to $paths for convenience.
$paths->recentchanges = $env->storage_prefix . "recent-changes.json"; $paths->recentchanges = $env->storage_prefix . "recent-changes.json";
@ -20,6 +14,14 @@ register_module([
if(!file_exists($paths->recentchanges)) if(!file_exists($paths->recentchanges))
file_put_contents($paths->recentchanges, "[]"); file_put_contents($paths->recentchanges, "[]");
/**
* @api {get} ?action=recentchanges[&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() { add_action("recent-changes", function() {
global $settings, $paths, $pageindex; 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)); $recent_changes = json_decode(file_get_contents($paths->recentchanges));
switch($format) {
case "html":
$content = "\t\t<h1>Recent Changes</h1>\n";
if(count($recent_changes) > 0) if(count($recent_changes) > 0)
{
$content .= render_recent_changes($recent_changes); $content .= render_recent_changes($recent_changes);
} else // No changes yet :(
else
{
// No changes yet :(
$content .= "<p><em>None yet! Try making a few changes and then check back here.</em></p>\n"; $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)); 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: $result");
exit($result);
break;
}
}); });
register_save_preprocessor(function(&$pageinfo, &$newsource, &$oldsource) { register_save_preprocessor(function(&$pageinfo, &$newsource, &$oldsource) {