Modules: Database class integration.

This commit is contained in:
Nate 2019-08-09 10:23:44 -06:00
parent 3d286cbbdb
commit a5718bc435
4 changed files with 82 additions and 89 deletions

View File

@ -39,21 +39,25 @@
//add the access control list to the database
$sql = "select * from v_modules ";
$sql .= "where module_order is null ";
$prep_statement = $db->prepare($sql);
if ($prep_statement) {
$prep_statement->execute();
$modules = $prep_statement->fetchAll(PDO::FETCH_ASSOC);
foreach ($modules as &$row) {
$database = new database;
$modules = $database->select($sql, null, 'all');
if (is_array($modules) && @sizeof($modules) != 0) {
foreach ($modules as $index => &$row) {
//get the module details
$mod = $module->info($row['module_name']);
//update the module order
$sql = "update v_modules set ";
$sql .= "module_order = '".$mod['module_order']."' ";
$sql .= "where module_uuid = '".$row['module_uuid']."' ";
$db->exec(check_sql($sql));
unset($sql);
$array['modules'][$index]['module_uuid'] = $row['module_uuid'];
$array['modules'][$index]['module_order'] = $mod['module_order'];
}
if (is_array($array) && @sizeof($array) != 0) {
$database = new database;
$database->app_name = 'modules';
$database->app_uuid = '5eb9cba1-8cb6-5d21-e36a-775475f16b5e';
$database->save($array);
unset($array);
}
}
unset($sql, $modules, $index, $row);
//use the module class to get the list of modules from the db and add any missing modules
if (isset($_SESSION['switch']['mod']['dir'])) {

View File

@ -39,20 +39,26 @@ else {
$text = $language->get();
//get the id
if (count($_GET)>0) {
$id = $_GET["id"];
}
$module_uuid = $_GET["id"];
if (is_uuid($module_uuid)) {
//delete module
$array['modules'][0]['module_uuid'] = $module_uuid;
$database = new database;
$database->app_name = 'modules';
$database->app_uuid = '5eb9cba1-8cb6-5d21-e36a-775475f16b5e';
$database->delete($array);
unset($array);
//set message
message::add($text['message-delete']);
if (strlen($id)>0) {
$sql = "delete from v_modules ";
$sql .= "where module_uuid = '$id' ";
$prep_statement = $db->prepare(check_sql($sql));
$prep_statement->execute();
unset($sql);
}
message::add($text['message-delete']);
header("Location: modules.php");
return;
//redirect
header("Location: modules.php");
exit;
?>

View File

@ -43,9 +43,9 @@
$text = $language->get();
//determin the action add or update
if (isset($_REQUEST["id"])) {
if (is_uuid($_REQUEST["id"])) {
$action = "update";
$module_uuid = check_str($_REQUEST["id"]);
$module_uuid = $_REQUEST["id"];
}
else {
$action = "add";
@ -53,13 +53,13 @@
//set the http post variables to php variables
if (count($_POST)>0) {
$module_label = check_str($_POST["module_label"]);
$module_name = check_str($_POST["module_name"]);
$module_description = check_str($_POST["module_description"]);
$module_category = check_str($_POST["module_category"]);
$module_order = check_str($_POST["module_order"]);
$module_enabled = check_str($_POST["module_enabled"]);
$module_default_enabled = check_str($_POST["module_default_enabled"]);
$module_label = $_POST["module_label"];
$module_name = $_POST["module_name"];
$module_description = $_POST["module_description"];
$module_category = $_POST["module_category"];
$module_order = $_POST["module_order"];
$module_enabled = $_POST["module_enabled"];
$module_default_enabled = $_POST["module_default_enabled"];
}
//process the data
@ -67,7 +67,7 @@
//get the uuid
if ($action == "update") {
$module_uuid = check_str($_POST["module_uuid"]);
$module_uuid = $_POST["module_uuid"];
}
//check for all required data
@ -95,71 +95,52 @@
if ($_POST["persistformvar"] != "true") {
if ($action == "add" && permission_exists('module_add')) {
$module_uuid = uuid();
$sql = "insert into v_modules ";
$sql .= "(";
$sql .= "module_uuid, ";
$sql .= "module_label, ";
$sql .= "module_name, ";
$sql .= "module_description, ";
$sql .= "module_category, ";
$sql .= "module_order, ";
$sql .= "module_enabled, ";
$sql .= "module_default_enabled ";
$sql .= ")";
$sql .= "values ";
$sql .= "(";
$sql .= "'$module_uuid', ";
$sql .= "'$module_label', ";
$sql .= "'$module_name', ";
$sql .= "'$module_description', ";
$sql .= "'$module_category', ";
$sql .= "'$module_order', ";
$sql .= "'$module_enabled', ";
$sql .= "'$module_default_enabled' ";
$sql .= ")";
$db->exec(check_sql($sql));
unset($sql);
$module = new modules;;
$module->xml();
$array['modules'][0]['module_uuid'] = $module_uuid;
message::add($text['message-add']);
header("Location: modules.php");
return;
} //if ($action == "add")
}
if ($action == "update" && permission_exists('module_edit')) {
$sql = "update v_modules set ";
$sql .= "module_label = '$module_label', ";
$sql .= "module_name = '$module_name', ";
$sql .= "module_description = '$module_description', ";
$sql .= "module_category = '$module_category', ";
$sql .= "module_order = '$module_order', ";
$sql .= "module_enabled = '$module_enabled', ";
$sql .= "module_default_enabled = '$module_default_enabled' ";
$sql .= "where module_uuid = '$module_uuid' ";
$db->exec(check_sql($sql));
unset($sql);
$module = new modules;;
$module->xml();
$array['modules'][0]['module_uuid'] = $module_uuid;
message::add($text['message-update']);
}
//add common array elements and execute
if (is_array($array) && @sizeof($array) != 0) {
$array['modules'][0]['module_label'] = $module_label;
$array['modules'][0]['module_name'] = $module_name;
$array['modules'][0]['module_description'] = $module_description;
$array['modules'][0]['module_category'] = $module_category;
$array['modules'][0]['module_order'] = $module_order;
$array['modules'][0]['module_enabled'] = $module_enabled;
$array['modules'][0]['module_default_enabled'] = $module_default_enabled;
$database = new database;
$database->app_name = 'modules';
$database->app_uuid = '5eb9cba1-8cb6-5d21-e36a-775475f16b5e';
$database->save($array);
unset($array);
$module = new modules;
$module->xml();
header("Location: modules.php");
return;
} //if ($action == "update")
} //if ($_POST["persistformvar"] != "true")
} //(count($_POST)>0 && strlen($_POST["persistformvar"]) == 0)
exit;
}
}
}
//pre-populate the form
if (count($_GET)>0 && $_POST["persistformvar"] != "true") {
$module_uuid = $_GET["id"];
$sql = "select * from v_modules ";
$sql .= "where module_uuid = '$module_uuid' ";
$prep_statement = $db->prepare(check_sql($sql));
$prep_statement->execute();
$result = $prep_statement->fetchAll(PDO::FETCH_NAMED);
foreach ($result as &$row) {
$sql .= "where module_uuid = :module_uuid ";
$parameters['module_uuid'] = $module_uuid;
$database = new database;
$row = $database->select($sql, $parameters, 'row');
if (is_array($row) && @sizeof($row) != 0) {
$module_label = $row["module_label"];
$module_name = $row["module_name"];
$module_description = $row["module_description"];
@ -168,7 +149,7 @@
$module_enabled = $row["module_enabled"];
$module_default_enabled = $row["module_default_enabled"];
}
unset ($prep_statement);
unset($sql, $parameters, $row);
}
//show the header

View File

@ -70,6 +70,8 @@
$msg = "<strong>".$text['label-load_module'].":</strong> <pre>".$response."</pre>";
}
}
header('Location: modules.php');
exit;
}
//check connection status
@ -223,10 +225,10 @@
echo "</tr>\n";
$prev_module_category = $row["module_category"];
if ($c==0) { $c=1; } else { $c=0; }
} //end foreach
$c = $c ? 0 : 1;
}
unset($sql, $modules, $row_count);
} //end if results
}
echo "<tr>\n";
echo "<td colspan='6'>\n";