commit 5d9eb5d08bf52a0988fbe4e7bf885afcf44c3b9c
parent 3433e30179fa29161123d437d26eb62edd5c9c3e
Author: markseu <mark2011@mayberg.se>
Date: Wed, 3 Oct 2018 13:24:52 +0200
Updated static site generator, detects URL of static web hosting
Diffstat:
3 files changed, 31 insertions(+), 27 deletions(-)
diff --git a/system/config/config.ini b/system/config/config.ini
@@ -53,7 +53,6 @@ Tagline:
Parser: markdown
MultiLanguageMode: 0
SafeMode: 0
-SetupMode: 1
BundleAndMinify: 1
EditLocation: /edit/
EditUploadNewLocation: /media/@group/@filename
diff --git a/system/plugins/core.php b/system/plugins/core.php
@@ -78,7 +78,6 @@ class YellowCore {
$this->config->setDefault("parser", "markdown");
$this->config->setDefault("multiLanguageMode", "0");
$this->config->setDefault("safeMode", "0");
- $this->config->setDefault("setupMode", "0");
}
public function __destruct() {
diff --git a/system/plugins/setup.php b/system/plugins/setup.php
@@ -1,10 +1,10 @@
<?php
-// Setup plugin, https://github.com/datenstrom/yellow
+// Setup plugin, https://github.com/datenstrom/yellow-plugins/tree/master/setup
// Copyright (c) 2013-2018 Datenstrom, https://datenstrom.se
// This file may be used and distributed under the terms of the public license.
class YellowSetup {
- const VERSION = "0.7.3";
+ const VERSION = "0.7.4";
public $yellow; //access to API
// Handle initialisation
@@ -15,7 +15,7 @@ class YellowSetup {
// Handle request
public function onRequest($scheme, $address, $base, $location, $fileName) {
$statusCode = 0;
- if ($this->yellow->lookup->isContentFile($fileName) && $this->yellow->config->get("setupMode")) {
+ if ($this->yellow->lookup->isContentFile($fileName)) {
$server = $this->yellow->toolbox->getServerVersion(true);
$this->checkServerRewrite($scheme, $address, $base, $location, $fileName) || die("Datenstrom Yellow requires $server rewrite module!");
$this->checkServerAccess() || die("Datenstrom Yellow requires $server read/write access!");
@@ -26,16 +26,14 @@ class YellowSetup {
// Handle command
public function onCommand($args) {
- $statusCode = 0;
- if ($this->yellow->config->get("setupMode")) $statusCode = $this->processCommandSetup();
- return $statusCode;
+ return $this->processCommandSetup();
}
// Process command to set up website
public function processCommandSetup() {
$statusCode = $this->updateLanguage();
- if ($statusCode==200) $statusCode = $this->updateFeature("none");
- if ($statusCode==200) $statusCode = $this->updateConfig(array("setupMode" => "0"));
+ if ($statusCode==200) $statusCode = $this->updateConfig($this->getConfigData());
+ if ($statusCode==200) $statusCode = $this->removeSetup();
if ($statusCode==200) {
$statusCode = 0;
} else {
@@ -64,7 +62,8 @@ class YellowSetup {
if ($status=="ok") $status = $this->updateFeature($feature)==200 ? "ok" : "error";
if ($status=="ok") $status = $this->updateContent($language, "Home", "/")==200 ? "ok" : "error";
if ($status=="ok") $status = $this->updateContent($language, "About", "/about/")==200 ? "ok" : "error";
- if ($status=="ok") $status = $this->updateConfig($this->getConfigData()) ? "done" : "error";
+ if ($status=="ok") $status = $this->updateConfig($this->getConfigData()) ? "ok" : "error";
+ if ($status=="ok") $status = $this->removeSetup() ? "done" : "error";
if ($status=="done") {
$location = $this->yellow->lookup->normaliseUrl($scheme, $address, $base, $location);
$statusCode = $this->yellow->sendStatus(303, $location);
@@ -117,10 +116,6 @@ class YellowSetup {
if ($statusCode==200) {
$this->yellow->text->load($this->yellow->config->get("pluginDir").$this->yellow->config->get("languageFile"), "");
}
- if ($statusCode==200 && !$this->yellow->toolbox->deleteFile($path)) {
- $statusCode = 500;
- $this->yellow->page->error($statusCode, "Can't delete file '$path'!");
- }
} else {
$statusCode = 500;
$this->yellow->page->error(500, "Can't open file '$path'!");
@@ -154,16 +149,6 @@ class YellowSetup {
}
}
}
- if ($statusCode==200) {
- foreach ($this->yellow->toolbox->getDirectoryEntries($path, "/^.*\.zip$/", true, false) as $entry) {
- if (preg_match("/^setup-(.*?)\./", basename($entry), $matches)) {
- if (!$this->yellow->toolbox->deleteFile($entry)) {
- $statusCode = 500;
- $this->yellow->page->error($statusCode, "Can't delete file '$entry'!");
- }
- }
- }
- }
return $statusCode;
}
@@ -198,6 +183,28 @@ class YellowSetup {
return $statusCode;
}
+ // Remove setup
+ public function removeSetup() {
+ $statusCode = 200;
+ if (function_exists("opcache_reset")) opcache_reset();
+ $path = $this->yellow->config->get("pluginDir");
+ foreach ($this->yellow->toolbox->getDirectoryEntries($path, "/^.*\.zip$/", true, false) as $entry) {
+ if (preg_match("/^setup-(.*?)\./", basename($entry), $matches)) {
+ if (!$this->yellow->toolbox->deleteFile($entry)) {
+ $statusCode = 500;
+ $this->yellow->page->error($statusCode, "Can't delete file '$entry'!");
+ }
+ }
+ }
+ $path = $this->yellow->config->get("pluginDir")."setup.php";
+ if ($statusCode==200 && !$this->yellow->toolbox->deleteFile($path)) {
+ $statusCode = 500;
+ $this->yellow->page->error($statusCode, "Can't delete file '$path'!");
+ }
+ if ($statusCode==200) unset($this->yellow->plugins->plugins["setup"]);
+ return $statusCode;
+ }
+
// Check web server rewrite
public function checkServerRewrite($scheme, $address, $base, $location, $fileName) {
$curlHandle = curl_init();
@@ -241,10 +248,9 @@ class YellowSetup {
if (!$this->yellow->config->isExisting($key)) continue;
$data[$key] = trim($value);
}
- if ($this->yellow->config->get("sitename")=="Datenstrom Yellow") $data["sitename"] = $_REQUEST["name"];
$data["timezone"] = $this->yellow->toolbox->getTimezone();
$data["staticUrl"] = $this->yellow->toolbox->getServerUrl();
- $data["setupMode"] = "0";
+ if ($this->yellow->isCommandLine()) $data["staticUrl"] = getenv("URL");
return $data;
}