webmaster@1: t('Forums'), webmaster@1: 'multiple' => 0, webmaster@1: 'required' => 0, webmaster@1: 'hierarchy' => 1, webmaster@1: 'relations' => 0, webmaster@1: 'module' => 'forum', webmaster@1: 'weight' => -10, webmaster@1: 'nodes' => array('forum' => 1), webmaster@1: ); webmaster@1: taxonomy_save_vocabulary($vocabulary); webmaster@1: webmaster@1: variable_set('forum_nav_vocabulary', $vocabulary['vid']); webmaster@1: } webmaster@1: } webmaster@1: webmaster@1: /** webmaster@1: * Implementation of hook_uninstall(). webmaster@1: */ webmaster@1: function forum_uninstall() { webmaster@1: // Load the dependent Taxonomy module, in case it has been disabled. webmaster@1: drupal_load('module', 'taxonomy'); webmaster@1: webmaster@1: // Delete the vocabulary. webmaster@1: $vid = variable_get('forum_nav_vocabulary', ''); webmaster@1: taxonomy_del_vocabulary($vid); webmaster@1: webmaster@1: db_query("DELETE FROM {node} WHERE type = 'forum'"); webmaster@1: db_query('DROP TABLE {forum}'); webmaster@1: variable_del('forum_containers'); webmaster@1: variable_del('forum_nav_vocabulary'); webmaster@1: variable_del('forum_hot_topic'); webmaster@1: variable_del('forum_per_page'); webmaster@1: variable_del('forum_order'); webmaster@1: variable_del('forum_block_num_0'); webmaster@1: variable_del('forum_block_num_1'); webmaster@1: } webmaster@1: webmaster@1: /** webmaster@1: * Implementation of hook_schema(). webmaster@1: */ webmaster@1: function forum_schema() { webmaster@1: $schema['forum'] = array( webmaster@1: 'description' => t('Stores the relationship of nodes to forum terms.'), webmaster@1: 'fields' => array( webmaster@1: 'nid' => array( webmaster@1: 'type' => 'int', webmaster@1: 'unsigned' => TRUE, webmaster@1: 'not null' => TRUE, webmaster@1: 'default' => 0, webmaster@1: 'description' => t('The {node}.nid of the node.'), webmaster@1: ), webmaster@1: 'vid' => array( webmaster@1: 'type' => 'int', webmaster@1: 'unsigned' => TRUE, webmaster@1: 'not null' => TRUE, webmaster@1: 'default' => 0, webmaster@1: 'description' => t('Primary Key: The {node}.vid of the node.'), webmaster@1: ), webmaster@1: 'tid' => array( webmaster@1: 'type' => 'int', webmaster@1: 'unsigned' => TRUE, webmaster@1: 'not null' => TRUE, webmaster@1: 'default' => 0, webmaster@1: 'description' => t('The {term_data}.tid of the forum term assigned to the node.'), webmaster@1: ), webmaster@1: ), webmaster@1: 'indexes' => array( webmaster@1: 'nid' => array('nid'), webmaster@1: 'tid' => array('tid') webmaster@1: ), webmaster@1: 'primary key' => array('vid'), webmaster@1: ); webmaster@1: webmaster@1: return $schema; webmaster@1: } webmaster@1: webmaster@1: /** webmaster@1: * Create the forum vocabulary if does not exist. Assign the webmaster@1: * vocabulary a low weight so it will appear first in forum topic webmaster@1: * create and edit forms. Do not just call forum_enable() because in webmaster@1: * future versions it might do something different. webmaster@1: */ webmaster@1: function forum_update_6000() { webmaster@1: $ret = array(); webmaster@1: webmaster@1: $vid = variable_get('forum_nav_vocabulary', 0); webmaster@1: $vocabularies = taxonomy_get_vocabularies(); webmaster@1: if (!isset($vocabularies[$vid])) { webmaster@1: $vocabulary = array( webmaster@1: 'name' => t('Forums'), webmaster@1: 'multiple' => 0, webmaster@1: 'required' => 0, webmaster@1: 'hierarchy' => 1, webmaster@1: 'relations' => 0, webmaster@1: 'module' => 'forum', webmaster@1: 'weight' => -10, webmaster@1: 'nodes' => array('forum' => 1), webmaster@1: ); webmaster@1: taxonomy_save_vocabulary($vocabulary); webmaster@1: webmaster@1: variable_set('forum_nav_vocabulary', $vocabulary['vid']); webmaster@1: } webmaster@1: webmaster@1: return $ret; webmaster@1: }