diff --git a/system/extensions/install-language.bin b/system/extensions/install-language.bin index 2d237ad..593ed86 100644 Binary files a/system/extensions/install-language.bin and b/system/extensions/install-language.bin differ diff --git a/system/extensions/install.php b/system/extensions/install.php index 7dfb13a..3f1515a 100755 --- a/system/extensions/install.php +++ b/system/extensions/install.php @@ -2,7 +2,7 @@ // Install extension, https://github.com/annaesvensson/yellow-install class YellowInstall { - const VERSION = "0.8.86"; + const VERSION = "0.8.87"; const PRIORITY = "1"; public $yellow; // access to API @@ -394,8 +394,8 @@ class YellowInstall { $settings[$key] = trim($value); } if ($this->yellow->system->get("sitename")=="Datenstrom Yellow") $settings["sitename"] = $this->yellow->toolbox->detectServerSitename(); - if ($this->yellow->system->get("commandStaticUrl")=="auto" && getenv("URL")!==false) $settings["commandStaticUrl"] = getenv("URL"); - if ($this->yellow->system->get("commandStaticUrl")=="auto" && $skipInstallation) $settings["commandStaticUrl"] = "http://localhost:8000/"; + if ($this->yellow->system->get("staticUrl")=="auto" && getenv("URL")!==false) $settings["staticUrl"] = getenv("URL"); + if ($this->yellow->system->get("staticUrl")=="auto" && $skipInstallation) $settings["staticUrl"] = "http://localhost:8000/"; if ($this->yellow->system->get("coreTimezone")=="UTC") $settings["coreTimezone"] = $this->yellow->toolbox->detectServerTimezone(); if ($this->yellow->system->get("updateEventPending")=="none") $settings["updateEventPending"] = "website/install"; $settings["updateCurrentRelease"] = YellowCore::RELEASE; diff --git a/system/extensions/command.php b/system/extensions/static.php similarity index 91% rename from system/extensions/command.php rename to system/extensions/static.php index 0c3199b..12dd6ae 100644 --- a/system/extensions/command.php +++ b/system/extensions/static.php @@ -1,8 +1,8 @@ yellow = $yellow; - $this->yellow->system->setDefault("commandStaticUrl", "auto"); - $this->yellow->system->setDefault("commandStaticDirectory", "public/"); - $this->yellow->system->setDefault("commandStaticDefaultFile", "index.html"); - $this->yellow->system->setDefault("commandStaticErrorFile", "404.html"); + $this->yellow->system->setDefault("staticUrl", "auto"); + $this->yellow->system->setDefault("staticDirectory", "public/"); + $this->yellow->system->setDefault("staticDefaultFile", "index.html"); + $this->yellow->system->setDefault("staticErrorFile", "404.html"); } // Handle request @@ -52,7 +52,7 @@ class YellowCommand { $this->files = 0; $this->errors = 1; $fileName = $this->yellow->system->get("coreExtensionDirectory").$this->yellow->system->get("coreSystemFile"); - echo "ERROR building files: Please configure CommandStaticUrl in file '$fileName'!\n"; + echo "ERROR building files: Please configure StaticUrl in file '$fileName'!\n"; } echo "Yellow $command: $this->files file".($this->files!=1 ? "s" : ""); echo ", $this->errors error".($this->errors!=1 ? "s" : "")."\n"; @@ -65,11 +65,11 @@ class YellowCommand { // Build static files public function buildStaticFiles($path, $locationFilter) { - $path = rtrim(is_string_empty($path) ? $this->yellow->system->get("commandStaticDirectory") : $path, "/"); + $path = rtrim(is_string_empty($path) ? $this->yellow->system->get("staticDirectory") : $path, "/"); $this->files = $this->errors = 0; $this->locationsArguments = $this->locationsArgumentsPagination = array(); $statusCode = is_string_empty($locationFilter) ? $this->cleanStaticFiles($path, $locationFilter) : 200; - $staticUrl = $this->yellow->system->get("commandStaticUrl"); + $staticUrl = $this->yellow->system->get("staticUrl"); list($scheme, $address, $base) = $this->yellow->lookup->getUrlInformation($staticUrl); $locations = $this->getContentLocations(); $filesEstimated = count($locations); @@ -116,7 +116,7 @@ class YellowCommand { $this->yellow->page->fileName = substru($location, 1); if (!is_readable($this->yellow->page->fileName)) { ob_start(); - $staticUrl = $this->yellow->system->get("commandStaticUrl"); + $staticUrl = $this->yellow->system->get("staticUrl"); list($scheme, $address, $base) = $this->yellow->lookup->getUrlInformation($staticUrl); $statusCode = $this->requestStaticFile($scheme, $address, $base, $location); if ($statusCode<400 || $error) { @@ -136,7 +136,7 @@ class YellowCommand { echo "\rERROR building location '$location', ".$this->yellow->page->getStatusCode(true)."\n"; } if ($this->yellow->system->get("coreDebugMode")>=1) { - echo "YellowCommand::buildStaticFile status:$statusCode location:$location
\n"; + echo "YellowStatic::buildStaticFile status:$statusCode location:$location
\n"; } return $statusCode; } @@ -211,7 +211,7 @@ class YellowCommand { if (!isset($this->locationsArguments[$location])) { $this->locationsArguments[$location] = $location; if ($this->yellow->system->get("coreDebugMode")>=2) { - echo "YellowCommand::analyseLocations detected location:$location
\n"; + echo "YellowStatic::analyseLocations detected location:$location
\n"; } } } else { @@ -219,7 +219,7 @@ class YellowCommand { if (!isset($this->locationsArgumentsPagination[$location])) { $this->locationsArgumentsPagination[$location] = $location; if ($this->yellow->system->get("coreDebugMode")>=2) { - echo "YellowCommand::analyseLocations detected location:$location
\n"; + echo "YellowStatic::analyseLocations detected location:$location
\n"; } } } @@ -238,7 +238,7 @@ class YellowCommand { $this->links = 0; $this->errors = 1; $fileName = $this->yellow->system->get("coreExtensionDirectory").$this->yellow->system->get("coreSystemFile"); - echo "ERROR checking files: Please configure CommandStaticUrl in file '$fileName'!\n"; + echo "ERROR checking files: Please configure staticUrl in file '$fileName'!\n"; } echo "Yellow $command: $this->links link".($this->links!=1 ? "s" : ""); echo ", $this->errors error".($this->errors!=1 ? "s" : "")."\n"; @@ -251,9 +251,9 @@ class YellowCommand { // Check static files for broken links public function checkStaticFiles($path, $locationFilter) { - $path = rtrim(is_string_empty($path) ? $this->yellow->system->get("commandStaticDirectory") : $path, "/"); + $path = rtrim(is_string_empty($path) ? $this->yellow->system->get("staticDirectory") : $path, "/"); $this->links = $this->errors = 0; - $regex = "/^[^.]+$|".$this->yellow->system->get("commandStaticDefaultFile")."$/"; + $regex = "/^[^.]+$|".$this->yellow->system->get("staticDefaultFile")."$/"; $fileNames = $this->yellow->toolbox->getDirectoryEntriesRecursive($path, $regex, false, false); list($statusCodeFiles, $links) = $this->analyseLinks($path, $locationFilter, $fileNames); list($statusCodeLinks, $broken, $redirect) = $this->analyseStatus($path, $links); @@ -269,7 +269,7 @@ class YellowCommand { $statusCode = 200; $links = array(); if (!is_array_empty($fileNames)) { - $staticUrl = $this->yellow->system->get("commandStaticUrl"); + $staticUrl = $this->yellow->system->get("staticUrl"); list($scheme, $address, $base) = $this->yellow->lookup->getUrlInformation($staticUrl); foreach ($fileNames as $fileName) { if (is_readable($fileName)) { @@ -288,7 +288,7 @@ class YellowCommand { $links[$url] .= ",".$locationSource; } if ($this->yellow->system->get("coreDebugMode")>=2) { - echo "YellowCommand::analyseLinks detected url:$url
\n"; + echo "YellowStatic::analyseLinks detected url:$url
\n"; } } elseif (substru($location, 0, 1)=="/") { $url = "$scheme://$address$location"; @@ -298,12 +298,12 @@ class YellowCommand { $links[$url] .= ",".$locationSource; } if ($this->yellow->system->get("coreDebugMode")>=2) { - echo "YellowCommand::analyseLinks detected url:$url
\n"; + echo "YellowStatic::analyseLinks detected url:$url
\n"; } } } if ($this->yellow->system->get("coreDebugMode")>=1) { - echo "YellowCommand::analyseLinks location:$locationSource
\n"; + echo "YellowStatic::analyseLinks location:$locationSource
\n"; } } else { $statusCode = 500; @@ -324,7 +324,7 @@ class YellowCommand { public function analyseStatus($path, $links) { $statusCode = 200; $remote = $broken = $redirect = $data = array(); - $staticUrl = $this->yellow->system->get("commandStaticUrl"); + $staticUrl = $this->yellow->system->get("staticUrl"); $staticUrlLength = strlenu(rtrim($staticUrl, "/")); list($scheme, $address, $base) = $this->yellow->lookup->getUrlInformation($staticUrl); $staticLocations = $this->getContentLocations(true); @@ -341,7 +341,7 @@ class YellowCommand { uksort($remote, "strnatcasecmp"); foreach ($remote as $url=>$value) { echo "\rChecking static website ".$this->getProgressPercent(++$remoteNow, count($remote), 5, 95)."%... "; - if ($this->yellow->system->get("coreDebugMode")>=1) echo "YellowCommand::analyseStatus url:$url\n"; + if ($this->yellow->system->get("coreDebugMode")>=1) echo "YellowStatic::analyseStatus url:$url\n"; $referer = "$scheme://$address$base".(($pos = strposu($value, ",")) ? substru($value, 0, $pos) : $value); $statusCodeUrl = $this->getLinkStatus($url, $referer); if ($statusCodeUrl!=200) { @@ -396,7 +396,7 @@ class YellowCommand { // Clean static files and directories public function cleanStaticFiles($path, $location) { $statusCode = 200; - $path = rtrim(is_string_empty($path) ? $this->yellow->system->get("commandStaticDirectory") : $path, "/"); + $path = rtrim(is_string_empty($path) ? $this->yellow->system->get("staticDirectory") : $path, "/"); if (is_string_empty($location)) { foreach ($this->yellow->extension->data as $key=>$value) { if (method_exists($value["object"], "onUpdate")) $value["object"]->onUpdate("clean"); @@ -443,7 +443,7 @@ class YellowCommand { if (is_dir($this->yellow->system->get("coreCacheDirectory"))) { $location .= $this->yellow->toolbox->getLocationArguments(); $fileName = rtrim($this->yellow->system->get("coreCacheDirectory"), "/").$location; - if (!$this->yellow->lookup->isFileLocation($location)) $fileName .= $this->yellow->system->get("commandStaticDefaultFile"); + if (!$this->yellow->lookup->isFileLocation($location)) $fileName .= $this->yellow->system->get("staticDefaultFile"); if (is_file($fileName) && is_readable($fileName) && !$this->yellow->isCommandLine()) { $statusCode = $this->yellow->sendFile(200, $fileName, true); } @@ -453,17 +453,17 @@ class YellowCommand { // Check static settings public function checkStaticSettings() { - return preg_match("/^(http|https):/", $this->yellow->system->get("commandStaticUrl")); + return preg_match("/^(http|https):/", $this->yellow->system->get("staticUrl")); } // Check static directory public function checkStaticDirectory($path) { $ok = false; if (!is_string_empty($path)) { - if ($path==rtrim($this->yellow->system->get("commandStaticDirectory"), "/")) $ok = true; + if ($path==rtrim($this->yellow->system->get("staticDirectory"), "/")) $ok = true; if ($path==rtrim($this->yellow->system->get("coreCacheDirectory"), "/")) $ok = true; if ($path==rtrim($this->yellow->system->get("coreTrashDirectory"), "/")) $ok = true; - if (is_file("$path/".$this->yellow->system->get("commandStaticDefaultFile"))) $ok = true; + if (is_file("$path/".$this->yellow->system->get("staticDefaultFile"))) $ok = true; if (is_file("$path/yellow.php")) $ok = false; } return $ok; @@ -485,9 +485,9 @@ class YellowCommand { public function getStaticFile($path, $location, $statusCode) { if ($statusCode<400) { $fileName = $path.$location; - if (!$this->yellow->lookup->isFileLocation($location)) $fileName .= $this->yellow->system->get("commandStaticDefaultFile"); + if (!$this->yellow->lookup->isFileLocation($location)) $fileName .= $this->yellow->system->get("staticDefaultFile"); } elseif ($statusCode==404) { - $fileName = $path."/".$this->yellow->system->get("commandStaticErrorFile"); + $fileName = $path."/".$this->yellow->system->get("staticErrorFile"); } else { $fileName = $path."/error.html"; } @@ -497,8 +497,8 @@ class YellowCommand { // Return static location public function getStaticLocation($path, $fileName) { $location = substru($fileName, strlenu($path)); - if (basename($location)==$this->yellow->system->get("commandStaticDefaultFile")) { - $defaultFileLength = strlenu($this->yellow->system->get("commandStaticDefaultFile")); + if (basename($location)==$this->yellow->system->get("staticDefaultFile")) { + $defaultFileLength = strlenu($this->yellow->system->get("staticDefaultFile")); $location = substru($location, 0, -$defaultFileLength); } return $location; @@ -516,7 +516,7 @@ class YellowCommand { // Return content locations public function getContentLocations($includeAll = false) { $locations = array(); - $staticUrl = $this->yellow->system->get("commandStaticUrl"); + $staticUrl = $this->yellow->system->get("staticUrl"); list($scheme, $address, $base) = $this->yellow->lookup->getUrlInformation($staticUrl); $this->yellow->page->setRequestInformation($scheme, $address, $base, "", "", false); foreach ($this->yellow->content->index(true, true) as $page) { @@ -573,7 +573,7 @@ class YellowCommand { public function getExtraLocations($path) { $locations = array(); $pathIgnore = "($path/|". - $this->yellow->system->get("commandStaticDirectory")."|". + $this->yellow->system->get("staticDirectory")."|". $this->yellow->system->get("coreContentDirectory")."|". $this->yellow->system->get("coreMediaDirectory")."|". $this->yellow->system->get("coreSystemDirectory").")"; @@ -591,7 +591,7 @@ class YellowCommand { $curlHandle = curl_init(); curl_setopt($curlHandle, CURLOPT_URL, $url); curl_setopt($curlHandle, CURLOPT_REFERER, $referer); - curl_setopt($curlHandle, CURLOPT_USERAGENT, "Mozilla/5.0 (compatible; YellowCommand/".YellowCommand::VERSION."; LinkChecker)"); + curl_setopt($curlHandle, CURLOPT_USERAGENT, "Mozilla/5.0 (compatible; YellowStatic/".YellowStatic::VERSION."; LinkChecker)"); curl_setopt($curlHandle, CURLOPT_NOBODY, 1); curl_setopt($curlHandle, CURLOPT_CONNECTTIMEOUT, 30); curl_setopt($curlHandle, CURLOPT_SSL_VERIFYPEER, false); @@ -600,7 +600,7 @@ class YellowCommand { curl_close($curlHandle); if ($statusCode<200) $statusCode = 404; if ($this->yellow->system->get("coreDebugMode")>=2) { - echo "YellowCommand::getLinkStatus status:$statusCode url:$url
\n"; + echo "YellowStatic::getLinkStatus status:$statusCode url:$url
\n"; } return $statusCode; } diff --git a/system/extensions/update-current.ini b/system/extensions/update-current.ini index 1350c35..6ed2443 100755 --- a/system/extensions/update-current.ini +++ b/system/extensions/update-current.ini @@ -1,15 +1,5 @@ # Datenstrom Yellow update settings -Extension: Command -Version: 0.8.45 -Description: Command line of the website. -DocumentationUrl: https://github.com/annaesvensson/yellow-command -DownloadUrl: https://github.com/datenstrom/yellow-extensions/raw/main/downloads/command.zip -Published: 2022-11-05 11:25:18 -Developer: Anna Svensson -Tag: feature -system/extensions/command.php: command.php, create, update - Extension: Core Version: 0.8.107 Description: Core functionality of the website. @@ -54,11 +44,11 @@ media/images/photo.jpg: photo.jpg, create, optional media/thumbnails/photo-100x40.jpg: photo-100x40.jpg, create, optional Extension: Install -Version: 0.8.86 +Version: 0.8.87 Description: Install a brand new, shiny website. DocumentationUrl: https://github.com/annaesvensson/yellow-install DownloadUrl: https://github.com/datenstrom/yellow-extensions/raw/main/downloads/install.zip -Published: 2022-11-18 19:44:48 +Published: 2023-04-13 22:34:54 Developer: Anna Svensson Status: unlisted system/extensions/install.php: install.php, create @@ -95,6 +85,16 @@ Developer: Anna Svensson, Steffen Schultz Tag: feature system/extensions/meta.php: meta.php, create, update +Extension: Static +Version: 0.8.46 +Description: Build a static website. +DocumentationUrl: https://github.com/annaesvensson/yellow-static +DownloadUrl: https://github.com/datenstrom/yellow-extensions/raw/main/downloads/static.zip +Published: 2023-04-13 20:02:44 +Developer: Anna Svensson +Tag: feature +system/extensions/static.php: static.php, create, update + Extension: Serve Version: 0.8.22 Description: Built-in web server.