function menu_link_node_menu_disable in Menu Link (Field) 7
Implements hook_disable().
File
- menu_link_node_menu/
menu_link_node_menu.install, line 103 - Install, update and uninstall functions for the Menu link module.
Code
function menu_link_node_menu_disable() {
$instances = field_read_instances(array(
'entity_type' => 'node',
'field_name' => MENU_LINK_DEFAULT_FIELD,
));
if (!empty($instances)) {
$bundles = array();
foreach ($instances as $instance) {
$bundles[] = $instance['bundle'];
}
// Pass on ownership of menu links previously owned by the Menu link module
// to the Menu module. We don't need to use menu_link_save() as an ownership
// change doesn't have to trigger hooks.
db_update('menu_links')
->fields(array(
'module' => 'menu',
))
->condition('module', 'menu_link')
->exists(db_select('field_data_' . MENU_LINK_DEFAULT_FIELD, 'f')
->fields('f')
->condition('f.entity_type', 'node')
->condition('f.bundle', $bundles)
->where('f.' . MENU_LINK_DEFAULT_FIELD . '_mlid = mlid'))
->execute();
// De-activate instances of the default menu link field on content types.
foreach ($instances as $instance) {
$instance['active'] = 0;
field_update_instance($instance);
}
}
}