FusionPBX пре 8 година
родитељ
комит
855f6f3c10
1 измењених фајлова са 37 додато и 26 уклоњено
  1. 37 26
      resources/classes/menu.php

+ 37 - 26
resources/classes/menu.php

@@ -37,7 +37,16 @@ if (!class_exists('menu')) {
 					$db = $this->db;
 				//remove existing menu languages
 					$sql  = "delete from v_menu_languages ";
-					$sql .= "where menu_uuid = '".$this->menu_uuid."';";
+					$sql .= "where menu_uuid = '".$this->menu_uuid."' ";
+					$sql .= "and menu_item_uuid in ( ";
+					$sql .= "	select menu_item_uuid ";
+					$sql .= "	from v_menu_items ";
+					$sql .= "	where menu_uuid = '".$this->menu_uuid."' ";
+					$sql .= "	and ( ";
+					$sql .= " 		menu_item_protected <> 'true' ";
+					$sql .= "		or menu_item_protected is null ";
+					$sql .= "	) ";
+					$sql .= ");";
 					$db->exec(check_sql($sql));
 				//remove existing unprotected menu item groups
 					$sql = "delete from v_menu_item_groups ";
@@ -111,7 +120,7 @@ if (!class_exists('menu')) {
 								$menu_item_description = $menu['desc'];
 
 							//menu found set the default
-								$menu_item_found = false;
+								$menu_item_exists = true;
 
 							//if the item uuid is not currently in the db then add it
 								$sql = "select * from v_menu_items ";
@@ -124,7 +133,7 @@ if (!class_exists('menu')) {
 									if (count($result) == 0) {
 
 										//menu found the menu
-											$menu_item_found = true;
+											$menu_item_exists = false;
 
 										//insert the default menu into the database
 											$sql = "insert into v_menu_items ";
@@ -170,30 +179,32 @@ if (!class_exists('menu')) {
 								}
 
 							//set the menu 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'];
+								if (!$menu_item_exists) {
+									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();
+										$sql = "insert into v_menu_languages ";
+										$sql .= "(";
+										$sql .= "menu_language_uuid, ";
+										$sql .= "menu_item_uuid, ";
+										$sql .= "menu_uuid, ";
+										$sql .= "menu_language, ";
+										$sql .= "menu_item_title ";
+										$sql .= ") ";
+										$sql .= "values ";
+										$sql .= "(";
+										$sql .= "'".$menu_language_uuid."', ";
+										$sql .= "'".$menu_item_uuid."', ";
+										$sql .= "'".$this->menu_uuid."', ";
+										$sql .= "'".$menu_language."', ";
+										$sql .= "'".check_str($menu_item_title)."' ";
+										$sql .= ")";
+										$db->exec(check_sql($sql));
+										unset($sql);
 									}
-									$menu_language_uuid = uuid();
-									$sql = "insert into v_menu_languages ";
-									$sql .= "(";
-									$sql .= "menu_language_uuid, ";
-									$sql .= "menu_item_uuid, ";
-									$sql .= "menu_uuid, ";
-									$sql .= "menu_language, ";
-									$sql .= "menu_item_title ";
-									$sql .= ") ";
-									$sql .= "values ";
-									$sql .= "(";
-									$sql .= "'".$menu_language_uuid."', ";
-									$sql .= "'".$menu_item_uuid."', ";
-									$sql .= "'".$this->menu_uuid."', ";
-									$sql .= "'".$menu_language."', ";
-									$sql .= "'".check_str($menu_item_title)."' ";
-									$sql .= ")";
-									$db->exec(check_sql($sql));
-									unset($sql);
 								}
 
 						}