danielebarchiesi@4
|
1 <?php
|
danielebarchiesi@4
|
2
|
danielebarchiesi@4
|
3 /**
|
danielebarchiesi@4
|
4 * @file
|
danielebarchiesi@4
|
5 * Install, update, and uninstall functions for the admin menu module.
|
danielebarchiesi@4
|
6 */
|
danielebarchiesi@4
|
7
|
danielebarchiesi@4
|
8 /**
|
danielebarchiesi@4
|
9 * Implements hook_schema().
|
danielebarchiesi@4
|
10 */
|
danielebarchiesi@4
|
11 function admin_menu_schema() {
|
danielebarchiesi@4
|
12 $schema['cache_admin_menu'] = drupal_get_schema_unprocessed('system', 'cache');
|
danielebarchiesi@4
|
13 $schema['cache_admin_menu']['description'] = 'Cache table for Administration menu to store client-side caching hashes.';
|
danielebarchiesi@4
|
14 return $schema;
|
danielebarchiesi@4
|
15 }
|
danielebarchiesi@4
|
16
|
danielebarchiesi@4
|
17 /**
|
danielebarchiesi@4
|
18 * Implements hook_install().
|
danielebarchiesi@4
|
19 */
|
danielebarchiesi@4
|
20 function admin_menu_install() {
|
danielebarchiesi@4
|
21 // Increase the module weight, so admin_menu catches any alterations made by
|
danielebarchiesi@4
|
22 // other modules in hook_menu_alter().
|
danielebarchiesi@4
|
23 db_update('system')
|
danielebarchiesi@4
|
24 ->fields(array('weight' => 100))
|
danielebarchiesi@4
|
25 ->condition('type', 'module')
|
danielebarchiesi@4
|
26 ->condition('name', 'admin_menu')
|
danielebarchiesi@4
|
27 ->execute();
|
danielebarchiesi@4
|
28 }
|
danielebarchiesi@4
|
29
|
danielebarchiesi@4
|
30 /**
|
danielebarchiesi@4
|
31 * Implements hook_uninstall().
|
danielebarchiesi@4
|
32 */
|
danielebarchiesi@4
|
33 function admin_menu_uninstall() {
|
danielebarchiesi@4
|
34 // Delete variables.
|
danielebarchiesi@4
|
35 variable_del('admin_menu_components');
|
danielebarchiesi@4
|
36 variable_del('admin_menu_devel_modules');
|
danielebarchiesi@4
|
37 variable_del('admin_menu_devel_modules_enabled');
|
danielebarchiesi@4
|
38 variable_del('admin_menu_devel_modules_skip');
|
danielebarchiesi@4
|
39 variable_del('admin_menu_margin_top');
|
danielebarchiesi@4
|
40 variable_del('admin_menu_position_fixed');
|
danielebarchiesi@4
|
41 variable_del('admin_menu_tweak_modules');
|
danielebarchiesi@4
|
42 variable_del('admin_menu_tweak_tabs');
|
danielebarchiesi@4
|
43 variable_del('admin_menu_show_all');
|
danielebarchiesi@4
|
44 variable_del('admin_menu_display');
|
danielebarchiesi@4
|
45 variable_del('admin_menu_cache_server');
|
danielebarchiesi@4
|
46 variable_del('admin_menu_cache_client');
|
danielebarchiesi@4
|
47 }
|
danielebarchiesi@4
|
48
|
danielebarchiesi@4
|
49 /**
|
danielebarchiesi@4
|
50 * Ensure that admin_menu is rebuilt after upgrading to D6.
|
danielebarchiesi@4
|
51 */
|
danielebarchiesi@4
|
52 function admin_menu_update_6000() {
|
danielebarchiesi@4
|
53 // Drop the {admin_menu} table in admin_menu_update_6000() on sites that used
|
danielebarchiesi@4
|
54 // one of the later patches in #132524.
|
danielebarchiesi@4
|
55 if (db_table_exists('admin_menu')) {
|
danielebarchiesi@4
|
56 db_drop_table('admin_menu');
|
danielebarchiesi@4
|
57 }
|
danielebarchiesi@4
|
58 }
|
danielebarchiesi@4
|
59
|
danielebarchiesi@4
|
60 /**
|
danielebarchiesi@4
|
61 * Wipe and rebuild so we can switch the icon path to <front>.
|
danielebarchiesi@4
|
62 */
|
danielebarchiesi@4
|
63 function admin_menu_update_6001() {
|
danielebarchiesi@4
|
64 db_delete('menu_links')->condition('module', 'admin_menu')->execute();
|
danielebarchiesi@4
|
65 menu_cache_clear('admin_menu');
|
danielebarchiesi@4
|
66 }
|
danielebarchiesi@4
|
67
|
danielebarchiesi@4
|
68 /**
|
danielebarchiesi@4
|
69 * Add {cache_admin_menu} table.
|
danielebarchiesi@4
|
70 */
|
danielebarchiesi@4
|
71 function admin_menu_update_7300() {
|
danielebarchiesi@4
|
72 if (!db_table_exists('cache_admin_menu')) {
|
danielebarchiesi@4
|
73 $schema = drupal_get_schema_unprocessed('system', 'cache');
|
danielebarchiesi@4
|
74 db_create_table('cache_admin_menu', $schema);
|
danielebarchiesi@4
|
75 }
|
danielebarchiesi@4
|
76 }
|
danielebarchiesi@4
|
77
|
danielebarchiesi@4
|
78 /**
|
danielebarchiesi@4
|
79 * Increase the module weight.
|
danielebarchiesi@4
|
80 *
|
danielebarchiesi@4
|
81 * @see admin_menu_install()
|
danielebarchiesi@4
|
82 */
|
danielebarchiesi@4
|
83 function admin_menu_update_7302() {
|
danielebarchiesi@4
|
84 db_update('system')
|
danielebarchiesi@4
|
85 ->fields(array('weight' => 100))
|
danielebarchiesi@4
|
86 ->condition('type', 'module')
|
danielebarchiesi@4
|
87 ->condition('name', 'admin_menu')
|
danielebarchiesi@4
|
88 ->execute();
|
danielebarchiesi@4
|
89 }
|
danielebarchiesi@4
|
90
|
danielebarchiesi@4
|
91 /**
|
danielebarchiesi@4
|
92 * Remove local tasks from {menu_links} table.
|
danielebarchiesi@4
|
93 */
|
danielebarchiesi@4
|
94 function admin_menu_update_7303() {
|
danielebarchiesi@4
|
95 db_delete('menu_router')
|
danielebarchiesi@4
|
96 ->condition('path', 'admin/%', 'LIKE')
|
danielebarchiesi@4
|
97 ->condition('type', MENU_IS_LOCAL_TASK, '&')
|
danielebarchiesi@4
|
98 ->execute();
|
danielebarchiesi@4
|
99 }
|
danielebarchiesi@4
|
100
|
danielebarchiesi@4
|
101 /**
|
danielebarchiesi@4
|
102 * Remove obsolete 'admin_menu' menu and all orphan links in it.
|
danielebarchiesi@4
|
103 */
|
danielebarchiesi@4
|
104 function admin_menu_update_7304() {
|
danielebarchiesi@4
|
105 // Remove the custom menu used by 6.x-1.x.
|
danielebarchiesi@4
|
106 if (db_table_exists('menu_custom')) {
|
danielebarchiesi@4
|
107 db_delete('menu_custom')->condition('menu_name', 'admin_menu')->execute();
|
danielebarchiesi@4
|
108 }
|
danielebarchiesi@4
|
109
|
danielebarchiesi@4
|
110 // 6.x-1.x cloned the entire link structure below the path 'admin' into a
|
danielebarchiesi@4
|
111 // separate 'menu_name' "admin_menu" with 'module' "admin_menu". 6.x-3.x and
|
danielebarchiesi@4
|
112 // early alpha versions of 7.x-3.x still did something similar. All of these
|
danielebarchiesi@4
|
113 // records are obsolete. Removal of the 'module' records (without different
|
danielebarchiesi@4
|
114 // menu_name) is particularly important, since they would otherwise appear
|
danielebarchiesi@4
|
115 // as duplicate links.
|
danielebarchiesi@4
|
116 db_delete('menu_links')
|
danielebarchiesi@4
|
117 ->condition(db_or()
|
danielebarchiesi@4
|
118 ->condition('module', 'admin_menu')
|
danielebarchiesi@4
|
119 ->condition('menu_name', 'admin_menu')
|
danielebarchiesi@4
|
120 )
|
danielebarchiesi@4
|
121 ->execute();
|
danielebarchiesi@4
|
122 }
|