cms/drupal/modules/book/book.install
changeset 541 e756a8c72c3d
equal deleted inserted replaced
540:07239de796bb 541:e756a8c72c3d
       
     1 <?php
       
     2 
       
     3 /**
       
     4  * @file
       
     5  * Install, update and uninstall functions for the book module.
       
     6  */
       
     7 
       
     8 /**
       
     9  * Implements hook_install().
       
    10  */
       
    11 function book_install() {
       
    12   // Add the node type.
       
    13   _book_install_type_create();
       
    14 }
       
    15 
       
    16 /**
       
    17  * Implements hook_uninstall().
       
    18  */
       
    19 function book_uninstall() {
       
    20   variable_del('book_allowed_types');
       
    21   variable_del('book_child_type');
       
    22   variable_del('book_block_mode');
       
    23 
       
    24   // Delete menu links.
       
    25   db_delete('menu_links')
       
    26     ->condition('module', 'book')
       
    27     ->execute();
       
    28   menu_cache_clear_all();
       
    29 }
       
    30 
       
    31 /**
       
    32  * Creates the book content type.
       
    33  */
       
    34 function _book_install_type_create() {
       
    35   // Create an additional node type.
       
    36   $book_node_type = array(
       
    37     'type' => 'book',
       
    38     'name' => t('Book page'),
       
    39     'base' => 'node_content',
       
    40     'description' => t('<em>Books</em> have a built-in hierarchical navigation. Use for handbooks or tutorials.'),
       
    41     'custom' => 1,
       
    42     'modified' => 1,
       
    43     'locked' => 0,
       
    44   );
       
    45 
       
    46   $book_node_type = node_type_set_defaults($book_node_type);
       
    47   node_type_save($book_node_type);
       
    48   node_add_body_field($book_node_type);
       
    49   // Default to not promoted.
       
    50   variable_set('node_options_book', array('status'));
       
    51   // Use this default type for adding content to books.
       
    52   variable_set('book_allowed_types', array('book'));
       
    53   variable_set('book_child_type', 'book');
       
    54 }
       
    55 
       
    56 /**
       
    57  * Implements hook_schema().
       
    58  */
       
    59 function book_schema() {
       
    60   $schema['book'] = array(
       
    61   'description' => 'Stores book outline information. Uniquely connects each node in the outline to a link in {menu_links}',
       
    62     'fields' => array(
       
    63       'mlid' => array(
       
    64         'type' => 'int',
       
    65         'unsigned' => TRUE,
       
    66         'not null' => TRUE,
       
    67         'default' => 0,
       
    68         'description' => "The book page's {menu_links}.mlid.",
       
    69       ),
       
    70       'nid' => array(
       
    71         'type' => 'int',
       
    72         'unsigned' => TRUE,
       
    73         'not null' => TRUE,
       
    74         'default' => 0,
       
    75         'description' => "The book page's {node}.nid.",
       
    76       ),
       
    77       'bid' => array(
       
    78         'type' => 'int',
       
    79         'unsigned' => TRUE,
       
    80         'not null' => TRUE,
       
    81         'default' => 0,
       
    82         'description' => "The book ID is the {book}.nid of the top-level page.",
       
    83       ),
       
    84     ),
       
    85     'primary key' => array('mlid'),
       
    86     'unique keys' => array(
       
    87       'nid' => array('nid'),
       
    88     ),
       
    89     'indexes' => array(
       
    90       'bid' => array('bid'),
       
    91     ),
       
    92   );
       
    93 
       
    94   return $schema;
       
    95 }