function menu_link_maintain

cis7 menu.inc menu_link_maintain($module, $op, $link_path, $link_title)
cle7 menu.inc menu_link_maintain($module, $op, $link_path, $link_title)
elmsmedia7 menu.inc menu_link_maintain($module, $op, $link_path, $link_title)
icor7 menu.inc menu_link_maintain($module, $op, $link_path, $link_title)
meedjum_blog7 menu.inc menu_link_maintain($module, $op, $link_path, $link_title)
mooc7 menu.inc menu_link_maintain($module, $op, $link_path, $link_title)

Inserts, updates, or deletes 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()
aggregator_save_category in modules/aggregator/aggregator.module
Adds/edits/deletes aggregator categories.

File

includes/menu.inc, line 3395
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':
      $result = db_query("SELECT * FROM {menu_links} WHERE link_path = :link_path AND module = :module AND customized = 0", array(':link_path' => $link_path, ':module' => $module))->fetchAll(PDO::FETCH_ASSOC);
      foreach ($result as $link) {
        $link['link_title'] = $link_title;
        $link['options'] = unserialize($link['options']);
        menu_link_save($link);
      }
      break;
    case 'delete':
      menu_link_delete(NULL, $link_path);
      break;
  }
}