mirror of
https://github.com/fusionpbx/fusionpbx.git
synced 2025-12-30 00:53:50 +00:00
Update menu.php
This commit is contained in:
@@ -17,7 +17,7 @@
|
||||
|
||||
The Initial Developer of the Original Code is
|
||||
Mark J Crane <markjcrane@fusionpbx.com>
|
||||
Copyright (C) 2010 - 2014
|
||||
Copyright (C) 2010 - 2019
|
||||
All Rights Reserved.
|
||||
|
||||
Contributor(s):
|
||||
@@ -49,6 +49,7 @@ if (!class_exists('menu')) {
|
||||
$database = new database;
|
||||
$database->execute($sql, $parameters);
|
||||
unset($sql, $parameters);
|
||||
|
||||
//remove existing unprotected menu item groups
|
||||
$sql = "delete from v_menu_item_groups ";
|
||||
$sql .= "where menu_uuid = :menu_uuid ";
|
||||
@@ -65,6 +66,7 @@ if (!class_exists('menu')) {
|
||||
$database = new database;
|
||||
$database->execute($sql, $parameters);
|
||||
unset($sql, $parameters);
|
||||
|
||||
//remove existing unprotected menu items
|
||||
$sql = "delete from v_menu_items ";
|
||||
$sql .= "where menu_uuid = :menu_uuid ";
|
||||
@@ -102,6 +104,26 @@ if (!class_exists('menu')) {
|
||||
//get the list of languages
|
||||
$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
|
||||
if (is_array($apps)) {
|
||||
$x = 0;
|
||||
@@ -115,8 +137,9 @@ if (!class_exists('menu')) {
|
||||
else {
|
||||
$menu_item_title = $menu['title']['en-us'];
|
||||
}
|
||||
$menu_item_uuid = $menu['uuid'];
|
||||
$menu_item_parent_uuid = $menu['parent_uuid'];
|
||||
$uuid = $menu['uuid'];
|
||||
$menu_item_uuid = $uuid_array[$menu['uuid']];
|
||||
$menu_item_parent_uuid = $uuid_array[$menu['parent_uuid']];
|
||||
$menu_item_category = $menu['category'];
|
||||
$menu_item_icon = $menu['icon'];
|
||||
$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
|
||||
$sql = "select count(*) from v_menu_items ";
|
||||
$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_item_uuid'] = $menu_item_uuid;
|
||||
$parameters['uuid'] = $uuid;
|
||||
$database = new database;
|
||||
$num_rows = $database->select($sql, $parameters, 'column');
|
||||
if ($num_rows == 0) {
|
||||
|
||||
//menu found the menu
|
||||
$menu_item_exists = false;
|
||||
|
||||
if ($menu_item_uuid != $menu_item_parent_uuid) {
|
||||
//build insert array
|
||||
$array['menu_items'][$x]['menu_item_uuid'] = $menu_item_uuid;
|
||||
$array['menu_items'][$x]['menu_uuid'] = $this->menu_uuid;
|
||||
$array['menu_items'][$x]['menu_item_title'] = $menu_item_title;
|
||||
$array['menu_items'][$x]['menu_item_link'] = $menu_item_path;
|
||||
$array['menu_items'][$x]['menu_item_category'] = $menu_item_category;
|
||||
$array['menu_items'][$x]['menu_item_icon'] = $menu_item_icon;
|
||||
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;
|
||||
}
|
||||
$array['menu_items'][$x]['menu_item_description'] = $menu_item_description;
|
||||
$x++;
|
||||
}
|
||||
//build the menu array
|
||||
if ($menu_item_uuid != $menu_item_parent_uuid) {
|
||||
$array['menu_items'][$x]['menu_item_uuid'] = $menu_item_uuid;
|
||||
$array['menu_items'][$x]['menu_uuid'] = $this->menu_uuid;
|
||||
$array['menu_items'][$x]['uuid'] = $uuid;
|
||||
$array['menu_items'][$x]['menu_item_title'] = $menu_item_title;
|
||||
$array['menu_items'][$x]['menu_item_link'] = $menu_item_path;
|
||||
$array['menu_items'][$x]['menu_item_category'] = $menu_item_category;
|
||||
$array['menu_items'][$x]['menu_item_icon'] = $menu_item_icon;
|
||||
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;
|
||||
}
|
||||
$array['menu_items'][$x]['menu_item_description'] = $menu_item_description;
|
||||
$x++;
|
||||
}
|
||||
|
||||
}
|
||||
unset($sql, $parameters, $num_rows);
|
||||
@@ -162,13 +187,14 @@ if (!class_exists('menu')) {
|
||||
//set the menu languages
|
||||
if (!$menu_item_exists && is_array($language->languages)) {
|
||||
foreach ($language->languages as $menu_language) {
|
||||
$menu_item_title = $menu["title"][$menu_language];
|
||||
if (strlen($menu_item_title) == 0) {
|
||||
$menu_item_title = $menu["title"]['en-us'];
|
||||
}
|
||||
$menu_language_uuid = uuid();
|
||||
//set the menu item title
|
||||
$menu_item_title = $menu["title"][$menu_language];
|
||||
if (strlen($menu_item_title) == 0) {
|
||||
$menu_item_title = $menu["title"]['en-us'];
|
||||
}
|
||||
|
||||
//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_uuid'] = $this->menu_uuid;
|
||||
$array['menu_languages'][$x]['menu_language'] = $menu_language;
|
||||
@@ -226,7 +252,7 @@ if (!class_exists('menu')) {
|
||||
$sql .= "and menu_uuid = :menu_uuid ";
|
||||
$sql .= "and group_name = :group_name ";
|
||||
$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['group_name'] = $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
|
||||
$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_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_uuid'] = $group_uuids[$group];
|
||||
$x++;
|
||||
@@ -247,6 +273,7 @@ if (!class_exists('menu')) {
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (is_array($array) && @sizeof($array) != 0) {
|
||||
//grant temporary permissions
|
||||
$p = new permissions;
|
||||
|
||||
Reference in New Issue
Block a user