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('Books 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')); } /** * 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; } /** * Move book settings from variables to config. * * @ingroup config_upgrade */ function book_update_8000() { update_variables_to_config('book.settings', array( 'book_allowed_types' => 'allowed_types', 'book_child_type' => 'child_type', 'book_block_mode' => 'block.navigation.mode', )); }