home *** CD-ROM | disk | FTP | other *** search
/ Cricao de Sites - 650 Layouts Prontos / WebMasters.iso / CMS / drupal-6.0.exe / drupal-6.0 / modules / forum / forum.install < prev    next >
Encoding:
Text File  |  2007-12-31  |  3.6 KB  |  132 lines

  1. <?php
  2. // $Id: forum.install,v 1.16 2007/12/31 16:58:34 goba Exp $
  3.  
  4. /**
  5.  * Implementation of hook_install().
  6.  */
  7. function forum_install() {
  8.   // Create tables.
  9.   drupal_install_schema('forum');
  10.   // Set the weight of the forum.module to 1 so it is loaded after the taxonomy.module.
  11.   db_query("UPDATE {system} SET weight = 1 WHERE name = 'forum'");
  12. }
  13.  
  14. function forum_enable() {
  15.   if ($vocabulary = taxonomy_vocabulary_load(variable_get('forum_nav_vocabulary', 0))) {
  16.     // Existing install. Add back forum node type, if the forums
  17.     // vocabulary still exists. Keep all other node types intact there.
  18.     $vocabulary = (array) $vocabulary;
  19.     $vocabulary['nodes']['forum'] = 1;
  20.     taxonomy_save_vocabulary($vocabulary);
  21.   }
  22.   else {
  23.     // Create the forum vocabulary if it does not exist. Assign the vocabulary
  24.     // a low weight so it will appear first in forum topic create and edit
  25.     // forms.
  26.     $vocabulary = array(
  27.       'name' => t('Forums'),
  28.       'multiple' => 0,
  29.       'required' => 0,
  30.       'hierarchy' => 1,
  31.       'relations' => 0,
  32.       'module' => 'forum',
  33.       'weight' => -10,
  34.       'nodes' => array('forum' => 1),
  35.     );
  36.     taxonomy_save_vocabulary($vocabulary);
  37.  
  38.     variable_set('forum_nav_vocabulary', $vocabulary['vid']);
  39.   }
  40. }
  41.  
  42. /**
  43.  * Implementation of hook_uninstall().
  44.  */
  45. function forum_uninstall() {
  46.   // Load the dependent Taxonomy module, in case it has been disabled.
  47.   drupal_load('module', 'taxonomy');
  48.  
  49.   // Delete the vocabulary.
  50.   $vid = variable_get('forum_nav_vocabulary', '');
  51.   taxonomy_del_vocabulary($vid);
  52.  
  53.   db_query("DELETE FROM {node} WHERE type = 'forum'");
  54.   db_query('DROP TABLE {forum}');
  55.   variable_del('forum_containers');
  56.   variable_del('forum_nav_vocabulary');
  57.   variable_del('forum_hot_topic');
  58.   variable_del('forum_per_page');
  59.   variable_del('forum_order');
  60.   variable_del('forum_block_num_0');
  61.   variable_del('forum_block_num_1');
  62. }
  63.  
  64. /**
  65.  * Implementation of hook_schema().
  66.  */
  67. function forum_schema() {
  68.   $schema['forum'] = array(
  69.     'description' => t('Stores the relationship of nodes to forum terms.'),
  70.     'fields' => array(
  71.       'nid' => array(
  72.         'type' => 'int',
  73.         'unsigned' => TRUE,
  74.         'not null' => TRUE,
  75.         'default' => 0,
  76.         'description' => t('The {node}.nid of the node.'),
  77.       ),
  78.       'vid' => array(
  79.         'type' => 'int',
  80.         'unsigned' => TRUE,
  81.         'not null' => TRUE,
  82.         'default' => 0,
  83.         'description' => t('Primary Key: The {node}.vid of the node.'),
  84.       ),
  85.       'tid' => array(
  86.         'type' => 'int',
  87.         'unsigned' => TRUE,
  88.         'not null' => TRUE,
  89.         'default' => 0,
  90.         'description' => t('The {term_data}.tid of the forum term assigned to the node.'),
  91.       ),
  92.     ),
  93.     'indexes' => array(
  94.       'nid' => array('nid'),
  95.       'tid' => array('tid')
  96.     ),
  97.     'primary key' => array('vid'),
  98.   );
  99.  
  100.   return $schema;
  101. }
  102.  
  103. /**
  104.  * Create the forum vocabulary if does not exist. Assign the
  105.  * vocabulary a low weight so it will appear first in forum topic
  106.  * create and edit forms.  Do not just call forum_enable() because in
  107.  * future versions it might do something different.
  108.  */
  109. function forum_update_6000() {
  110.   $ret = array();
  111.  
  112.   $vid = variable_get('forum_nav_vocabulary', 0);
  113.   $vocabularies = taxonomy_get_vocabularies();
  114.   if (!isset($vocabularies[$vid])) {
  115.     $vocabulary = array(
  116.       'name' => t('Forums'),
  117.       'multiple' => 0,
  118.       'required' => 0,
  119.       'hierarchy' => 1,
  120.       'relations' => 0,
  121.       'module' => 'forum',
  122.       'weight' => -10,
  123.       'nodes' => array('forum' => 1),
  124.     );
  125.     taxonomy_save_vocabulary($vocabulary);
  126.  
  127.     variable_set('forum_nav_vocabulary', $vocabulary['vid']);
  128.   }
  129.  
  130.   return $ret;
  131. }
  132.