|
danielebarchiesi@0
|
1 <?php
|
|
danielebarchiesi@0
|
2
|
|
danielebarchiesi@0
|
3 /**
|
|
danielebarchiesi@0
|
4 * @file
|
|
danielebarchiesi@0
|
5 * Install, update and uninstall functions for the shortcut module.
|
|
danielebarchiesi@0
|
6 */
|
|
danielebarchiesi@0
|
7
|
|
danielebarchiesi@0
|
8 /**
|
|
danielebarchiesi@0
|
9 * Implements hook_install().
|
|
danielebarchiesi@0
|
10 */
|
|
danielebarchiesi@0
|
11 function shortcut_install() {
|
|
danielebarchiesi@0
|
12 $t = get_t();
|
|
danielebarchiesi@0
|
13 // Create an initial default shortcut set.
|
|
danielebarchiesi@0
|
14 $shortcut_set = new stdClass();
|
|
danielebarchiesi@0
|
15 $shortcut_set->title = $t('Default');
|
|
danielebarchiesi@0
|
16 $shortcut_set->links = array(
|
|
danielebarchiesi@0
|
17 array(
|
|
danielebarchiesi@0
|
18 'link_path' => 'node/add',
|
|
danielebarchiesi@0
|
19 'link_title' => $t('Add content'),
|
|
danielebarchiesi@0
|
20 'weight' => -20,
|
|
danielebarchiesi@0
|
21 ),
|
|
danielebarchiesi@0
|
22 array(
|
|
danielebarchiesi@0
|
23 'link_path' => 'admin/content',
|
|
danielebarchiesi@0
|
24 'link_title' => $t('Find content'),
|
|
danielebarchiesi@0
|
25 'weight' => -19,
|
|
danielebarchiesi@0
|
26 ),
|
|
danielebarchiesi@0
|
27 );
|
|
danielebarchiesi@0
|
28 // If Drupal is being installed, rebuild the menu before saving the shortcut
|
|
danielebarchiesi@0
|
29 // set, to make sure the links defined above can be correctly saved. (During
|
|
danielebarchiesi@0
|
30 // installation, the menu might not have been built at all yet, or it might
|
|
danielebarchiesi@0
|
31 // have been built but without the node module's links in it.)
|
|
danielebarchiesi@0
|
32 if (drupal_installation_attempted()) {
|
|
danielebarchiesi@0
|
33 menu_rebuild();
|
|
danielebarchiesi@0
|
34 }
|
|
danielebarchiesi@0
|
35 shortcut_set_save($shortcut_set);
|
|
danielebarchiesi@0
|
36 }
|
|
danielebarchiesi@0
|
37
|
|
danielebarchiesi@0
|
38 /**
|
|
danielebarchiesi@0
|
39 * Implements hook_uninstall().
|
|
danielebarchiesi@0
|
40 */
|
|
danielebarchiesi@0
|
41 function shortcut_uninstall() {
|
|
danielebarchiesi@0
|
42 drupal_load('module', 'shortcut');
|
|
danielebarchiesi@0
|
43 // Delete the menu links associated with each shortcut set.
|
|
danielebarchiesi@0
|
44 foreach (shortcut_sets() as $shortcut_set) {
|
|
danielebarchiesi@0
|
45 menu_delete_links($shortcut_set->set_name);
|
|
danielebarchiesi@0
|
46 }
|
|
danielebarchiesi@0
|
47 }
|
|
danielebarchiesi@0
|
48
|
|
danielebarchiesi@0
|
49 /**
|
|
danielebarchiesi@0
|
50 * Implements hook_schema().
|
|
danielebarchiesi@0
|
51 */
|
|
danielebarchiesi@0
|
52 function shortcut_schema() {
|
|
danielebarchiesi@0
|
53 $schema['shortcut_set'] = array(
|
|
danielebarchiesi@0
|
54 'description' => 'Stores information about sets of shortcuts links.',
|
|
danielebarchiesi@0
|
55 'fields' => array(
|
|
danielebarchiesi@0
|
56 'set_name' => array(
|
|
danielebarchiesi@0
|
57 'type' => 'varchar',
|
|
danielebarchiesi@0
|
58 'length' => 32,
|
|
danielebarchiesi@0
|
59 'not null' => TRUE,
|
|
danielebarchiesi@0
|
60 'default' => '',
|
|
danielebarchiesi@0
|
61 'description' => "Primary Key: The {menu_links}.menu_name under which the set's links are stored.",
|
|
danielebarchiesi@0
|
62 ),
|
|
danielebarchiesi@0
|
63 'title' => array(
|
|
danielebarchiesi@0
|
64 'type' => 'varchar',
|
|
danielebarchiesi@0
|
65 'length' => 255,
|
|
danielebarchiesi@0
|
66 'not null' => TRUE,
|
|
danielebarchiesi@0
|
67 'default' => '',
|
|
danielebarchiesi@0
|
68 'description' => 'The title of the set.',
|
|
danielebarchiesi@0
|
69 ),
|
|
danielebarchiesi@0
|
70 ),
|
|
danielebarchiesi@0
|
71 'primary key' => array('set_name'),
|
|
danielebarchiesi@0
|
72 'foreign keys' => array(
|
|
danielebarchiesi@0
|
73 'menu_name' => array(
|
|
danielebarchiesi@0
|
74 'table' => 'menu_links',
|
|
danielebarchiesi@0
|
75 'columns' => array('set_name' => 'menu_name'),
|
|
danielebarchiesi@0
|
76 ),
|
|
danielebarchiesi@0
|
77 ),
|
|
danielebarchiesi@0
|
78 );
|
|
danielebarchiesi@0
|
79
|
|
danielebarchiesi@0
|
80 $schema['shortcut_set_users'] = array(
|
|
danielebarchiesi@0
|
81 'description' => 'Maps users to shortcut sets.',
|
|
danielebarchiesi@0
|
82 'fields' => array(
|
|
danielebarchiesi@0
|
83 'uid' => array(
|
|
danielebarchiesi@0
|
84 'type' => 'int',
|
|
danielebarchiesi@0
|
85 'unsigned' => TRUE,
|
|
danielebarchiesi@0
|
86 'not null' => TRUE,
|
|
danielebarchiesi@0
|
87 'default' => 0,
|
|
danielebarchiesi@0
|
88 'description' => 'The {users}.uid for this set.',
|
|
danielebarchiesi@0
|
89 ),
|
|
danielebarchiesi@0
|
90 'set_name' => array(
|
|
danielebarchiesi@0
|
91 'type' => 'varchar',
|
|
danielebarchiesi@0
|
92 'length' => 32,
|
|
danielebarchiesi@0
|
93 'not null' => TRUE,
|
|
danielebarchiesi@0
|
94 'default' => '',
|
|
danielebarchiesi@0
|
95 'description' => "The {shortcut_set}.set_name that will be displayed for this user.",
|
|
danielebarchiesi@0
|
96 ),
|
|
danielebarchiesi@0
|
97 ),
|
|
danielebarchiesi@0
|
98 'primary key' => array('uid'),
|
|
danielebarchiesi@0
|
99 'indexes' => array(
|
|
danielebarchiesi@0
|
100 'set_name' => array('set_name'),
|
|
danielebarchiesi@0
|
101 ),
|
|
danielebarchiesi@0
|
102 'foreign keys' => array(
|
|
danielebarchiesi@0
|
103 'set_user' => array(
|
|
danielebarchiesi@0
|
104 'table' => 'users',
|
|
danielebarchiesi@0
|
105 'columns' => array('uid' => 'uid'),
|
|
danielebarchiesi@0
|
106 ),
|
|
danielebarchiesi@0
|
107 'set_name' => array(
|
|
danielebarchiesi@0
|
108 'table' => 'shortcut_set',
|
|
danielebarchiesi@0
|
109 'columns' => array('set_name' => 'set_name'),
|
|
danielebarchiesi@0
|
110 ),
|
|
danielebarchiesi@0
|
111 ),
|
|
danielebarchiesi@0
|
112 );
|
|
danielebarchiesi@0
|
113
|
|
danielebarchiesi@0
|
114 return $schema;
|
|
danielebarchiesi@0
|
115 }
|