summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDries Buytaert <dries@buytaert.net>2007-06-06 06:26:15 +0000
committerDries Buytaert <dries@buytaert.net>2007-06-06 06:26:15 +0000
commitcd0c56481de5d50582f9a9ac09670cf97b8cb290 (patch)
tree6fa609ce3c3f7d48205fc7a83192737b46d8e7d3
parent722f8faae97f17274598b28952b15a9e0af96ed4 (diff)
downloadbrdo-cd0c56481de5d50582f9a9ac09670cf97b8cb290.tar.gz
brdo-cd0c56481de5d50582f9a9ac09670cf97b8cb290.tar.bz2
- Patch #149562 by chx: avoid duplicate menu items.
-rw-r--r--includes/menu.inc30
1 files changed, 16 insertions, 14 deletions
diff --git a/includes/menu.inc b/includes/menu.inc
index 888715548..c87ffb124 100644
--- a/includes/menu.inc
+++ b/includes/menu.inc
@@ -1343,21 +1343,23 @@ function menu_link_save(&$item) {
else {
$item['plid'] = $parent['mlid'];
}
- db_query("INSERT INTO {menu_links} (
- menu_name, plid, link_path,
- hidden, external, has_children,
- expanded, weight,
- module, link_title, options) VALUES (
- '%s', %d, '%s',
- %d, %d, %d,
- %d, %d,
- '%s', '%s', '%s')",
- $item['menu_name'], $item['plid'], $item['link_path'],
- $item['hidden'], $item['_external'], $item['has_children'],
- $item['expanded'], $item['weight'],
- $item['module'], $item['link_title'], serialize($item['options']));
- $item['mlid'] = db_last_insert_id('menu_links', 'mlid');
+ if (!$existing_item) {
+ db_query("INSERT INTO {menu_links} (
+ menu_name, plid, link_path,
+ hidden, external, has_children,
+ expanded, weight,
+ module, link_title, options) VALUES (
+ '%s', %d, '%s',
+ %d, %d, %d,
+ %d, %d,
+ '%s', '%s', '%s')",
+ $item['menu_name'], $item['plid'], $item['link_path'],
+ $item['hidden'], $item['_external'], $item['has_children'],
+ $item['expanded'], $item['weight'],
+ $item['module'], $item['link_title'], serialize($item['options']));
+ $item['mlid'] = db_last_insert_id('menu_links', 'mlid');
+ }
if (!$item['plid']) {
$item['p1'] = $item['mlid'];