mikuli.cz

:)
git clone https://git.sr.ht/~ashymad/mikuli.cz
Log | Files | Refs

commit ea2c1625844efa560e3653732e9124144ea728ab
parent b4a12fe6586b11cb30171d11914cf0062bd7d9f5
Author: markseu <mark2011@mayberg.se>
Date:   Sat, 22 Feb 2020 17:13:30 +0100

Refactored code

Diffstat:
Msystem/extensions/install.php | 72+++++++++++++++++++++++++++++++++++++++++++-----------------------------
1 file changed, 43 insertions(+), 29 deletions(-)

diff --git a/system/extensions/install.php b/system/extensions/install.php @@ -17,13 +17,7 @@ class YellowInstall { // Handle request public function onRequest($scheme, $address, $base, $location, $fileName) { $statusCode = 0; - if ($this->yellow->lookup->isContentFile($fileName) || empty($fileName)) { - $troubleshooting = "<a href=\"https://datenstrom.se/yellow/help/troubleshooting\">See troubleshooting</a>."; - $server = $this->yellow->toolbox->getServerVersion(true); - $this->checkServerExtensions() || die("Datenstrom Yellow requires PHP extension '".$this->getServerExtensionRequired()."' for $server! $troubleshooting\n"); - $this->checkServerConfiguration($server) || die("Datenstrom Yellow requires a configuration file for $server! $troubleshooting\n"); - $this->checkServerRewrite($scheme, $address, $base, $location, $fileName) || die("Datenstrom Yellow requires rewrite support for $server! $troubleshooting\n"); - $this->checkServerAccess() || die("Datenstrom Yellow requires write access for $server! $troubleshooting\n"); + if (($this->yellow->lookup->isContentFile($fileName) || empty($fileName)) && $this->checkServer()) { $statusCode = $this->processRequestInstall($scheme, $address, $base, $location, $fileName); } return $statusCode; @@ -31,22 +25,9 @@ class YellowInstall { // Handle command public function onCommand($args) { - $this->checkServerExtensions() || die("Datenstrom Yellow requires PHP extension '".$this->getServerExtensionRequired()."'!\n"); - return $this->processCommandInstall(); - } - - // Process command to install website - public function processCommandInstall() { - $statusCode = $this->updateLog(); - if ($statusCode==200) $statusCode = $this->updateLanguage(); - if ($statusCode==200) $statusCode = $this->updateText("en"); - if ($statusCode==200) $statusCode = $this->updateSystem($this->getSystemData()); - if ($statusCode==200) $statusCode = $this->removeFiles(); - if ($statusCode==200) { - $statusCode = 0; - } else { - echo "ERROR updating files: ".$this->yellow->page->get("pageError")."\n"; - echo "Your website has ".($statusCode!=200 ? "not " : "")."been updated: Please run command again\n"; + $statusCode = 0; + if ($this->checkServer()) { + $statusCode = $this->processCommandInstall(); } return $statusCode; } @@ -85,6 +66,22 @@ class YellowInstall { return $statusCode; } + // Process command to install website + public function processCommandInstall() { + $statusCode = $this->updateLog(); + if ($statusCode==200) $statusCode = $this->updateLanguage(); + if ($statusCode==200) $statusCode = $this->updateText("en"); + if ($statusCode==200) $statusCode = $this->updateSystem($this->getSystemData()); + if ($statusCode==200) $statusCode = $this->removeFiles(); + if ($statusCode==200) { + $statusCode = 0; + } else { + echo "ERROR updating files: ".$this->yellow->page->get("pageError")."\n"; + echo "Your website has ".($statusCode!=200 ? "not " : "")."been updated: Please run command again\n"; + } + return $statusCode; + } + // Update log public function updateLog() { $statusCode = 200; @@ -268,19 +265,36 @@ class YellowInstall { return $statusCode; } + // Check web server + public function checkServer() { + if ($this->yellow->isCommandLine()) { + $this->checkServerExtensions() || die("Datenstrom Yellow requires PHP ".$this->getServerExtensionRequired()." extension!\n"); + } else { + $server = $this->yellow->toolbox->getServerVersion(true); + $troubleshooting = "<a href=\"https://datenstrom.se/yellow/help/troubleshooting\">See troubleshooting</a>."; + $this->checkServerExtensions() || die("Datenstrom Yellow requires PHP ".$this->getServerExtensionRequired()." extension for $server! $troubleshooting\n"); + $this->checkServerConfiguration() || die("Datenstrom Yellow requires a configuration file for $server! $troubleshooting\n"); + $this->checkServerRewrite() || die("Datenstrom Yellow requires rewrite support for $server! $troubleshooting\n"); + $this->checkServerWrite() || die("Datenstrom Yellow requires write access for $server! $troubleshooting\n"); + } + return true; + } + // Check web server extensions public function checkServerExtensions() { return empty($this->getServerExtensionRequired()); } - // Check web server configuration - public function checkServerConfiguration($server) { + // Check web server configuration file + public function checkServerConfiguration() { + $server = $this->yellow->toolbox->getServerVersion(true); return strtoloweru($server)!="apache" || is_file(".htaccess"); } - // Check web server rewrite - public function checkServerRewrite($scheme, $address, $base, $location, $fileName) { + // Check web server rewrite support + public function checkServerRewrite() { $curlHandle = curl_init(); + list($scheme, $address, $base) = $this->yellow->getRequestInformation(); $location = $this->yellow->system->get("coreResourceLocation").$this->yellow->lookup->normaliseName($this->yellow->system->get("theme")).".css"; $url = $this->yellow->lookup->normaliseUrl($scheme, $address, $base, $location); curl_setopt($curlHandle, CURLOPT_URL, $url); @@ -294,7 +308,7 @@ class YellowInstall { } // Check web server write access - public function checkServerAccess() { + public function checkServerWrite() { $fileName = $this->yellow->system->get("coreSettingDir").$this->yellow->system->get("coreSystemFile"); return $this->yellow->system->save($fileName, array()); } @@ -324,7 +338,7 @@ class YellowInstall { return $extension; } - // Return system data, detect system settings + // Return system data including static information public function getSystemData() { $data = array(); foreach ($_REQUEST as $key=>$value) {