From 015b56408b874ce6af7640c151b3498cd4c5a58e Mon Sep 17 00:00:00 2001 From: Mark J Crane Date: Sat, 30 May 2020 09:06:28 -0600 Subject: [PATCH] Add a reload button to menu edit --- core/menu/menu_edit.php | 459 +++++++++++++++++++------------------- core/menu/menu_reload.php | 62 +++++ 2 files changed, 292 insertions(+), 229 deletions(-) create mode 100644 core/menu/menu_reload.php diff --git a/core/menu/menu_edit.php b/core/menu/menu_edit.php index 1a1d1e394e..0ac637eead 100644 --- a/core/menu/menu_edit.php +++ b/core/menu/menu_edit.php @@ -1,230 +1,231 @@ - - Portions created by the Initial Developer are Copyright (C) 2008-2020 - the Initial Developer. All Rights Reserved. - - Contributor(s): - Mark J Crane -*/ - -//includes - require_once "root.php"; - require_once "resources/require.php"; - require_once "resources/check_auth.php"; - -//check permissions - if (permission_exists('menu_add') || permission_exists('menu_edit')) { - //access granted - } - else { - echo "access denied"; - exit; - } - -//add multi-lingual support - $language = new text; - $text = $language->get(); - -//action add or update - if (is_uuid($_REQUEST["id"])) { - $action = "update"; - $menu_uuid = $_REQUEST["id"]; - } - else { - $action = "add"; - } - -//get http post variables and set them to php variables - if (count($_POST) > 0) { - $menu_uuid = $_POST["menu_uuid"]; - $menu_name = $_POST["menu_name"]; - $menu_language = $_POST["menu_language"]; - $menu_description = $_POST["menu_description"]; - } - -//process the http post - if (count($_POST) > 0 && strlen($_POST["persistformvar"]) == 0) { - - //validate the token - $token = new token; - if (!$token->validate($_SERVER['PHP_SELF'])) { - message::add($text['message-invalid_token'],'negative'); - header('Location: menu.php'); - exit; - } - - //check for all required data - $msg = ''; - //if (strlen($menu_name) == 0) { $msg .= $text['message-required'].$text['label-name']."
\n"; } - //if (strlen($menu_language) == 0) { $msg .= $text['message-required'].$text['label-language']."
\n"; } - //if (strlen($menu_description) == 0) { $msg .= $text['message-required'].$text['label-description']."
\n"; } - if (strlen($msg) > 0 && strlen($_POST["persistformvar"]) == 0) { - require_once "resources/header.php"; - require_once "resources/persist_form_var.php"; - echo "
\n"; - echo "
\n"; - echo $msg."
"; - echo "
\n"; - persistformvar($_POST); - echo "
\n"; - require_once "resources/footer.php"; - return; - } - - //add or update the database - if ($_POST["persistformvar"] != "true") { - if ($action == "add") { - //create a new unique id - $menu_uuid = uuid(); - - //start a new menu - $array['menus'][0]['menu_uuid'] = $menu_uuid; - $array['menus'][0]['menu_name'] = $menu_name; - $array['menus'][0]['menu_language'] = $menu_language; - $array['menus'][0]['menu_description'] = $menu_description; - $database = new database; - $database->app_name = 'menu'; - $database->app_uuid = 'f4b3b3d2-6287-489c-2a00-64529e46f2d7'; - $database->save($array); - unset($array); - - //redirect the user back to the main menu - message::add($text['message-add']); - header("Location: menu.php"); - return; - } //if ($action == "add") - - if ($action == "update") { - //update the menu - $array['menus'][0]['menu_uuid'] = $menu_uuid; - $array['menus'][0]['menu_name'] = $menu_name; - $array['menus'][0]['menu_language'] = $menu_language; - $array['menus'][0]['menu_description'] = $menu_description; - $database = new database; - $database->app_name = 'menu'; - $database->app_uuid = 'f4b3b3d2-6287-489c-2a00-64529e46f2d7'; - $database->save($array); - unset($array); - - //redirect the user back to the main menu - message::add($text['message-update']); - header("Location: menu.php"); - return; - } - } - } - -//pre-populate the form - if (count($_GET) > 0 && is_uuid($_GET["id"]) && $_POST["persistformvar"] != "true") { - $menu_uuid = $_GET["id"]; - $sql = "select * from v_menus "; - $sql .= "where menu_uuid = :menu_uuid "; - $parameters['menu_uuid'] = $menu_uuid; - $database = new database; - $row = $database->select($sql, $parameters, 'row'); - if (is_array($row) && sizeof($row) != 0) { - $menu_uuid = $row["menu_uuid"]; - $menu_name = $row["menu_name"]; - $menu_language = $row["menu_language"]; - $menu_description = $row["menu_description"]; - } - unset($sql, $parameters, $row); - } - -//create token - $object = new token; - $token = $object->create($_SERVER['PHP_SELF']); - -//show the header - $document['title'] = $text['title-menu']; - require_once "resources/header.php"; - -//show the content - echo "
\n"; - - echo "
\n"; - echo "
".$text['header-menu']."
\n"; - echo "
\n"; - echo button::create(['type'=>'button','label'=>$text['button-back'],'icon'=>$_SESSION['theme']['button_icon_back'],'id'=>'btn_back','collapse'=>'hide-xs','link'=>'menu.php']); - if (permission_exists('menu_restore') && $action == "update") { - echo button::create(['type'=>'button','label'=>$text['button-restore_default'],'icon'=>$_SESSION['theme']['button_icon_reload'],'collapse'=>'hide-xs','style'=>'margin-left: 15px;','link'=>'menu_restore_default.php?menu_uuid='.urlencode($menu_uuid).'&menu_language='.urlencode($menu_language)]); - } - echo button::create(['type'=>'submit','label'=>$text['button-save'],'icon'=>$_SESSION['theme']['button_icon_save'],'id'=>'btn_save','collapse'=>'hide-xs','style'=>'margin-left: 15px;']); - echo "
\n"; - echo "
\n"; - echo "
\n"; - - echo $text['description-menu']."\n"; - echo "

\n"; - - echo "\n"; - - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - - echo "
\n"; - echo " ".$text['label-name']."\n"; - echo "\n"; - echo " \n"; - echo "
\n"; - echo "\n"; - echo $text['description-name']."
\n"; - echo " ".$text['label-language']."\n"; - echo "\n"; - echo " \n"; - echo "
\n"; - echo $text['description-language']."\n"; - echo "
\n"; - echo " ".$text['label-description']."\n"; - echo "\n"; - echo " \n"; - echo "
\n"; - echo $text['description-description']."\n"; - echo "
"; - echo "

"; - - if ($action == "update") { - echo "\n"; - } - echo "\n"; - - echo "
"; - -//show the menu items - if ($action == "update") { - require_once "core/menu/menu_item_list.php"; - } - -//include the footer - require_once "resources/footer.php"; - + + Portions created by the Initial Developer are Copyright (C) 2008-2020 + the Initial Developer. All Rights Reserved. + + Contributor(s): + Mark J Crane +*/ + +//includes + require_once "root.php"; + require_once "resources/require.php"; + require_once "resources/check_auth.php"; + +//check permissions + if (permission_exists('menu_add') || permission_exists('menu_edit')) { + //access granted + } + else { + echo "access denied"; + exit; + } + +//add multi-lingual support + $language = new text; + $text = $language->get(); + +//action add or update + if (is_uuid($_REQUEST["id"])) { + $action = "update"; + $menu_uuid = $_REQUEST["id"]; + } + else { + $action = "add"; + } + +//get http post variables and set them to php variables + if (count($_POST) > 0) { + $menu_uuid = $_POST["menu_uuid"]; + $menu_name = $_POST["menu_name"]; + $menu_language = $_POST["menu_language"]; + $menu_description = $_POST["menu_description"]; + } + +//process the http post + if (count($_POST) > 0 && strlen($_POST["persistformvar"]) == 0) { + + //validate the token + $token = new token; + if (!$token->validate($_SERVER['PHP_SELF'])) { + message::add($text['message-invalid_token'],'negative'); + header('Location: menu.php'); + exit; + } + + //check for all required data + $msg = ''; + //if (strlen($menu_name) == 0) { $msg .= $text['message-required'].$text['label-name']."
\n"; } + //if (strlen($menu_language) == 0) { $msg .= $text['message-required'].$text['label-language']."
\n"; } + //if (strlen($menu_description) == 0) { $msg .= $text['message-required'].$text['label-description']."
\n"; } + if (strlen($msg) > 0 && strlen($_POST["persistformvar"]) == 0) { + require_once "resources/header.php"; + require_once "resources/persist_form_var.php"; + echo "
\n"; + echo "
\n"; + echo $msg."
"; + echo "
\n"; + persistformvar($_POST); + echo "
\n"; + require_once "resources/footer.php"; + return; + } + + //add or update the database + if ($_POST["persistformvar"] != "true") { + if ($action == "add") { + //create a new unique id + $menu_uuid = uuid(); + + //start a new menu + $array['menus'][0]['menu_uuid'] = $menu_uuid; + $array['menus'][0]['menu_name'] = $menu_name; + $array['menus'][0]['menu_language'] = $menu_language; + $array['menus'][0]['menu_description'] = $menu_description; + $database = new database; + $database->app_name = 'menu'; + $database->app_uuid = 'f4b3b3d2-6287-489c-2a00-64529e46f2d7'; + $database->save($array); + unset($array); + + //redirect the user back to the main menu + message::add($text['message-add']); + header("Location: menu.php"); + return; + } //if ($action == "add") + + if ($action == "update") { + //update the menu + $array['menus'][0]['menu_uuid'] = $menu_uuid; + $array['menus'][0]['menu_name'] = $menu_name; + $array['menus'][0]['menu_language'] = $menu_language; + $array['menus'][0]['menu_description'] = $menu_description; + $database = new database; + $database->app_name = 'menu'; + $database->app_uuid = 'f4b3b3d2-6287-489c-2a00-64529e46f2d7'; + $database->save($array); + unset($array); + + //redirect the user back to the main menu + message::add($text['message-update']); + header("Location: menu.php"); + return; + } + } + } + +//pre-populate the form + if (count($_GET) > 0 && is_uuid($_GET["id"]) && $_POST["persistformvar"] != "true") { + $menu_uuid = $_GET["id"]; + $sql = "select * from v_menus "; + $sql .= "where menu_uuid = :menu_uuid "; + $parameters['menu_uuid'] = $menu_uuid; + $database = new database; + $row = $database->select($sql, $parameters, 'row'); + if (is_array($row) && sizeof($row) != 0) { + $menu_uuid = $row["menu_uuid"]; + $menu_name = $row["menu_name"]; + $menu_language = $row["menu_language"]; + $menu_description = $row["menu_description"]; + } + unset($sql, $parameters, $row); + } + +//create token + $object = new token; + $token = $object->create($_SERVER['PHP_SELF']); + +//show the header + $document['title'] = $text['title-menu']; + require_once "resources/header.php"; + +//show the content + echo "
\n"; + + echo "
\n"; + echo "
".$text['header-menu']."
\n"; + echo "
\n"; + echo button::create(['type'=>'button','label'=>$text['button-back'],'icon'=>$_SESSION['theme']['button_icon_back'],'id'=>'btn_back','collapse'=>'hide-xs','link'=>'menu.php']); + echo button::create(['type'=>'button','label'=>$text['button-reload'],'icon'=>$_SESSION['theme']['button_icon_reload'],'collapse'=>'hide-xs','style'=>'margin-left: 15px;','link'=>'menu_reload.php?menu_uuid='.urlencode($menu_uuid).'&menu_language='.urlencode($menu_language)]); + if (permission_exists('menu_restore') && $action == "update") { + echo button::create(['type'=>'button','label'=>$text['button-restore_default'],'icon'=>'key','collapse'=>'hide-xs','link'=>'menu_restore_default.php?menu_uuid='.urlencode($menu_uuid).'&menu_language='.urlencode($menu_language)]); + } + echo button::create(['type'=>'submit','label'=>$text['button-save'],'icon'=>$_SESSION['theme']['button_icon_save'],'id'=>'btn_save','collapse'=>'hide-xs']); + echo "
\n"; + echo "
\n"; + echo "
\n"; + + echo $text['description-menu']."\n"; + echo "

\n"; + + echo "\n"; + + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + + echo "
\n"; + echo " ".$text['label-name']."\n"; + echo "\n"; + echo " \n"; + echo "
\n"; + echo "\n"; + echo $text['description-name']."
\n"; + echo " ".$text['label-language']."\n"; + echo "\n"; + echo " \n"; + echo "
\n"; + echo $text['description-language']."\n"; + echo "
\n"; + echo " ".$text['label-description']."\n"; + echo "\n"; + echo " \n"; + echo "
\n"; + echo $text['description-description']."\n"; + echo "
"; + echo "

"; + + if ($action == "update") { + echo "\n"; + } + echo "\n"; + + echo "
"; + +//show the menu items + if ($action == "update") { + require_once "core/menu/menu_item_list.php"; + } + +//include the footer + require_once "resources/footer.php"; + ?> \ No newline at end of file diff --git a/core/menu/menu_reload.php b/core/menu/menu_reload.php new file mode 100644 index 0000000000..62efbbd0ca --- /dev/null +++ b/core/menu/menu_reload.php @@ -0,0 +1,62 @@ + + Portions created by the Initial Developer are Copyright (C) 2020 + the Initial Developer. All Rights Reserved. + + Contributor(s): + Mark J Crane +*/ + +//includes + include "root.php"; + require_once "resources/require.php"; + require_once "resources/check_auth.php"; + +//check permissions + if (permission_exists('menu_add') || permission_exists('menu_edit')) { + //access granted + } + else { + echo "access denied"; + return; + } + +//add multi-lingual support + $language = new text; + $text = $language->get(); + +//get the http value and set as a php variable + $menu_uuid = $_REQUEST["menu_uuid"]; + +//unset the sesssion menu array + unset($_SESSION['menu']['array']); + +//get the menu array and save it to the session + $menu = new menu; + $menu->menu_uuid = $_SESSION['domain']['menu']['uuid']; + $_SESSION['menu']['array'] = $menu->menu_array(); + unset($menu); + +//redirect the user + message::add($text['message-reload']); + header("Location: ".PROJECT_PATH."/core/menu/menu_edit.php?id=".urlencode($menu_uuid)); + return; + +?> \ No newline at end of file