summaryrefslogtreecommitdiff
path: root/modules
diff options
context:
space:
mode:
authorGábor Hojtsy <gabor@hojtsy.hu>2007-12-20 21:43:01 +0000
committerGábor Hojtsy <gabor@hojtsy.hu>2007-12-20 21:43:01 +0000
commit789cba51f54fbfad21c33b3e2c9cbcbc10c46ff2 (patch)
tree50f07f11876c472370b2c023763fcedf6ceeb5d0 /modules
parentbca913100a67029a67f4ff86721fe0290db88fc9 (diff)
downloadbrdo-789cba51f54fbfad21c33b3e2c9cbcbc10c46ff2.tar.gz
brdo-789cba51f54fbfad21c33b3e2c9cbcbc10c46ff2.tar.bz2
#186546 by bjaspan: fix missing forum vocabulary when people turned on forum module, but never visited any pages in Drupal 5 and they upgrade to Drupal 6 which does this much better
Diffstat (limited to 'modules')
-rw-r--r--modules/forum/forum.install30
-rw-r--r--modules/forum/forum.module7
2 files changed, 37 insertions, 0 deletions
diff --git a/modules/forum/forum.install b/modules/forum/forum.install
index 76b66a267..7d2d0c428 100644
--- a/modules/forum/forum.install
+++ b/modules/forum/forum.install
@@ -91,3 +91,33 @@ function forum_schema() {
return $schema;
}
+
+/**
+ * Create the forum vocabulary if does not exist. Assign the
+ * vocabulary a low weight so it will appear first in forum topic
+ * create and edit forms. Do not just call forum_enable() because in
+ * future versions it might do something different.
+ */
+function forum_update_6000() {
+ $ret = array();
+
+ $vid = variable_get('forum_nav_vocabulary', 0);
+ $vocabularies = taxonomy_get_vocabularies();
+ if (!isset($vocabularies[$vid])) {
+ $vocabulary = array(
+ 'name' => t('Forums'),
+ 'multiple' => 0,
+ 'required' => 0,
+ 'hierarchy' => 1,
+ 'relations' => 0,
+ 'module' => 'forum',
+ 'weight' => -10,
+ 'nodes' => array('forum' => 1),
+ );
+ taxonomy_save_vocabulary($vocabulary);
+
+ variable_set('forum_nav_vocabulary', $vocabulary['vid']);
+ }
+
+ return $ret;
+} \ No newline at end of file
diff --git a/modules/forum/forum.module b/modules/forum/forum.module
index 674077dea..3546b4f66 100644
--- a/modules/forum/forum.module
+++ b/modules/forum/forum.module
@@ -161,8 +161,15 @@ function forum_init() {
* Implementation of hook_nodeapi().
*/
function forum_nodeapi(&$node, $op, $teaser, $page) {
+ // We are going to return if $node->type is not one of the node
+ // types assigned to the forum vocabulary. If forum_nav_vocabulary
+ // is undefined or the vocabulary does not exist, it clearly cannot
+ // be assigned to $node->type, so return to avoid E_ALL warnings.
$vid = variable_get('forum_nav_vocabulary', '');
$vocabulary = taxonomy_vocabulary_load($vid);
+ if (empty($vocabulary)) {
+ return;
+ }
// Operate only on node types assigned for the forum vocabulary.
if (!in_array($node->type, $vocabulary->nodes)) {