Database class integration.

This commit is contained in:
Nate
2019-07-19 10:33:58 -06:00
parent 71427702f2
commit 4ed2ee626a
9 changed files with 410 additions and 415 deletions

View File

@@ -39,17 +39,20 @@ else {
$text = $language->get();
//get the menu_uuid
$menu_uuid = check_str($_REQUEST["id"]);
$menu_item_uuid = check_str($_REQUEST['menu_item_uuid']);
$group_uuid_name = check_str($_REQUEST['group_uuid_name']);
$menu_item_group_uuid = check_str($_REQUEST['menu_item_group_uuid']);
$menu_uuid = $_REQUEST["id"];
$menu_item_uuid = $_REQUEST['menu_item_uuid'];
$group_uuid_name = $_REQUEST['group_uuid_name'];
$menu_item_group_uuid = $_REQUEST['menu_item_group_uuid'];
//delete the group from the menu item
if ($_REQUEST["a"] == "delete" && permission_exists("menu_delete") && $menu_item_group_uuid != '') {
if ($_REQUEST["a"] == "delete" && permission_exists("menu_delete") && is_uuid($menu_item_group_uuid)) {
//delete the group from the users
$sql = "delete from v_menu_item_groups ";
$sql .= "where menu_item_group_uuid = '".$menu_item_group_uuid."' ";
$db->exec(check_sql($sql));
$array['menu_item_groups'][0]['menu_item_group_uuid'] = $menu_item_group_uuid;
$database = new database;
$database->app_name = 'menu';
$database->app_uuid = 'f4b3b3d2-6287-489c-2a00-64529e46f2d7';
$database->delete($array);
unset($array);
//redirect the browser
message::add($text['message-delete']);
header("Location: menu_item_edit.php?id=".$menu_uuid."&menu_item_uuid=".$menu_item_uuid."&menu_uuid=".$menu_uuid);
@@ -57,42 +60,38 @@ else {
}
//action add or update
if (isset($_REQUEST["menu_item_uuid"])) {
if (strlen($_REQUEST["menu_item_uuid"]) > 0) {
$action = "update";
$menu_item_uuid = check_str($_REQUEST["menu_item_uuid"]);
}
else {
$action = "add";
}
if (is_uuid($_REQUEST["menu_item_uuid"])) {
$action = "update";
$menu_item_uuid = $_REQUEST["menu_item_uuid"];
}
else {
$action = "add";
}
//clear the menu session so it will rebuild with the update
$_SESSION["menu"] = "";
//get the HTTP POST variables and set them as PHP variables
if (count($_POST) > 0) {
$menu_uuid = check_str($_POST["menu_uuid"]);
$menu_item_uuid = check_str($_POST["menu_item_uuid"]);
$menu_item_title = check_str($_POST["menu_item_title"]);
$menu_item_link = check_str($_POST["menu_item_link"]);
$menu_item_category = check_str($_POST["menu_item_category"]);
$menu_item_icon = check_str($_POST["menu_item_icon"]);
$menu_item_description = check_str($_POST["menu_item_description"]);
$menu_item_protected = check_str($_POST["menu_item_protected"]);
//$menu_item_uuid = check_str($_POST["menu_item_uuid"]);
$menu_item_parent_uuid = check_str($_POST["menu_item_parent_uuid"]);
$menu_item_order = check_str($_POST["menu_item_order"]);
$menu_uuid = $_POST["menu_uuid"];
$menu_item_uuid = $_POST["menu_item_uuid"];
$menu_item_title = $_POST["menu_item_title"];
$menu_item_link = $_POST["menu_item_link"];
$menu_item_category = $_POST["menu_item_category"];
$menu_item_icon = $_POST["menu_item_icon"];
$menu_item_description = $_POST["menu_item_description"];
$menu_item_protected = $_POST["menu_item_protected"];
//$menu_item_uuid = $_POST["menu_item_uuid"];
$menu_item_parent_uuid = $_POST["menu_item_parent_uuid"];
$menu_item_order = $_POST["menu_item_order"];
}
//when a HTTP POST is available then process it
if (count($_POST) > 0 && strlen($_POST["persistformvar"]) == 0) {
if ($action == "update") {
$menu_item_uuid = check_str($_POST["menu_item_uuid"]);
$menu_item_uuid = $_POST["menu_item_uuid"];
}
//check for all required data
@@ -116,101 +115,77 @@ else {
//add or update the database
if ($_POST["persistformvar"] != "true") {
//get the language from the menu
$sql = "SELECT menu_language FROM v_menus ";
$sql .= "where menu_uuid = '$menu_uuid' ";
$prep_statement = $db->prepare(check_sql($sql));
$prep_statement->execute();
$result = $prep_statement->fetchAll(PDO::FETCH_NAMED);
foreach ($result as &$row) {
$menu_language = $row['menu_language'];
}
$sql = "select menu_language from v_menus ";
$sql .= "where menu_uuid = :menu_uuid ";
$parameters['menu_uuid'] = $menu_uuid;
$database = new database;
$menu_language = $database->select($sql, $parameters, 'column');
unset($sql, $parameters);
//get the highest menu item order
if (strlen($menu_item_parent_uuid) == 0) {
$sql = "SELECT menu_item_order FROM v_menu_items ";
$sql .= "where menu_uuid = '$menu_uuid' ";
if (!is_uuid($menu_item_parent_uuid)) {
$sql = "select menu_item_order from v_menu_items ";
$sql .= "where menu_uuid = :menu_uuid ";
$sql .= "and menu_item_parent_uuid is null ";
$sql .= "order by menu_item_order desc ";
$sql .= "limit 1 ";
$prep_statement = $db->prepare(check_sql($sql));
$prep_statement->execute();
$result = $prep_statement->fetchAll(PDO::FETCH_NAMED);
foreach ($result as &$row) {
$highest_menu_item_order = $row['menu_item_order'];
}
unset($prep_statement);
$parameters['menu_uuid'] = $menu_uuid;
$database = new database;
$highest_menu_item_order = $database->select($sql, $parameters, 'column');
unset($sql, $parameters);
}
//add a menu item
if ($action == "add" && permission_exists('menu_add')) {
$menu_item_uuid = uuid();
$sql = "insert into v_menu_items ";
$sql .= "(";
$sql .= "menu_uuid, ";
$sql .= "menu_item_title, ";
$sql .= "menu_item_link, ";
$sql .= "menu_item_category, ";
$sql .= "menu_item_icon, ";
$sql .= "menu_item_description, ";
$sql .= "menu_item_protected, ";
$sql .= "menu_item_uuid, ";
$sql .= "menu_item_parent_uuid, ";
if (strlen($menu_item_parent_uuid) == 0) {
$sql .= "menu_item_order, ";
}
$sql .= "menu_item_add_user, ";
$sql .= "menu_item_add_date ";
$sql .= ")";
$sql .= "values ";
$sql .= "(";
$sql .= "'$menu_uuid', ";
$sql .= "'$menu_item_title', ";
$sql .= "'$menu_item_link', ";
$sql .= "'$menu_item_category', ";
$sql .= "'$menu_item_icon', ";
$sql .= "'$menu_item_description', ";
$sql .= "'$menu_item_protected', ";
$sql .= "'".$menu_item_uuid."', ";
if (strlen($menu_item_parent_uuid) == 0) {
$sql .= "null, ";
$sql .= "'".($highest_menu_item_order+1)."', ";
$array['menu_items'][0]['menu_uuid'] = $menu_uuid;
$array['menu_items'][0]['menu_item_title'] = $menu_item_title;
$array['menu_items'][0]['menu_item_link'] = $menu_item_link;
$array['menu_items'][0]['menu_item_category'] = $menu_item_category;
$array['menu_items'][0]['menu_item_icon'] = $menu_item_icon;
$array['menu_items'][0]['menu_item_description'] = $menu_item_description;
$array['menu_items'][0]['menu_item_protected'] = $menu_item_protected;
$array['menu_items'][0]['menu_item_uuid'] = $menu_item_uuid;
if (!is_uuid($menu_item_parent_uuid)) {
$array['menu_items'][0]['menu_item_parent_uuid'] = null;
$array['menu_items'][0]['menu_item_order'] = ($highest_menu_item_order + 1);
}
else {
$sql .= "'$menu_item_parent_uuid', ";
$array['menu_items'][0]['menu_item_parent_uuid'] = $menu_item_parent_uuid;
}
$sql .= "'".$_SESSION["username"]."', ";
$sql .= "now() ";
$sql .= ")";
$db->exec(check_sql($sql));
unset($sql);
$array['menu_items'][0]['menu_item_add_user'] = $_SESSION["username"];
$array['menu_items'][0]['menu_item_add_date'] = 'now()';
$database = new database;
$database->app_name = 'menu';
$database->app_uuid = 'f4b3b3d2-6287-489c-2a00-64529e46f2d7';
$database->save($array);
unset($array);
}
//update the menu item
if ($action == "update" && permission_exists('menu_edit')) {
$sql = "update v_menu_items set ";
$sql .= "menu_item_title = '$menu_item_title', ";
$sql .= "menu_item_link = '$menu_item_link', ";
$sql .= "menu_item_category = '$menu_item_category', ";
$sql .= "menu_item_icon = '$menu_item_icon', ";
$sql .= "menu_item_description = '$menu_item_description', ";
$sql .= "menu_item_protected = '$menu_item_protected', ";
if (strlen($menu_item_parent_uuid) == 0) {
$sql .= "menu_item_parent_uuid = null, ";
if (strlen($menu_item_order) > 0) {
$sql .= "menu_item_order = '$menu_item_order', ";
}
else {
$sql .= "menu_item_order = '".($highest_menu_item_order+1)."', ";
}
$array['menu_items'][0]['menu_uuid'] = $menu_uuid;
$array['menu_items'][0]['menu_item_title'] = $menu_item_title;
$array['menu_items'][0]['menu_item_link'] = $menu_item_link;
$array['menu_items'][0]['menu_item_category'] = $menu_item_category;
$array['menu_items'][0]['menu_item_icon'] = $menu_item_icon;
$array['menu_items'][0]['menu_item_description'] = $menu_item_description;
$array['menu_items'][0]['menu_item_protected'] = $menu_item_protected;
$array['menu_items'][0]['menu_item_uuid'] = $menu_item_uuid;
if (!is_uuid($menu_item_parent_uuid)) {
$array['menu_items'][0]['menu_item_parent_uuid'] = null;
$array['menu_items'][0]['menu_item_order'] = is_numeric($menu_item_order) ? $menu_item_order : ($highest_menu_item_order + 1);
}
else {
$sql .= "menu_item_parent_uuid = '$menu_item_parent_uuid', ";
$array['menu_items'][0]['menu_item_parent_uuid'] = $menu_item_parent_uuid;
}
$sql .= "menu_item_mod_user = '".$_SESSION["username"]."', ";
$sql .= "menu_item_mod_date = now() ";
$sql .= "where menu_uuid = '$menu_uuid' ";
$sql .= "and menu_item_uuid = '$menu_item_uuid' ";
$count = $db->exec(check_sql($sql));
$array['menu_items'][0]['menu_item_add_user'] = $_SESSION["username"];
$array['menu_items'][0]['menu_item_add_date'] = 'now()';
$database = new database;
$database->app_name = 'menu';
$database->app_uuid = 'f4b3b3d2-6287-489c-2a00-64529e46f2d7';
$database->save($array);
unset($array);
}
//add a group to the menu
@@ -219,63 +194,56 @@ else {
$group_uuid = $group_data[0];
$group_name = $group_data[1];
//add the group to the menu
if (strlen($menu_item_uuid) > 0) {
if (is_uuid($menu_item_uuid)) {
$menu_item_group_uuid = uuid();
$sql_insert = "insert into v_menu_item_groups ";
$sql_insert .= "(";
$sql_insert .= "menu_item_group_uuid, ";
$sql_insert .= "menu_uuid, ";
$sql_insert .= "menu_item_uuid, ";
$sql_insert .= "group_name, ";
$sql_insert .= "group_uuid ";
$sql_insert .= ")";
$sql_insert .= "values ";
$sql_insert .= "(";
$sql_insert .= "'".$menu_item_group_uuid."', ";
$sql_insert .= "'".$menu_uuid."', ";
$sql_insert .= "'".$menu_item_uuid."', ";
$sql_insert .= "'".$group_name."', ";
$sql_insert .= "'".$group_uuid."' ";
$sql_insert .= ")";
$db->exec($sql_insert);
$array['menu_item_groups'][0]['menu_item_group_uuid'] = $menu_item_group_uuid;
$array['menu_item_groups'][0]['menu_uuid'] = $menu_uuid;
$array['menu_item_groups'][0]['menu_item_uuid'] = $menu_item_uuid;
$array['menu_item_groups'][0]['group_name'] = $group_name;
$array['menu_item_groups'][0]['group_uuid'] = $group_uuid;
$database = new database;
$database->app_name = 'menu';
$database->app_uuid = 'f4b3b3d2-6287-489c-2a00-64529e46f2d7';
$database->save($array);
unset($array);
}
}
//add title to menu languages
if ($_REQUEST["a"] != "delete" && strlen($menu_item_title) > 0 && permission_exists('menu_add')) {
$sql = "select count(*) as num_rows from v_menu_languages ";
$sql .= "where menu_item_uuid = '".$menu_item_uuid."' ";
$sql .= "and menu_language = '$menu_language' ";
$prep_statement = $db->prepare($sql);
$prep_statement->execute();
$row = $prep_statement->fetch(PDO::FETCH_ASSOC);
if ($row['num_rows'] == 0) {
$sql_insert = "insert into v_menu_languages ";
$sql_insert .= "(";
$sql_insert .= "menu_language_uuid, ";
$sql_insert .= "menu_uuid, ";
$sql_insert .= "menu_item_uuid, ";
$sql_insert .= "menu_language, ";
$sql_insert .= "menu_item_title ";
$sql_insert .= ")";
$sql_insert .= "values ";
$sql_insert .= "(";
$sql_insert .= "'".uuid()."', ";
$sql_insert .= "'".$menu_uuid."', ";
$sql_insert .= "'".$menu_item_uuid."', ";
$sql_insert .= "'".$menu_language."', ";
$sql_insert .= "'".$menu_item_title."' ";
$sql_insert .= ")";
$db->exec($sql_insert);
$sql = "select count(*) from v_menu_languages ";
$sql .= "where menu_item_uuid = :menu_item_uuid ";
$sql .= "and menu_language = :menu_language ";
$parameters['menu_item_uuid'] = $menu_item_uuid;
$parameters['menu_language'] = $menu_language;
$database = new database;
$num_rows = $database->select($sql, $parameters, 'column');
if ($num_rows == 0) {
$array['menu_languages'][0]['menu_language_uuid'] = uuid();
$array['menu_languages'][0]['menu_uuid'] = $menu_uuid;
$array['menu_languages'][0]['menu_item_uuid'] = $menu_item_uuid;
$array['menu_languages'][0]['menu_language'] = $menu_language;
$array['menu_languages'][0]['menu_item_title'] = $menu_item_title;
$database = new database;
$database->app_name = 'menu';
$database->app_uuid = 'f4b3b3d2-6287-489c-2a00-64529e46f2d7';
$database->save($array);
unset($array);
}
else {
$sql = "update v_menu_languages set ";
$sql .= "menu_item_title = '$menu_item_title' ";
$sql .= "where menu_uuid = '$menu_uuid' ";
$sql .= "and menu_item_uuid = '$menu_item_uuid' ";
$sql .= "and menu_language = '$menu_language' ";
$count = $db->exec(check_sql($sql));
$sql .= "menu_item_title = :menu_item_title ";
$sql .= "where menu_uuid = :menu_uuid ";
$sql .= "and menu_item_uuid = :menu_item_uuid ";
$sql .= "and menu_language = :menu_language ";
$parameters['menu_item_title'] = $menu_item_title;
$parameters['menu_uuid'] = $menu_uuid;
$parameters['menu_item_uuid'] = $menu_item_uuid;
$parameters['menu_language'] = $menu_language;
$database = new database;
$database->execute($sql, $parameters);
}
unset($sql, $parameters, $num_rows);
}
//set response message
@@ -294,20 +262,21 @@ else {
header("Location: menu_edit.php?id=".$menu_uuid);
}
return;
} //if ($_POST["persistformvar"] != "true")
} //(count($_POST)>0 && strlen($_POST["persistformvar"]) == 0)
}
}
//pre-populate the form
if (count($_GET)>0 && $_POST["persistformvar"] != "true") {
$menu_item_uuid = $_GET["menu_item_uuid"];
$sql = "select * from v_menu_items ";
$sql .= "where menu_uuid = '$menu_uuid' ";
$sql .= "and menu_item_uuid = '$menu_item_uuid' ";
$prep_statement = $db->prepare(check_sql($sql));
$prep_statement->execute();
$result = $prep_statement->fetchAll(PDO::FETCH_NAMED);
foreach ($result as &$row) {
$sql .= "where menu_uuid = :menu_uuid ";
$sql .= "and menu_item_uuid = :menu_item_uuid ";
$parameters['menu_uuid'] = $menu_uuid;
$parameters['menu_item_uuid'] = $menu_item_uuid;
$database = new database;
$row = $database->select($sql, $parameters, 'row');
if (is_array($row) && sizeof($row) != 0) {
$menu_item_title = $row["menu_item_title"];
$menu_item_link = $row["menu_item_link"];
$menu_item_category = $row["menu_item_category"];
@@ -323,15 +292,17 @@ else {
$menu_item_mod_user = $row["menu_item_mod_user"];
$menu_item_mod_date = $row["menu_item_mod_date"];
}
unset($sql, $parameters, $row);
}
//get the the menu items
$sql = "SELECT * FROM v_menu_items ";
$sql .= "where menu_uuid = '$menu_uuid' ";
$sql = "select * from v_menu_items ";
$sql .= "where menu_uuid = :menu_uuid ";
$sql .= "order by menu_item_title asc ";
$prep_statement = $db->prepare(check_sql($sql));
$prep_statement->execute();
$menu_items = $prep_statement->fetchAll(PDO::FETCH_NAMED);
$parameters['menu_uuid'] = $menu_uuid;
$database = new database;
$menu_items = $database->select($sql, $parameters, 'all');
unset($sql, $parameters);
//get the assigned groups
$sql = "select ";
@@ -346,30 +317,35 @@ else {
$sql .= "order by ";
$sql .= " g.domain_uuid desc, ";
$sql .= " g.group_name asc ";
$prep_statement = $db->prepare(check_sql($sql));
$prep_statement->bindParam(':menu_uuid', $menu_uuid);
$prep_statement->bindParam(':menu_item_uuid', $menu_item_uuid);
$prep_statement->execute();
$menu_item_groups = $prep_statement->fetchAll(PDO::FETCH_NAMED);
unset($sql, $prep_statement);
$parameters['menu_uuid'] = $menu_uuid;
$parameters['menu_item_uuid'] = $menu_item_uuid;
$database = new database;
$menu_item_groups = $database->select($sql, $parameters, 'all');
unset($sql, $parameters);
//set the assigned_groups array
foreach($menu_item_groups as $field) {
if (strlen($field['group_name']) > 0) {
$assigned_groups[] = $field['group_uuid'];
if (is_array($menu_item_groups) && sizeof($menu_item_groups) != 0) {
foreach ($menu_item_groups as $field) {
if (strlen($field['group_name']) > 0) {
$assigned_groups[] = $field['group_uuid'];
}
}
}
//get the groups
$sql = "select * from v_groups ";
if (sizeof($assigned_groups) > 0) {
$sql .= "where group_uuid not in ('".implode("','",$assigned_groups)."') ";
if (is_array($assigned_groups) && sizeof($assigned_groups) != 0) {
$sql .= "where ";
foreach ($assigned_groups as $index => $assigned_group) {
$sql_where[] = "group_uuid <> :group_uuid_".$index;
$parameters['group_uuid_'.$index] = $assigned_group;
}
$sql .= implode(' and ', $sql_where);
}
$sql .= "order by domain_uuid desc, group_name asc ";
$prep_statement = $db->prepare(check_sql($sql));
$prep_statement->execute();
$groups = $prep_statement->fetchAll(PDO::FETCH_NAMED);
unset($sql, $prep_statement);
$database = new database;
$groups = $database->select($sql, $parameters, 'all');
unset($sql, $sql_where, $parameters);
//include the header
require_once "resources/header.php";
@@ -485,7 +461,7 @@ else {
echo " <tr>";
echo " <td class='vncell' valign='top'>".$text['label-groups']."</td>";
echo " <td class='vtable'>";
if (is_array($menu_item_groups)) {
if (is_array($menu_item_groups) && sizeof($menu_item_groups) != 0) {
echo "<table cellpadding='0' cellspacing='0' border='0'>\n";
foreach($menu_item_groups as $field) {
if (strlen($field['group_name']) > 0) {