mikuli.cz

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

commit 669209e972e0ea24d89a6c0519a9413031fb68d9
parent c530f3b89f865c0cb543beeff855f59fe17ebf5d
Author: markseu <mark2011@mayberg.se>
Date:   Sat,  7 Oct 2017 17:35:19 +0200

System update (core and API)

Diffstat:
Msystem/config/config.ini | 3+++
Msystem/plugins/core.php | 88+++++++++++++++++++++++++++++++++++++++++++------------------------------------
Msystem/plugins/update.php | 8+++-----
3 files changed, 54 insertions(+), 45 deletions(-)

diff --git a/system/config/config.ini b/system/config/config.ini @@ -12,11 +12,13 @@ StaticDefaultFile: index.html StaticErrorFile: 404.html StaticDir: cache/ MediaLocation: /media/ +DownloadLocation: /media/downloads/ ImageLocation: /media/images/ PluginLocation: /media/plugins/ ThemeLocation: /media/themes/ AssetLocation: /media/themes/assets/ MediaDir: media/ +DownloadDir: media/downloads/ ImageDir: media/images/ SystemDir: system/ ConfigDir: system/config/ @@ -34,6 +36,7 @@ ContentDefaultFile: page.txt ContentExtension: .txt ConfigExtension: .ini DownloadExtension: .download +UploadExtension: .upload TextFile: text.ini LanguageFile: language-(.*).txt ErrorFile: page-error-(.*).txt diff --git a/system/plugins/core.php b/system/plugins/core.php @@ -38,11 +38,13 @@ class YellowCore $this->config->setDefault("staticErrorFile", "404.html"); $this->config->setDefault("staticDir", "cache/"); $this->config->setDefault("mediaLocation", "/media/"); + $this->config->setDefault("downloadLocation", "/media/downloads/"); $this->config->setDefault("imageLocation", "/media/images/"); $this->config->setDefault("pluginLocation", "/media/plugins/"); $this->config->setDefault("themeLocation", "/media/themes/"); $this->config->setDefault("assetLocation", "/media/themes/assets/"); $this->config->setDefault("mediaDir", "media/"); + $this->config->setDefault("downloadDir", "media/downloads/"); $this->config->setDefault("imageDir", "media/images/"); $this->config->setDefault("systemDir", "system/"); $this->config->setDefault("configDir", "system/config/"); @@ -60,6 +62,7 @@ class YellowCore $this->config->setDefault("contentExtension", ".txt"); $this->config->setDefault("configExtension", ".ini"); $this->config->setDefault("downloadExtension", ".download"); + $this->config->setDefault("uploadExtension", ".upload"); $this->config->setDefault("configFile", "config.ini"); $this->config->setDefault("textFile", "text.ini"); $this->config->setDefault("languageFile", "language-(.*).txt"); @@ -151,18 +154,16 @@ class YellowCore { if($this->toolbox->isRequestCleanUrl($location)) { - $statusCode = 303; $location = $location.$this->getRequestLocationArgsClean(); $location = $this->lookup->normaliseUrl($scheme, $address, $base, $location); - $this->sendStatus($statusCode, $location); + $statusCode = $this->sendStatus(303, $location); } } else { if($this->lookup->isRedirectLocation($location)) { - $statusCode = 301; $location = $this->lookup->isFileLocation($location) ? "$location/" : "/".$this->getRequestLanguage()."/"; $location = $this->lookup->normaliseUrl($scheme, $address, $base, $location); - $this->sendStatus($statusCode, $location); + $statusCode = $this->sendStatus(301, $location); } } if($statusCode==0) @@ -268,6 +269,7 @@ class YellowCore { foreach($this->page->headerData as $key=>$value) echo "YellowCore::sendStatus $key: $value<br/>\n"; } + return $statusCode; } // Handle command @@ -492,11 +494,9 @@ class YellowPage $this->yellow->config->get("serverAddress"), $this->yellow->config->get("serverBase"), rtrim($this->yellow->config->get("editLocation"), '/').$this->location)); - $this->set("pageFile", $this->yellow->lookup->getPageFile($this->fileName)); } else { $this->set("type", $this->yellow->toolbox->getFileType($this->fileName)); $this->set("modified", date("Y-m-d H:i:s", $this->yellow->toolbox->getFileModified($this->fileName))); - $this->set("pageFile", $this->yellow->lookup->getPageFile($this->fileName, true)); } if(!empty($pageError)) $this->set("pageError", $pageError); foreach($this->yellow->plugins->plugins as $key=>$value) @@ -784,12 +784,6 @@ class YellowPage return $this->yellow->pages->getChildrenRecursive($this->location, $showInvisible, $levelMax); } - // Return page collection with media files for current page - function getFiles($showInvisible = false) - { - return $this->yellow->files->index($showInvisible, true)->filter("pageFile", $this->get("pageFile")); - } - // Set page collection with additional pages for current page function setPages($pages) { @@ -2526,18 +2520,6 @@ class YellowLookup return array($scheme, $address, $base); } - // Return page file name - function getPageFile($fileName, $convertExtension = false) - { - $fileName = basename($fileName); - if($convertExtension) - { - $fileName = ($pos = strposu($fileName, '.')) ? substru($fileName, 0, $pos) : $fileName; - $fileName .= $this->yellow->config->get("contentExtension"); - } - return $fileName; - } - // Return directory location function getDirectoryLocation($location) { @@ -3034,27 +3016,53 @@ class YellowToolbox } // Copy file - function copyFile($fileNameSource, $fileNameDest, $mkdir = false) + function copyFile($fileNameSource, $fileNameDestination, $mkdir = false) { clearstatcache(); if($mkdir) { - $path = dirname($fileNameDest); + $path = dirname($fileNameDestination); if(!empty($path) && !is_dir($path)) @mkdir($path, 0777, true); } - return @copy($fileNameSource, $fileNameDest); + return @copy($fileNameSource, $fileNameDestination); } // Rename file - function renameFile($fileNameSource, $fileNameDest, $mkdir = false) + function renameFile($fileNameSource, $fileNameDestination, $mkdir = false) { clearstatcache(); if($mkdir) { - $path = dirname($fileNameDest); + $path = dirname($fileNameDestination); if(!empty($path) && !is_dir($path)) @mkdir($path, 0777, true); } - return @rename($fileNameSource, $fileNameDest); + return @rename($fileNameSource, $fileNameDestination); + } + + // Merge file + function mergeFile($fileNameSource, $fileNameDestination) + { + $ok = false; + clearstatcache(); + $fileHandleSource = @fopen($fileNameSource, "rb"); + if($fileHandleSource) + { + $fileHandleDestination = @fopen($fileNameDestination, "ab"); + if($fileHandleDestination) + { + while(true) + { + $dataBufferChunk = fread($fileHandleSource, 1024*64); + fwrite($fileHandleDestination, $dataBufferChunk); + if(feof($fileHandleSource) || $dataBufferChunk===false) break; + } + fclose($fileHandleDestination); + $ok = true; + } + fclose($fileHandleSource); + if($ok) @unlink($fileNameSource); + } + return $ok; } // Delete file @@ -3066,11 +3074,11 @@ class YellowToolbox $ok = @unlink($fileName); } else { if(!is_dir($pathTrash)) @mkdir($pathTrash, 0777, true); - $fileNameDest = $pathTrash; - $fileNameDest .= pathinfo($fileName, PATHINFO_FILENAME); - $fileNameDest .= "-".str_replace(array(" ", ":"), "-", date("Y-m-d H:i:s", filemtime($fileName))); - $fileNameDest .= ".".pathinfo($fileName, PATHINFO_EXTENSION); - $ok = @rename($fileName, $fileNameDest); + $fileNameDestination = $pathTrash; + $fileNameDestination .= pathinfo($fileName, PATHINFO_FILENAME); + $fileNameDestination .= "-".str_replace(array(" ", ":"), "-", date("Y-m-d H:i:s", filemtime($fileName))); + $fileNameDestination .= ".".pathinfo($fileName, PATHINFO_EXTENSION); + $ok = @rename($fileName, $fileNameDestination); } return $ok; } @@ -3095,10 +3103,10 @@ class YellowToolbox $ok = @rmdir($path); } else { if(!is_dir($pathTrash)) @mkdir($pathTrash, 0777, true); - $pathDest = $pathTrash; - $pathDest .= basename($path); - $pathDest .= "-".str_replace(array(" ", ":"), "-", date("Y-m-d H:i:s", filemtime($path))); - $ok = @rename($path, $pathDest); + $pathDestination = $pathTrash; + $pathDestination .= basename($path); + $pathDestination .= "-".str_replace(array(" ", ":"), "-", date("Y-m-d H:i:s", filemtime($path))); + $ok = @rename($path, $pathDestination); } return $ok; } @@ -3399,7 +3407,7 @@ class YellowToolbox $dataBufferDiff = min($dataBufferSizeMax, $dataBufferSize*2) - $dataBufferSize; $dataBufferSize += $dataBufferDiff; $dataBufferChunk = fread($fileHandle, $dataBufferDiff); - if(feof($fileHandle) || $dataBufferChunk===null) { $dataBufferSize = 0; break; } + if(feof($fileHandle) || $dataBufferChunk===false) { $dataBufferSize = 0; break; } $dataBuffer .= $dataBufferChunk; } } diff --git a/system/plugins/update.php b/system/plugins/update.php @@ -5,7 +5,7 @@ class YellowUpdate { - const VERSION = "0.7.5"; + const VERSION = "0.7.6"; var $yellow; //access to API var $updates; //number of updates @@ -569,9 +569,8 @@ class YellowUpdate $statusCode = $this->updateSoftware(); if($statusCode==200) { - $statusCode = 303; $location = $this->yellow->lookup->normaliseUrl($scheme, $address, $base, $location); - $this->yellow->sendStatus($statusCode, $location); + $statusCode = $this->yellow->sendStatus(303, $location); } } return $statusCode; @@ -634,9 +633,8 @@ class YellowUpdate } if($status=="done") { - $statusCode = 303; $location = $this->yellow->lookup->normaliseUrl($scheme, $address, $base, $location); - $this->yellow->sendStatus($statusCode, $location); + $statusCode = $this->yellow->sendStatus(303, $location); } else { $statusCode = $this->yellow->sendPage(); }