Updated extension, new way of handling updates
This commit is contained in:
parent
6bd0173204
commit
c9cac5ec76
|
@ -584,12 +584,12 @@ Developer: Steffen Schultz
|
|||
system/extensions/private.php: private.php, create, update
|
||||
|
||||
Extension: Publish
|
||||
Version: 0.8.70
|
||||
Version: 0.8.71
|
||||
Description: Make and publish extensions.
|
||||
DownloadUrl: https://github.com/annaesvensson/yellow-publish/archive/refs/heads/main.zip
|
||||
DocumentationUrl: https://github.com/annaesvensson/yellow-publish
|
||||
DocumentationLanguage: en, de, sv
|
||||
Published: 2023-12-11 18:37:01
|
||||
Published: 2024-03-20 17:52:19
|
||||
Developer: Anna Svensson
|
||||
Tag: feature
|
||||
system/extensions/publish.php: publish.php, create, update
|
||||
|
@ -745,12 +745,12 @@ Tag: language
|
|||
system/extensions/turkish.php: turkish.php, create, update
|
||||
|
||||
Extension: Update
|
||||
Version: 0.8.97
|
||||
Version: 0.8.98
|
||||
Description: Keep your website up to date.
|
||||
DownloadUrl: https://github.com/annaesvensson/yellow-update/archive/refs/heads/main.zip
|
||||
DocumentationUrl: https://github.com/annaesvensson/yellow-update
|
||||
DocumentationLanguage: en, de, sv
|
||||
Published: 2023-11-24 21:13:15
|
||||
Published: 2024-03-20 17:51:59
|
||||
Developer: Anna Svensson
|
||||
Tag: feature
|
||||
system/extensions/update.php: update.php, create, update
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
# Datenstrom Yellow update settings
|
||||
# Datenstrom Yellow update settings for installed extensions
|
||||
|
||||
Extension: Core
|
||||
Version: 0.8.126
|
||||
|
@ -119,12 +119,12 @@ system/themes/stockholm-opensans-light.woff: stockholm-opensans-light.woff, crea
|
|||
system/themes/stockholm-opensans-regular.woff: stockholm-opensans-regular.woff, create, update, careful
|
||||
|
||||
Extension: Update
|
||||
Version: 0.8.97
|
||||
Version: 0.8.98
|
||||
Description: Keep your website up to date.
|
||||
DownloadUrl: https://github.com/annaesvensson/yellow-update/archive/refs/heads/main.zip
|
||||
DocumentationUrl: https://github.com/annaesvensson/yellow-update
|
||||
DocumentationLanguage: en, de, sv
|
||||
Published: 2023-11-24 21:13:15
|
||||
Published: 2024-03-20 17:51:59
|
||||
Developer: Anna Svensson
|
||||
Tag: feature
|
||||
system/extensions/update.php: update.php, create, update
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
# Datenstrom Yellow update settings
|
||||
# Datenstrom Yellow update settings for available extensions
|
||||
|
||||
Extension: Anchor
|
||||
Version: 0.8.15
|
||||
|
@ -584,12 +584,12 @@ Developer: Steffen Schultz
|
|||
system/extensions/private.php: private.php, create, update
|
||||
|
||||
Extension: Publish
|
||||
Version: 0.8.70
|
||||
Version: 0.8.71
|
||||
Description: Make and publish extensions.
|
||||
DownloadUrl: https://github.com/annaesvensson/yellow-publish/archive/refs/heads/main.zip
|
||||
DocumentationUrl: https://github.com/annaesvensson/yellow-publish
|
||||
DocumentationLanguage: en, de, sv
|
||||
Published: 2023-12-11 18:37:01
|
||||
Published: 2024-03-20 17:52:19
|
||||
Developer: Anna Svensson
|
||||
Tag: feature
|
||||
system/extensions/publish.php: publish.php, create, update
|
||||
|
@ -745,12 +745,12 @@ Tag: language
|
|||
system/extensions/turkish.php: turkish.php, create, update
|
||||
|
||||
Extension: Update
|
||||
Version: 0.8.97
|
||||
Version: 0.8.98
|
||||
Description: Keep your website up to date.
|
||||
DownloadUrl: https://github.com/annaesvensson/yellow-update/archive/refs/heads/main.zip
|
||||
DocumentationUrl: https://github.com/annaesvensson/yellow-update
|
||||
DocumentationLanguage: en, de, sv
|
||||
Published: 2023-11-24 21:13:15
|
||||
Published: 2024-03-20 17:51:59
|
||||
Developer: Anna Svensson
|
||||
Tag: feature
|
||||
system/extensions/update.php: update.php, create, update
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
// Update extension, https://github.com/annaesvensson/yellow-update
|
||||
|
||||
class YellowUpdate {
|
||||
const VERSION = "0.8.97";
|
||||
const VERSION = "0.8.98";
|
||||
const PRIORITY = "2";
|
||||
public $yellow; // access to API
|
||||
public $extensions; // number of extensions
|
||||
|
@ -11,8 +11,8 @@ class YellowUpdate {
|
|||
public function onLoad($yellow) {
|
||||
$this->yellow = $yellow;
|
||||
$this->yellow->system->setDefault("updateCurrentRelease", "none");
|
||||
$this->yellow->system->setDefault("updateLatestUrl", "auto");
|
||||
$this->yellow->system->setDefault("updateLatestFile", "update-latest.ini");
|
||||
$this->yellow->system->setDefault("updateAvailableUrl", "auto");
|
||||
$this->yellow->system->setDefault("updateAvailableFile", "update-available.ini");
|
||||
$this->yellow->system->setDefault("updateCurrentFile", "update-current.ini");
|
||||
$this->yellow->system->setDefault("updateExtensionFile", "extension.ini");
|
||||
$this->yellow->system->setDefault("updateEventPending", "none");
|
||||
|
@ -73,7 +73,7 @@ class YellowUpdate {
|
|||
$output = null;
|
||||
if ($name=="yellow" && $type=="inline") {
|
||||
if ($text=="about") {
|
||||
list($dummy, $settingsCurrent) = $this->getExtensionSettings(false);
|
||||
list($dummy, $settingsCurrent) = $this->getExtensionSettings(true);
|
||||
$output = "Datenstrom Yellow ".YellowCore::RELEASE."<br />\n";
|
||||
foreach ($settingsCurrent as $key=>$value) {
|
||||
$output .= ucfirst($key)." ".$value->get("version")."<br />\n";
|
||||
|
@ -117,7 +117,7 @@ class YellowUpdate {
|
|||
if ($statusCode>=400) echo "ERROR checking extensions: ".$this->yellow->page->errorMessage."\n";
|
||||
} else {
|
||||
echo "Datenstrom Yellow ".YellowCore::RELEASE."\n";
|
||||
list($statusCode, $settingsCurrent) = $this->getExtensionSettings(false);
|
||||
list($statusCode, $settingsCurrent) = $this->getExtensionSettings(true);
|
||||
foreach ($settingsCurrent as $key=>$value) {
|
||||
echo ucfirst($key)." ".$value->get("version")."\n";
|
||||
}
|
||||
|
@ -137,8 +137,8 @@ class YellowUpdate {
|
|||
echo "Yellow $command: Website ".($statusCode!=200 ? "not " : "")."updated";
|
||||
echo ", $this->extensions extension".($this->extensions!=1 ? "s" : "")." installed\n";
|
||||
} else {
|
||||
list($statusCode, $settingsLatest) = $this->getExtensionSettings(true);
|
||||
foreach ($settingsLatest as $key=>$value) {
|
||||
list($statusCode, $settingsAvailable) = $this->getExtensionSettings(false);
|
||||
foreach ($settingsAvailable as $key=>$value) {
|
||||
echo ucfirst($key)." - ".$this->getExtensionDescription($key, $value)."\n";
|
||||
}
|
||||
if ($statusCode!=200) echo "ERROR checking extensions: ".$this->yellow->page->errorMessage."\n";
|
||||
|
@ -157,7 +157,7 @@ class YellowUpdate {
|
|||
echo "Yellow $command: Website ".($statusCode!=200 ? "not " : "")."updated";
|
||||
echo ", $this->extensions extension".($this->extensions!=1 ? "s" : "")." uninstalled\n";
|
||||
} else {
|
||||
list($statusCode, $settingsCurrent) = $this->getExtensionSettings(false);
|
||||
list($statusCode, $settingsCurrent) = $this->getExtensionSettings(true);
|
||||
foreach ($settingsCurrent as $key=>$value) {
|
||||
echo ucfirst($key)." - ".$this->getExtensionDescription($key, $value)."\n";
|
||||
}
|
||||
|
@ -657,7 +657,7 @@ class YellowUpdate {
|
|||
// Return extension about information
|
||||
public function getExtensionAboutInformation($extensions) {
|
||||
$settings = array();
|
||||
list($statusCode, $settingsCurrent) = $this->getExtensionSettings(false);
|
||||
list($statusCode, $settingsCurrent) = $this->getExtensionSettings(true);
|
||||
$settingsCurrent["Datenstrom Yellow"] = new YellowArray();
|
||||
$settingsCurrent["Datenstrom Yellow"]["version"] = YellowCore::RELEASE;
|
||||
$settingsCurrent["Datenstrom Yellow"]["description"] = "Datenstrom Yellow is for people who make small websites.";
|
||||
|
@ -683,14 +683,14 @@ class YellowUpdate {
|
|||
// Return extension install information
|
||||
public function getExtensionInstallInformation($extensions) {
|
||||
$settings = array();
|
||||
list($statusCodeCurrent, $settingsCurrent) = $this->getExtensionSettings(false);
|
||||
list($statusCodeLatest, $settingsLatest) = $this->getExtensionSettings(true);
|
||||
$statusCode = max($statusCodeCurrent, $statusCodeLatest);
|
||||
list($statusCodeCurrent, $settingsCurrent) = $this->getExtensionSettings(true);
|
||||
list($statusCodeAvailable, $settingsAvailable) = $this->getExtensionSettings(false);
|
||||
$statusCode = max($statusCodeCurrent, $statusCodeAvailable);
|
||||
foreach ($extensions as $extension) {
|
||||
$found = false;
|
||||
foreach ($settingsLatest as $key=>$value) {
|
||||
foreach ($settingsAvailable as $key=>$value) {
|
||||
if (strtoloweru($key)==strtoloweru($extension)) {
|
||||
if (!$settingsCurrent->isExisting($key)) $settings[$key] = $settingsLatest[$key];
|
||||
if (!$settingsCurrent->isExisting($key)) $settings[$key] = $settingsAvailable[$key];
|
||||
$found = true;
|
||||
break;
|
||||
}
|
||||
|
@ -706,7 +706,7 @@ class YellowUpdate {
|
|||
// Return extension about information
|
||||
public function getExtensionUninstallInformation($extensions, $extensionsProtected = "") {
|
||||
$settings = array();
|
||||
list($statusCode, $settingsCurrent) = $this->getExtensionSettings(false);
|
||||
list($statusCode, $settingsCurrent) = $this->getExtensionSettings(true);
|
||||
foreach ($extensions as $extension) {
|
||||
$found = false;
|
||||
foreach ($settingsCurrent as $key=>$value) {
|
||||
|
@ -731,16 +731,16 @@ class YellowUpdate {
|
|||
// Return extension update information
|
||||
public function getExtensionUpdateInformation($extensions) {
|
||||
$settings = array();
|
||||
list($statusCodeCurrent, $settingsCurrent) = $this->getExtensionSettings(false);
|
||||
list($statusCodeLatest, $settingsLatest) = $this->getExtensionSettings(true);
|
||||
$statusCode = max($statusCodeCurrent, $statusCodeLatest);
|
||||
list($statusCodeCurrent, $settingsCurrent) = $this->getExtensionSettings(true);
|
||||
list($statusCodeAvailable, $settingsAvailable) = $this->getExtensionSettings(false);
|
||||
$statusCode = max($statusCodeCurrent, $statusCodeAvailable);
|
||||
if (in_array("all", $extensions)) {
|
||||
foreach ($settingsCurrent as $key=>$value) {
|
||||
if ($settingsLatest->isExisting($key)) {
|
||||
if ($settingsAvailable->isExisting($key)) {
|
||||
$versionCurrent = $settingsCurrent[$key]->get("version");
|
||||
$versionLatest = $settingsLatest[$key]->get("version");
|
||||
if (strnatcasecmp($versionCurrent, $versionLatest)<0) {
|
||||
$settings[$key] = $settingsLatest[$key];
|
||||
$versionAvailable = $settingsAvailable[$key]->get("version");
|
||||
if (strnatcasecmp($versionCurrent, $versionAvailable)<0) {
|
||||
$settings[$key] = $settingsAvailable[$key];
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -748,11 +748,11 @@ class YellowUpdate {
|
|||
foreach ($extensions as $extension) {
|
||||
$found = false;
|
||||
foreach ($settingsCurrent as $key=>$value) {
|
||||
if (strtoloweru($key)==strtoloweru($extension) && $settingsLatest->isExisting($key)) {
|
||||
if (strtoloweru($key)==strtoloweru($extension) && $settingsAvailable->isExisting($key)) {
|
||||
$versionCurrent = $settingsCurrent[$key]->get("version");
|
||||
$versionLatest = $settingsLatest[$key]->get("version");
|
||||
if (strnatcasecmp($versionCurrent, $versionLatest)<0) {
|
||||
$settings[$key] = $settingsLatest[$key];
|
||||
$versionAvailable = $settingsAvailable[$key]->get("version");
|
||||
if (strnatcasecmp($versionCurrent, $versionAvailable)<0) {
|
||||
$settings[$key] = $settingsAvailable[$key];
|
||||
}
|
||||
$found = true;
|
||||
break;
|
||||
|
@ -768,10 +768,10 @@ class YellowUpdate {
|
|||
}
|
||||
|
||||
// Return extension settings
|
||||
public function getExtensionSettings($latest) {
|
||||
public function getExtensionSettings($current) {
|
||||
$statusCode = 200;
|
||||
$settings = array();
|
||||
if (!$latest) {
|
||||
if ($current) {
|
||||
$fileNameCurrent = $this->yellow->system->get("coreExtensionDirectory").$this->yellow->system->get("updateCurrentFile");
|
||||
$fileData = $this->yellow->toolbox->readFile($fileNameCurrent);
|
||||
$settings = $this->yellow->toolbox->getTextSettings($fileData, "extension");
|
||||
|
@ -784,18 +784,18 @@ class YellowUpdate {
|
|||
$settings[$key]["version"] = $value["version"];
|
||||
}
|
||||
} else {
|
||||
$fileNameLatest = $this->yellow->system->get("coreExtensionDirectory").$this->yellow->system->get("updateLatestFile");
|
||||
$expire = $this->yellow->toolbox->getFileModified($fileNameLatest) + 60*10;
|
||||
$fileNameAvailable = $this->yellow->system->get("coreExtensionDirectory").$this->yellow->system->get("updateAvailableFile");
|
||||
$expire = $this->yellow->toolbox->getFileModified($fileNameAvailable) + 60*10;
|
||||
if ($expire<=time()) {
|
||||
$url = $this->yellow->system->get("updateLatestUrl");
|
||||
if ($url=="auto") $url = "https://raw.githubusercontent.com/datenstrom/yellow/main/system/extensions/update-latest.ini";
|
||||
$url = $this->yellow->system->get("updateAvailableUrl");
|
||||
if ($url=="auto") $url = "https://raw.githubusercontent.com/datenstrom/yellow/main/system/extensions/update-available.ini";
|
||||
list($statusCode, $fileData) = $this->getExtensionFile($url);
|
||||
if ($statusCode==200 && !$this->yellow->toolbox->createFile($fileNameLatest, $fileData)) {
|
||||
if ($statusCode==200 && !$this->yellow->toolbox->createFile($fileNameAvailable, $fileData)) {
|
||||
$statusCode = 500;
|
||||
$this->yellow->page->error($statusCode, "Can't write file '$fileNameLatest'!");
|
||||
$this->yellow->page->error($statusCode, "Can't write file '$fileNameAvailable'!");
|
||||
}
|
||||
}
|
||||
$fileData = $this->yellow->toolbox->readFile($fileNameLatest);
|
||||
$fileData = $this->yellow->toolbox->readFile($fileNameAvailable);
|
||||
$settings = $this->yellow->toolbox->getTextSettings($fileData, "extension");
|
||||
}
|
||||
$settings->uksort("strnatcasecmp");
|
||||
|
|
Loading…
Reference in a new issue