| 6 menu.inc | menu_link_maintain($module, $op, $link_path, $link_title) |
| 7 menu.inc | menu_link_maintain($module, $op, $link_path, $link_title) |
| 8 menu.inc | menu_link_maintain($module, $op, $link_path, $link_title) |
Insert, update or delete an uncustomized menu link related to a module.
Parameters
$module: The name of the module.
$op: Operation to perform: insert, update or delete.
$link_path: The path this link points to.
$link_title: Title of the link to insert or new title to update the link to. Unused for delete.
Return value
The insert op returns the mlid of the new item. Others op return NULL.
Related topics
1 call to menu_link_maintain()
File
- includes/
menu.inc, line 2135 - API for the Drupal menu system.
Code
function menu_link_maintain($module, $op, $link_path, $link_title) {
switch ($op) {
case 'insert':
$menu_link = array(
'link_title' => $link_title,
'link_path' => $link_path,
'module' => $module,
);
return menu_link_save($menu_link);
break;
case 'update':
db_query("UPDATE {menu_links} SET link_title = '%s' WHERE link_path = '%s' AND customized = 0 AND module = '%s'", $link_title, $link_path, $module);
$result = db_query("SELECT menu_name FROM {menu_links} WHERE link_path = '%s' AND customized = 0 AND module = '%s'", $link_path, $module);
while ($item = db_fetch_array($result)) {
menu_cache_clear($item['menu_name']);
}
break;
case 'delete':
menu_link_delete(NULL, $link_path);
break;
}
}
Login or register to post comments
Comments
See also menu_link_save()
Also see menu_link_save();
To create an entire D6 menu, I have found it helpful to use drupal_execute():
<?php
module_load_include('inc', 'menu', 'menu.admin');
$form_state = array();
$form_state['menu_name'] = 'test';
$form_state['title'] = 'test title';
$form_state['description'] = 'test description';
$form_state['#insert'] = TRUE;
drupal_execute('menu_edit_menu', $form_state, NULL);
?>