123 lines
		
	
	
		
			3.4 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
			
		
		
	
	
			123 lines
		
	
	
		
			3.4 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
<?php
 | 
						|
 | 
						|
/**
 | 
						|
 * @file
 | 
						|
 * Install, update, and uninstall functions for the admin menu module.
 | 
						|
 */
 | 
						|
 | 
						|
/**
 | 
						|
 * Implements hook_schema().
 | 
						|
 */
 | 
						|
function admin_menu_schema() {
 | 
						|
  $schema['cache_admin_menu'] = drupal_get_schema_unprocessed('system', 'cache');
 | 
						|
  $schema['cache_admin_menu']['description'] = 'Cache table for Administration menu to store client-side caching hashes.';
 | 
						|
  return $schema;
 | 
						|
}
 | 
						|
 | 
						|
/**
 | 
						|
 * Implements hook_install().
 | 
						|
 */
 | 
						|
function admin_menu_install() {
 | 
						|
  // Increase the module weight, so admin_menu catches any alterations made by
 | 
						|
  // other modules in hook_menu_alter().
 | 
						|
  db_update('system')
 | 
						|
    ->fields(array('weight' => 100))
 | 
						|
    ->condition('type', 'module')
 | 
						|
    ->condition('name', 'admin_menu')
 | 
						|
    ->execute();
 | 
						|
}
 | 
						|
 | 
						|
/**
 | 
						|
 * Implements hook_uninstall().
 | 
						|
 */
 | 
						|
function admin_menu_uninstall() {
 | 
						|
  // Delete variables.
 | 
						|
  variable_del('admin_menu_components');
 | 
						|
  variable_del('admin_menu_devel_modules');
 | 
						|
  variable_del('admin_menu_devel_modules_enabled');
 | 
						|
  variable_del('admin_menu_devel_modules_skip');
 | 
						|
  variable_del('admin_menu_margin_top');
 | 
						|
  variable_del('admin_menu_position_fixed');
 | 
						|
  variable_del('admin_menu_tweak_modules');
 | 
						|
  variable_del('admin_menu_tweak_tabs');
 | 
						|
  variable_del('admin_menu_show_all');
 | 
						|
  variable_del('admin_menu_display');
 | 
						|
  variable_del('admin_menu_cache_server');
 | 
						|
  variable_del('admin_menu_cache_client');
 | 
						|
}
 | 
						|
 | 
						|
/**
 | 
						|
 * Ensure that admin_menu is rebuilt after upgrading to D6.
 | 
						|
 */
 | 
						|
function admin_menu_update_6000() {
 | 
						|
  // Drop the {admin_menu} table in admin_menu_update_6000() on sites that used
 | 
						|
  // one of the later patches in #132524.
 | 
						|
  if (db_table_exists('admin_menu')) {
 | 
						|
    db_drop_table('admin_menu');
 | 
						|
  }
 | 
						|
}
 | 
						|
 | 
						|
/**
 | 
						|
 * Wipe and rebuild so we can switch the icon path to <front>.
 | 
						|
 */
 | 
						|
function admin_menu_update_6001() {
 | 
						|
  db_delete('menu_links')->condition('module', 'admin_menu')->execute();
 | 
						|
  menu_cache_clear('admin_menu');
 | 
						|
}
 | 
						|
 | 
						|
/**
 | 
						|
 * Add {cache_admin_menu} table.
 | 
						|
 */
 | 
						|
function admin_menu_update_7300() {
 | 
						|
  if (!db_table_exists('cache_admin_menu')) {
 | 
						|
    $schema = drupal_get_schema_unprocessed('system', 'cache');
 | 
						|
    db_create_table('cache_admin_menu', $schema);
 | 
						|
  }
 | 
						|
}
 | 
						|
 | 
						|
/**
 | 
						|
 * Increase the module weight.
 | 
						|
 *
 | 
						|
 * @see admin_menu_install()
 | 
						|
 */
 | 
						|
function admin_menu_update_7302() {
 | 
						|
  db_update('system')
 | 
						|
    ->fields(array('weight' => 100))
 | 
						|
    ->condition('type', 'module')
 | 
						|
    ->condition('name', 'admin_menu')
 | 
						|
    ->execute();
 | 
						|
}
 | 
						|
 | 
						|
/**
 | 
						|
 * Remove local tasks from {menu_links} table.
 | 
						|
 */
 | 
						|
function admin_menu_update_7303() {
 | 
						|
  db_delete('menu_router')
 | 
						|
    ->condition('path', 'admin/%', 'LIKE')
 | 
						|
    ->condition('type', MENU_IS_LOCAL_TASK, '&')
 | 
						|
    ->execute();
 | 
						|
}
 | 
						|
 | 
						|
/**
 | 
						|
 * Remove obsolete 'admin_menu' menu and all orphan links in it.
 | 
						|
 */
 | 
						|
function admin_menu_update_7304() {
 | 
						|
  // Remove the custom menu used by 6.x-1.x.
 | 
						|
  if (db_table_exists('menu_custom')) {
 | 
						|
    db_delete('menu_custom')->condition('menu_name', 'admin_menu')->execute();
 | 
						|
  }
 | 
						|
 | 
						|
  // 6.x-1.x cloned the entire link structure below the path 'admin' into a
 | 
						|
  // separate 'menu_name' "admin_menu" with 'module' "admin_menu". 6.x-3.x and
 | 
						|
  // early alpha versions of 7.x-3.x still did something similar. All of these
 | 
						|
  // records are obsolete. Removal of the 'module' records (without different
 | 
						|
  // menu_name) is particularly important, since they would otherwise appear
 | 
						|
  // as duplicate links.
 | 
						|
  db_delete('menu_links')
 | 
						|
    ->condition(db_or()
 | 
						|
      ->condition('module', 'admin_menu')
 | 
						|
      ->condition('menu_name', 'admin_menu')
 | 
						|
    )
 | 
						|
    ->execute();
 | 
						|
}
 |