Update menu.php

This commit is contained in:
FusionPBX
2019-10-12 15:37:22 -06:00
committed by GitHub
parent 8f628a2bed
commit 80d95fe0c2
+57 -30
View File
@@ -17,7 +17,7 @@
The Initial Developer of the Original Code is The Initial Developer of the Original Code is
Mark J Crane <markjcrane@fusionpbx.com> Mark J Crane <markjcrane@fusionpbx.com>
Copyright (C) 2010 - 2014 Copyright (C) 2010 - 2019
All Rights Reserved. All Rights Reserved.
Contributor(s): Contributor(s):
@@ -49,6 +49,7 @@ if (!class_exists('menu')) {
$database = new database; $database = new database;
$database->execute($sql, $parameters); $database->execute($sql, $parameters);
unset($sql, $parameters); unset($sql, $parameters);
//remove existing unprotected menu item groups //remove existing unprotected menu item groups
$sql = "delete from v_menu_item_groups "; $sql = "delete from v_menu_item_groups ";
$sql .= "where menu_uuid = :menu_uuid "; $sql .= "where menu_uuid = :menu_uuid ";
@@ -65,6 +66,7 @@ if (!class_exists('menu')) {
$database = new database; $database = new database;
$database->execute($sql, $parameters); $database->execute($sql, $parameters);
unset($sql, $parameters); unset($sql, $parameters);
//remove existing unprotected menu items //remove existing unprotected menu items
$sql = "delete from v_menu_items "; $sql = "delete from v_menu_items ";
$sql .= "where menu_uuid = :menu_uuid "; $sql .= "where menu_uuid = :menu_uuid ";
@@ -102,6 +104,26 @@ if (!class_exists('menu')) {
//get the list of languages //get the list of languages
$language = new text; $language = new text;
//create a uuid array of the original uuid used as the key and new uuid as the value
if (is_array($apps)) {
$x = 0;
foreach ($apps as $row) {
if (is_array($row['menu'])) {
foreach ($row['menu'] as $menu) {
$uuid_array[$menu['uuid']] = uuid();
}
}
}
}
//if the item uuid is not currently in the db then add it
$sql = "select * from v_menu_items ";
$sql .= "where menu_uuid = :menu_uuid ";
$parameters['menu_uuid'] = $this->menu_uuid;
$parameters['uuid'] = $uuid;
$database = new database;
$menu_items = $database->select($sql, $parameters, 'all');
//use the app array to restore the default menu //use the app array to restore the default menu
if (is_array($apps)) { if (is_array($apps)) {
$x = 0; $x = 0;
@@ -115,8 +137,9 @@ if (!class_exists('menu')) {
else { else {
$menu_item_title = $menu['title']['en-us']; $menu_item_title = $menu['title']['en-us'];
} }
$menu_item_uuid = $menu['uuid']; $uuid = $menu['uuid'];
$menu_item_parent_uuid = $menu['parent_uuid']; $menu_item_uuid = $uuid_array[$menu['uuid']];
$menu_item_parent_uuid = $uuid_array[$menu['parent_uuid']];
$menu_item_category = $menu['category']; $menu_item_category = $menu['category'];
$menu_item_icon = $menu['icon']; $menu_item_icon = $menu['icon'];
$menu_item_path = $menu['path']; $menu_item_path = $menu['path'];
@@ -129,32 +152,34 @@ if (!class_exists('menu')) {
//if the item uuid is not currently in the db then add it //if the item uuid is not currently in the db then add it
$sql = "select count(*) from v_menu_items "; $sql = "select count(*) from v_menu_items ";
$sql .= "where menu_uuid = :menu_uuid "; $sql .= "where menu_uuid = :menu_uuid ";
$sql .= "and menu_item_uuid = :menu_item_uuid "; $sql .= "and uuid = :uuid ";
$parameters['menu_uuid'] = $this->menu_uuid; $parameters['menu_uuid'] = $this->menu_uuid;
$parameters['menu_item_uuid'] = $menu_item_uuid; $parameters['uuid'] = $uuid;
$database = new database; $database = new database;
$num_rows = $database->select($sql, $parameters, 'column'); $num_rows = $database->select($sql, $parameters, 'column');
if ($num_rows == 0) { if ($num_rows == 0) {
//menu found the menu //menu found the menu
$menu_item_exists = false; $menu_item_exists = false;
if ($menu_item_uuid != $menu_item_parent_uuid) { //build the menu array
//build insert array if ($menu_item_uuid != $menu_item_parent_uuid) {
$array['menu_items'][$x]['menu_item_uuid'] = $menu_item_uuid; $array['menu_items'][$x]['menu_item_uuid'] = $menu_item_uuid;
$array['menu_items'][$x]['menu_uuid'] = $this->menu_uuid; $array['menu_items'][$x]['menu_uuid'] = $this->menu_uuid;
$array['menu_items'][$x]['menu_item_title'] = $menu_item_title; $array['menu_items'][$x]['uuid'] = $uuid;
$array['menu_items'][$x]['menu_item_link'] = $menu_item_path; $array['menu_items'][$x]['menu_item_title'] = $menu_item_title;
$array['menu_items'][$x]['menu_item_category'] = $menu_item_category; $array['menu_items'][$x]['menu_item_link'] = $menu_item_path;
$array['menu_items'][$x]['menu_item_icon'] = $menu_item_icon; $array['menu_items'][$x]['menu_item_category'] = $menu_item_category;
if (strlen($menu_item_order) > 0) { $array['menu_items'][$x]['menu_item_icon'] = $menu_item_icon;
$array['menu_items'][$x]['menu_item_order'] = $menu_item_order; if (strlen($menu_item_order) > 0) {
} $array['menu_items'][$x]['menu_item_order'] = $menu_item_order;
if (is_uuid($menu_item_parent_uuid)) { }
$array['menu_items'][$x]['menu_item_parent_uuid'] = $menu_item_parent_uuid; if (is_uuid($menu_item_parent_uuid)) {
} $array['menu_items'][$x]['menu_item_parent_uuid'] = $menu_item_parent_uuid;
$array['menu_items'][$x]['menu_item_description'] = $menu_item_description; }
$x++; $array['menu_items'][$x]['menu_item_description'] = $menu_item_description;
} $x++;
}
} }
unset($sql, $parameters, $num_rows); unset($sql, $parameters, $num_rows);
@@ -162,13 +187,14 @@ if (!class_exists('menu')) {
//set the menu languages //set the menu languages
if (!$menu_item_exists && is_array($language->languages)) { if (!$menu_item_exists && is_array($language->languages)) {
foreach ($language->languages as $menu_language) { foreach ($language->languages as $menu_language) {
$menu_item_title = $menu["title"][$menu_language]; //set the menu item title
if (strlen($menu_item_title) == 0) { $menu_item_title = $menu["title"][$menu_language];
$menu_item_title = $menu["title"]['en-us']; if (strlen($menu_item_title) == 0) {
} $menu_item_title = $menu["title"]['en-us'];
$menu_language_uuid = uuid(); }
//build insert array //build insert array
$array['menu_languages'][$x]['menu_language_uuid'] = $menu_language_uuid; $array['menu_languages'][$x]['menu_language_uuid'] = uuid();
$array['menu_languages'][$x]['menu_item_uuid'] = $menu_item_uuid; $array['menu_languages'][$x]['menu_item_uuid'] = $menu_item_uuid;
$array['menu_languages'][$x]['menu_uuid'] = $this->menu_uuid; $array['menu_languages'][$x]['menu_uuid'] = $this->menu_uuid;
$array['menu_languages'][$x]['menu_language'] = $menu_language; $array['menu_languages'][$x]['menu_language'] = $menu_language;
@@ -226,7 +252,7 @@ if (!class_exists('menu')) {
$sql .= "and menu_uuid = :menu_uuid "; $sql .= "and menu_uuid = :menu_uuid ";
$sql .= "and group_name = :group_name "; $sql .= "and group_name = :group_name ";
$sql .= "and group_uuid = :group_uuid "; $sql .= "and group_uuid = :group_uuid ";
$parameters['menu_item_uuid'] = $sub_row['uuid']; $parameters['menu_item_uuid'] = $uuid_array[$sub_row['uuid']];
$parameters['menu_uuid'] = $this->menu_uuid; $parameters['menu_uuid'] = $this->menu_uuid;
$parameters['group_name'] = $group; $parameters['group_name'] = $group;
$parameters['group_uuid'] = $group_uuids[$group]; $parameters['group_uuid'] = $group_uuids[$group];
@@ -236,7 +262,7 @@ if (!class_exists('menu')) {
//no menu item groups found, build insert array for defaults //no menu item groups found, build insert array for defaults
$array['menu_item_groups'][$x]['menu_item_group_uuid'] = uuid(); $array['menu_item_groups'][$x]['menu_item_group_uuid'] = uuid();
$array['menu_item_groups'][$x]['menu_uuid'] = $this->menu_uuid; $array['menu_item_groups'][$x]['menu_uuid'] = $this->menu_uuid;
$array['menu_item_groups'][$x]['menu_item_uuid'] = $sub_row['uuid']; $array['menu_item_groups'][$x]['menu_item_uuid'] = $uuid_array[$sub_row['uuid']];
$array['menu_item_groups'][$x]['group_name'] = $group; $array['menu_item_groups'][$x]['group_name'] = $group;
$array['menu_item_groups'][$x]['group_uuid'] = $group_uuids[$group]; $array['menu_item_groups'][$x]['group_uuid'] = $group_uuids[$group];
$x++; $x++;
@@ -247,6 +273,7 @@ if (!class_exists('menu')) {
} }
} }
} }
if (is_array($array) && @sizeof($array) != 0) { if (is_array($array) && @sizeof($array) != 0) {
//grant temporary permissions //grant temporary permissions
$p = new permissions; $p = new permissions;