annotate modules/shortcut/shortcut.install @ 0:ff03f76ab3fe

initial version
author danieleb <danielebarchiesi@me.com>
date Wed, 21 Aug 2013 18:51:11 +0100
parents
children
rev   line source
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 }