You are here

function system_update_7063 in Drupal 7

Delete {menu_links} records for 'type' => MENU_CALLBACK which would not appear in a fresh install.

Related topics

File

modules/system/system.install, line 3061
Install, update and uninstall functions for the system module.

Code

function system_update_7063() {

  // For router items where 'type' => MENU_CALLBACK, {menu_router}.type is
  // stored as 4 in Drupal 6, and 0 in Drupal 7. Fortunately Drupal 7 doesn't
  // store any types as 4, so delete both.
  $result = db_query('SELECT ml.mlid FROM {menu_links} ml INNER JOIN {menu_router} mr ON ml.router_path = mr.path WHERE ml.module = :system AND ml.customized = 0 AND mr.type IN(:callbacks)', array(
    ':callbacks' => array(
      0,
      4,
    ),
    ':system' => 'system',
  ));
  foreach ($result as $record) {
    db_delete('menu_links')
      ->condition('mlid', $record->mlid)
      ->execute();
  }
}