1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495 |
- <?php
- /**
- * @file
- * Install, update and uninstall functions for the book module.
- */
- /**
- * Implements hook_install().
- */
- function book_install() {
- // Add the node type.
- _book_install_type_create();
- }
- /**
- * Implements hook_uninstall().
- */
- function book_uninstall() {
- variable_del('book_allowed_types');
- variable_del('book_child_type');
- variable_del('book_block_mode');
- // Delete menu links.
- db_delete('menu_links')
- ->condition('module', 'book')
- ->execute();
- menu_cache_clear_all();
- }
- /**
- * Creates the book content type.
- */
- function _book_install_type_create() {
- // Create an additional node type.
- $book_node_type = array(
- 'type' => 'book',
- 'name' => t('Book page'),
- 'base' => 'node_content',
- 'description' => t('<em>Books</em> have a built-in hierarchical navigation. Use for handbooks or tutorials.'),
- 'custom' => 1,
- 'modified' => 1,
- 'locked' => 0,
- );
- $book_node_type = node_type_set_defaults($book_node_type);
- node_type_save($book_node_type);
- node_add_body_field($book_node_type);
- // Default to not promoted.
- variable_set('node_options_book', array('status'));
- // Use this default type for adding content to books.
- variable_set('book_allowed_types', array('book'));
- variable_set('book_child_type', 'book');
- }
- /**
- * Implements hook_schema().
- */
- function book_schema() {
- $schema['book'] = array(
- 'description' => 'Stores book outline information. Uniquely connects each node in the outline to a link in {menu_links}',
- 'fields' => array(
- 'mlid' => array(
- 'type' => 'int',
- 'unsigned' => TRUE,
- 'not null' => TRUE,
- 'default' => 0,
- 'description' => "The book page's {menu_links}.mlid.",
- ),
- 'nid' => array(
- 'type' => 'int',
- 'unsigned' => TRUE,
- 'not null' => TRUE,
- 'default' => 0,
- 'description' => "The book page's {node}.nid.",
- ),
- 'bid' => array(
- 'type' => 'int',
- 'unsigned' => TRUE,
- 'not null' => TRUE,
- 'default' => 0,
- 'description' => "The book ID is the {book}.nid of the top-level page.",
- ),
- ),
- 'primary key' => array('mlid'),
- 'unique keys' => array(
- 'nid' => array('nid'),
- ),
- 'indexes' => array(
- 'bid' => array('bid'),
- ),
- );
- return $schema;
- }
|