mirror of
https://github.com/sbrl/Pepperminty-Wiki.git
synced 2024-10-31 21:33:00 +00:00
Bugfix: Include uploaded files when exporting
This commit is contained in:
parent
c120902cda
commit
d51c3f163f
5 changed files with 28 additions and 15 deletions
|
@ -26,6 +26,7 @@ This file holds the changelog for Pepperminty Wiki. This is the master list of t
|
||||||
- Standardise line endings to `\n` (linux)
|
- Standardise line endings to `\n` (linux)
|
||||||
- Enhanced setup instructions in README.
|
- Enhanced setup instructions in README.
|
||||||
- Long lines in code blocks now wrap correctly.
|
- Long lines in code blocks now wrap correctly.
|
||||||
|
- The `export` action now correctly includes uploaded files alongside their descriptions
|
||||||
|
|
||||||
## v0.17.1
|
## v0.17.1
|
||||||
|
|
||||||
|
|
|
@ -411,7 +411,7 @@ if($settings->sessionprefix == "auto")
|
||||||
/////////////////////////////////////////////////////////////////////////////
|
/////////////////////////////////////////////////////////////////////////////
|
||||||
/** The version of Pepperminty Wiki currently running. */
|
/** The version of Pepperminty Wiki currently running. */
|
||||||
$version = "v0.18-dev";
|
$version = "v0.18-dev";
|
||||||
$commit = "dc860acfd3db082023b34fd769be7885c521b4cd";
|
$commit = "c120902cda82e3efcd32d071ad8993c06fdc79ac";
|
||||||
/// Environment ///
|
/// Environment ///
|
||||||
/** Holds information about the current request environment. */
|
/** Holds information about the current request environment. */
|
||||||
$env = new stdClass();
|
$env = new stdClass();
|
||||||
|
@ -457,6 +457,8 @@ $paths->idindex = "idindex.json";
|
||||||
$paths->statsindex = "statsindex.json";
|
$paths->statsindex = "statsindex.json";
|
||||||
/** The interwiki index cache */
|
/** The interwiki index cache */
|
||||||
$paths->interwiki_index = "interwiki_index.json";
|
$paths->interwiki_index = "interwiki_index.json";
|
||||||
|
/** The cache directory, minus the trailing slash. Contains cached rendered versions of pages. If things don't update, try deleting this folder. */
|
||||||
|
$paths->cache_directory = "._cache";
|
||||||
|
|
||||||
// Prepend the storage data directory to all the defined paths.
|
// Prepend the storage data directory to all the defined paths.
|
||||||
foreach ($paths as &$path) {
|
foreach ($paths as &$path) {
|
||||||
|
@ -468,6 +470,10 @@ $paths->settings_file = $settingsFilename;
|
||||||
/** The prefix to add to uploaded files */
|
/** The prefix to add to uploaded files */
|
||||||
$paths->upload_file_prefix = "Files/";
|
$paths->upload_file_prefix = "Files/";
|
||||||
|
|
||||||
|
// Create the cache directory if it doesn't exist
|
||||||
|
if(!is_dir($paths->cache_directory))
|
||||||
|
mkdir($paths->cache_directory, 0700);
|
||||||
|
|
||||||
session_start();
|
session_start();
|
||||||
// Make sure that the login cookie lasts beyond the end of the user's session
|
// Make sure that the login cookie lasts beyond the end of the user's session
|
||||||
setcookie(session_name(), session_id(), time() + $settings->sessionlifetime, "", "", false, true);
|
setcookie(session_name(), session_id(), time() + $settings->sessionlifetime, "", "", false, true);
|
||||||
|
@ -2136,13 +2142,12 @@ function add_parser($name, $parser_code)
|
||||||
/**
|
/**
|
||||||
* Parses the specified page source using the parser specified in the settings
|
* Parses the specified page source using the parser specified in the settings
|
||||||
* into HTML.
|
* into HTML.
|
||||||
* The specified parser may (though it's unilkely) render it to other things.
|
* The specified parser may (though it's unlikely) render it to other things.
|
||||||
* @package core
|
* @package core
|
||||||
* @param string $source The source to render.
|
* @param string $source The source to render.
|
||||||
* @return string The source rendered to HTML.
|
* @return string The source rendered to HTML.
|
||||||
*/
|
*/
|
||||||
function parse_page_source($source)
|
function parse_page_source($source) {
|
||||||
{
|
|
||||||
global $settings, $parsers;
|
global $settings, $parsers;
|
||||||
if(!isset($parsers[$settings->parser]))
|
if(!isset($parsers[$settings->parser]))
|
||||||
exit(page_renderer::render_main("Parsing error - $settings->sitename", "<p>Parsing some page source data failed. This is most likely because $settings->sitename has the parser setting set incorrectly. Please contact <a href='mailto:" . hide_email($settings->admindetails_email) . "'>" . $settings->admindetails_name . "</a>, your $settings->sitename Administrator."));
|
exit(page_renderer::render_main("Parsing error - $settings->sitename", "<p>Parsing some page source data failed. This is most likely because $settings->sitename has the parser setting set incorrectly. Please contact <a href='mailto:" . hide_email($settings->admindetails_email) . "'>" . $settings->admindetails_name . "</a>, your $settings->sitename Administrator."));
|
||||||
|
@ -7665,7 +7670,7 @@ function generate_page_hash($page_data) {
|
||||||
|
|
||||||
register_module([
|
register_module([
|
||||||
"name" => "Export",
|
"name" => "Export",
|
||||||
"version" => "0.4",
|
"version" => "0.5",
|
||||||
"author" => "Starbeamrainbowlabs",
|
"author" => "Starbeamrainbowlabs",
|
||||||
"description" => "Adds a page that you can use to export your wiki as a .zip file. Uses \$settings->export_only_allow_admins, which controls whether only admins are allowed to export the wiki.",
|
"description" => "Adds a page that you can use to export your wiki as a .zip file. Uses \$settings->export_only_allow_admins, which controls whether only admins are allowed to export the wiki.",
|
||||||
"id" => "page-export",
|
"id" => "page-export",
|
||||||
|
@ -7710,9 +7715,10 @@ register_module([
|
||||||
exit(page_renderer::render("Export error - $settings->sitename", "Pepperminty Wiki was unable to open a temporary file to store the exported data in. Please contact $settings->sitename's administrator (" . $settings->admindetails_name . " at " . hide_email($settings->admindetails_email) . ") for assistance."));
|
exit(page_renderer::render("Export error - $settings->sitename", "Pepperminty Wiki was unable to open a temporary file to store the exported data in. Please contact $settings->sitename's administrator (" . $settings->admindetails_name . " at " . hide_email($settings->admindetails_email) . ") for assistance."));
|
||||||
}
|
}
|
||||||
|
|
||||||
foreach($pageindex as $entry)
|
foreach($pageindex as $entry) {
|
||||||
{
|
|
||||||
$zip->addFile("$env->storage_prefix$entry->filename", $entry->filename);
|
$zip->addFile("$env->storage_prefix$entry->filename", $entry->filename);
|
||||||
|
if(isset($entry->uploadedfilepath))
|
||||||
|
$zip->addFile($entry->uploadedfilepath);
|
||||||
}
|
}
|
||||||
|
|
||||||
if($zip->close() !== true)
|
if($zip->close() !== true)
|
||||||
|
|
11
core.php
11
core.php
|
@ -56,6 +56,8 @@ $paths->idindex = "idindex.json";
|
||||||
$paths->statsindex = "statsindex.json";
|
$paths->statsindex = "statsindex.json";
|
||||||
/** The interwiki index cache */
|
/** The interwiki index cache */
|
||||||
$paths->interwiki_index = "interwiki_index.json";
|
$paths->interwiki_index = "interwiki_index.json";
|
||||||
|
/** The cache directory, minus the trailing slash. Contains cached rendered versions of pages. If things don't update, try deleting this folder. */
|
||||||
|
$paths->cache_directory = "._cache";
|
||||||
|
|
||||||
// Prepend the storage data directory to all the defined paths.
|
// Prepend the storage data directory to all the defined paths.
|
||||||
foreach ($paths as &$path) {
|
foreach ($paths as &$path) {
|
||||||
|
@ -67,6 +69,10 @@ $paths->settings_file = $settingsFilename;
|
||||||
/** The prefix to add to uploaded files */
|
/** The prefix to add to uploaded files */
|
||||||
$paths->upload_file_prefix = "Files/";
|
$paths->upload_file_prefix = "Files/";
|
||||||
|
|
||||||
|
// Create the cache directory if it doesn't exist
|
||||||
|
if(!is_dir($paths->cache_directory))
|
||||||
|
mkdir($paths->cache_directory, 0700);
|
||||||
|
|
||||||
session_start();
|
session_start();
|
||||||
// Make sure that the login cookie lasts beyond the end of the user's session
|
// Make sure that the login cookie lasts beyond the end of the user's session
|
||||||
setcookie(session_name(), session_id(), time() + $settings->sessionlifetime, "", "", false, true);
|
setcookie(session_name(), session_id(), time() + $settings->sessionlifetime, "", "", false, true);
|
||||||
|
@ -1735,13 +1741,12 @@ function add_parser($name, $parser_code)
|
||||||
/**
|
/**
|
||||||
* Parses the specified page source using the parser specified in the settings
|
* Parses the specified page source using the parser specified in the settings
|
||||||
* into HTML.
|
* into HTML.
|
||||||
* The specified parser may (though it's unilkely) render it to other things.
|
* The specified parser may (though it's unlikely) render it to other things.
|
||||||
* @package core
|
* @package core
|
||||||
* @param string $source The source to render.
|
* @param string $source The source to render.
|
||||||
* @return string The source rendered to HTML.
|
* @return string The source rendered to HTML.
|
||||||
*/
|
*/
|
||||||
function parse_page_source($source)
|
function parse_page_source($source) {
|
||||||
{
|
|
||||||
global $settings, $parsers;
|
global $settings, $parsers;
|
||||||
if(!isset($parsers[$settings->parser]))
|
if(!isset($parsers[$settings->parser]))
|
||||||
exit(page_renderer::render_main("Parsing error - $settings->sitename", "<p>Parsing some page source data failed. This is most likely because $settings->sitename has the parser setting set incorrectly. Please contact <a href='mailto:" . hide_email($settings->admindetails_email) . "'>" . $settings->admindetails_name . "</a>, your $settings->sitename Administrator."));
|
exit(page_renderer::render_main("Parsing error - $settings->sitename", "<p>Parsing some page source data failed. This is most likely because $settings->sitename has the parser setting set incorrectly. Please contact <a href='mailto:" . hide_email($settings->admindetails_email) . "'>" . $settings->admindetails_name . "</a>, your $settings->sitename Administrator."));
|
||||||
|
|
|
@ -190,11 +190,11 @@
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "Export",
|
"name": "Export",
|
||||||
"version": "0.4",
|
"version": "0.5",
|
||||||
"author": "Starbeamrainbowlabs",
|
"author": "Starbeamrainbowlabs",
|
||||||
"description": "Adds a page that you can use to export your wiki as a .zip file. Uses $settings->export_only_allow_admins, which controls whether only admins are allowed to export the wiki.",
|
"description": "Adds a page that you can use to export your wiki as a .zip file. Uses $settings->export_only_allow_admins, which controls whether only admins are allowed to export the wiki.",
|
||||||
"id": "page-export",
|
"id": "page-export",
|
||||||
"lastupdate": 1472230366,
|
"lastupdate": 1548970758,
|
||||||
"optional": false
|
"optional": false
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
<?php
|
<?php
|
||||||
register_module([
|
register_module([
|
||||||
"name" => "Export",
|
"name" => "Export",
|
||||||
"version" => "0.4",
|
"version" => "0.5",
|
||||||
"author" => "Starbeamrainbowlabs",
|
"author" => "Starbeamrainbowlabs",
|
||||||
"description" => "Adds a page that you can use to export your wiki as a .zip file. Uses \$settings->export_only_allow_admins, which controls whether only admins are allowed to export the wiki.",
|
"description" => "Adds a page that you can use to export your wiki as a .zip file. Uses \$settings->export_only_allow_admins, which controls whether only admins are allowed to export the wiki.",
|
||||||
"id" => "page-export",
|
"id" => "page-export",
|
||||||
|
@ -46,9 +46,10 @@ register_module([
|
||||||
exit(page_renderer::render("Export error - $settings->sitename", "Pepperminty Wiki was unable to open a temporary file to store the exported data in. Please contact $settings->sitename's administrator (" . $settings->admindetails_name . " at " . hide_email($settings->admindetails_email) . ") for assistance."));
|
exit(page_renderer::render("Export error - $settings->sitename", "Pepperminty Wiki was unable to open a temporary file to store the exported data in. Please contact $settings->sitename's administrator (" . $settings->admindetails_name . " at " . hide_email($settings->admindetails_email) . ") for assistance."));
|
||||||
}
|
}
|
||||||
|
|
||||||
foreach($pageindex as $entry)
|
foreach($pageindex as $entry) {
|
||||||
{
|
|
||||||
$zip->addFile("$env->storage_prefix$entry->filename", $entry->filename);
|
$zip->addFile("$env->storage_prefix$entry->filename", $entry->filename);
|
||||||
|
if(isset($entry->uploadedfilepath))
|
||||||
|
$zip->addFile($entry->uploadedfilepath);
|
||||||
}
|
}
|
||||||
|
|
||||||
if($zip->close() !== true)
|
if($zip->close() !== true)
|
||||||
|
|
Loading…
Reference in a new issue