You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
96 lines
3.3 KiB
96 lines
3.3 KiB
<?php
|
|
use function Hestiacp\quoteshellarg\quoteshellarg;
|
|
|
|
$TAB = "EXTMODULES";
|
|
|
|
// Main include
|
|
include $_SERVER["DOCUMENT_ROOT"] . "/inc/main.php";
|
|
|
|
// Check user
|
|
if ($_SESSION["userContext"] != "admin") {
|
|
header("Location: /list/user");
|
|
exit();
|
|
}
|
|
|
|
exec(HESTIA_CMD . "v-ext-modules state php_brepo_modules json", $output, $return_var);
|
|
$check_passenger_enabled = json_decode(implode("", $output), true);
|
|
if (($return_var != 0) || (empty($check_passenger_enabled)) || ($check_passenger_enabled[0]["STATE"] != "enabled")){
|
|
header("Location: /list/extmodules/");
|
|
exit();
|
|
}
|
|
unset($output);
|
|
|
|
$error_message = "";
|
|
if ((!empty($_GET["ver"])) && ($_GET["ver"] != "")) {
|
|
$php_vers = $_GET["ver"];
|
|
$ver_quoted = quoteshellarg($_GET["ver"]);
|
|
exec(HESTIA_CMD . "v-ext-modules-run php_brepo_modules php_modules " . $ver_quoted . " json", $output, $return_var);
|
|
$phps_modules = [];
|
|
if ($return_var == 0) {
|
|
$phps_modules = json_decode(implode("", $output), true);
|
|
} else {
|
|
$error_message = $output;
|
|
}
|
|
unset($output);
|
|
if (!empty($_POST["save"]) && $error_message == ""){
|
|
$new_modules = $_POST["v_php_module_name"];
|
|
$chg = false;
|
|
foreach ($new_modules as $key => $value){
|
|
if (!preg_match("/(\d\d)-.+/i", $value)){
|
|
$mod_name = quoteshellarg($value);
|
|
$chg = true;
|
|
exec(HESTIA_CMD . "v-ext-modules-run php_brepo_modules php_enable " . $ver_quoted . " " . $mod_name, $output, $return_var);
|
|
unset($output);
|
|
}
|
|
}
|
|
foreach ($phps_modules as $key => $value){
|
|
if ($value["STATE"]!="disabled"){
|
|
$fnd = false;
|
|
foreach ($new_modules as $ikey => $ivalue){
|
|
if ($ivalue==$value["STATE"]){
|
|
$fnd = true;
|
|
break;
|
|
}
|
|
}
|
|
if (!$fnd){
|
|
$chg = true;
|
|
$mod_name = quoteshellarg($phps_modules[$key]["MODNAME"]);
|
|
exec(HESTIA_CMD . "v-ext-modules-run php_brepo_modules php_disable " . $ver_quoted . " " . $mod_name, $output, $return_var);
|
|
unset($output);
|
|
}
|
|
}
|
|
}
|
|
exec(HESTIA_CMD . "v-ext-modules-run php_brepo_modules php_modules " . $ver_quoted . " json", $output, $return_var);
|
|
$phps_modules = [];
|
|
if ($return_var == 0) {
|
|
$phps_modules = json_decode(implode("", $output), true);
|
|
} else {
|
|
$error_message = $output;
|
|
}
|
|
unset($output);
|
|
if ($chg){
|
|
exec(HESTIA_CMD . "v-restart-web-backend", $output, $return_var);
|
|
}
|
|
}
|
|
|
|
// Render page
|
|
render_page($user, $TAB, "extmodules/extmodules_php_brepo_modules_list");
|
|
} else {
|
|
// Data
|
|
exec(HESTIA_CMD . "v-ext-modules-run php_brepo_modules php_list json", $output, $return_var);
|
|
$phps = [];
|
|
if ($return_var == 0) {
|
|
$phps = json_decode(implode("", $output), true);
|
|
ksort($phps);
|
|
} else {
|
|
$error_message = $output;
|
|
}
|
|
|
|
unset($output);
|
|
|
|
// Render page
|
|
render_page($user, $TAB, "extmodules/extmodules_php_brepo_modules");
|
|
}
|
|
|
|
// Back uri
|
|
$_SESSION["back"] = $_SERVER["REQUEST_URI"]; |