1
0
mirror of https://github.com/processwire/processwire.git synced 2025-08-07 15:26:54 +02:00

Optimizations and improvements to $config->demo mode.

This commit is contained in:
Ryan Cramer
2024-05-24 14:51:42 -04:00
parent 00ae62059b
commit 904c227cce
4 changed files with 24 additions and 10 deletions

View File

@@ -229,6 +229,7 @@ class WireUpload extends Wire {
if(!$this->initialized) $this->init();
if(!$this->name) throw new WireException("You must set the name for WireUpload before executing it");
if(!$this->destinationPath) throw new WireException("You must set the destination path for WireUpload before executing it");
if($this->wire()->config->demo) return array();
$uploadFiles = array();
@@ -887,5 +888,3 @@ class WireUpload extends Wire {
return !empty($_SERVER['HTTP_X_FILENAME']);
}
}

View File

@@ -6,7 +6,7 @@
* This file is designed for inclusion by /site/templates/admin.php template and all the variables
* it references are from your template namespace.
*
* Copyright 2022 by Ryan Cramer
* Copyright 2024 by Ryan Cramer
*
* @var Config $config
* @var User $user
@@ -100,6 +100,24 @@ function _checkForMaxInputVars(WireInput $input) {
}
}
/**
* Setup for demo mode
*
* @param Page $page
* @param ProcessWire $wire
*
*/
function _setupForDemoMode($page, $wire) {
if("$page->process" !== 'ProcessLogin') {
if(!empty($_POST)) $wire->error("Features that use POST variables are disabled in this demo");
foreach($_POST as $k => $v) unset($_POST[$k]); $_POST = array();
$wire->input->post->removeAll();
$wire->config->js('demo', true);
}
unset($_SERVER['HTTP_X_FIELDNAME'], $_SERVER['HTTP_X_FILENAME']);
foreach($_FILES as $k => $v) unset($_FILES[$k]); $_FILES = array();
}
// fallback theme if one not already present
if(empty($adminTheme)) {
$adminTheme = $modules->get($config->defaultAdminTheme ? $config->defaultAdminTheme : 'AdminThemeUikit');
@@ -131,16 +149,12 @@ $demo = $config->demo;
// enable modules to output their own ajax responses if they choose to
if($ajax) ob_start();
if($demo) _setupForDemoMode($page, $wire);
if($page->process && $page->process != 'ProcessPageView') {
try {
if($demo && $page->process != 'ProcessLogin') {
if(count($_POST)) $wire->error("Features that use POST variables are disabled in this demo");
foreach($_POST as $k => $v) unset($_POST[$k]);
foreach($_FILES as $k => $v) unset($_FILES[$k]);
$input->post->removeAll();
} else if($input->requestMethod('POST') && $user->isLoggedin() && $user->hasPermission('page-edit')) {
if($input->requestMethod('POST') && $user->isLoggedin() && $user->hasPermission('page-edit')) {
_checkForMaxInputVars($input);
}

View File

@@ -39,6 +39,7 @@ function InputfieldImage($) {
* @returns bool
*/
function useAjaxUpload() {
if(typeof ProcessWire.config.demo !== 'undefined') return false;
var isFileReaderSupport = window.File && window.FileList && window.FileReader;
var isAjaxUpload = $('.InputfieldAllowAjaxUpload').length > 0;
var isPageIDIndicator = $("#PageIDIndicator").length > 0;

File diff suppressed because one or more lines are too long