feature: plugin require more options with comma

This commit is contained in:
slawkens 2023-02-07 10:43:08 +01:00
parent 577f9b7373
commit d0c479d11d
2 changed files with 43 additions and 11 deletions

View File

@ -330,29 +330,61 @@ class Plugins {
} }
if(in_array($req, array('php-ext', 'php-extension'))) { // require php extension if(in_array($req, array('php-ext', 'php-extension'))) { // require php extension
if(!extension_loaded($version)) { $tmpDisplayError = false;
self::$error = "This plugin requires php extension: " . $version . " to be installed."; $explode = explode(',', $version);
foreach ($explode as $item) {
if(!extension_loaded($item)) {
$errors[] = "This plugin requires php extension: " . $item . " to be installed.";
$tmpDisplayError = true;
}
}
if ($tmpDisplayError) {
self::$error = implode('<br/>', $errors);
$continue = false; $continue = false;
break; break;
} }
} }
else if($req == 'table') { else if($req == 'table') {
if(!$db->hasTable($version)) { $tmpDisplayError = false;
self::$error = "This plugin requires table: " . $version . " to exist in the database."; $explode = explode(',', $version);
foreach ($explode as $item) {
if(!$db->hasTable($item)) {
$errors[] = "This plugin requires table: " . $item . " to exist in the database.";
$tmpDisplayError = true;
}
}
if ($tmpDisplayError) {
self::$error = implode('<br/>', $errors);
$continue = false; $continue = false;
break; break;
} }
} }
else if($req == 'column') { else if($req == 'column') {
$tmp = explode('.', $version); $tmpDisplayError = false;
$explode = explode(',', $version);
foreach ($explode as $item) {
$tmp = explode('.', $item);
if(count($tmp) == 2) { if(count($tmp) == 2) {
if(!$db->hasColumn($tmp[0], $tmp[1])) { if(!$db->hasColumn($tmp[0], $tmp[1])) {
self::$error = "This plugin requires database column: " . $tmp[0] . "." . $tmp[1] . " to exist in database."; $errors[] = "This plugin requires database column: " . $tmp[0] . "." . $tmp[1] . " to exist in database.";
$tmpDisplayError = true;
}
}
else {
self::$warnings[] = "Invalid plugin require column: " . $item;
}
}
if ($tmpDisplayError) {
self::$error = implode('<br/>', $errors);
$continue = false; $continue = false;
break; break;
} }
} }
}
else if(strpos($req, 'ext-') !== false) { else if(strpos($req, 'ext-') !== false) {
$tmp = explode('-', $req); $tmp = explode('-', $req);
if(count($tmp) == 2) { if(count($tmp) == 2) {