summaryrefslogtreecommitdiff
path: root/modules/forum/forum.module
diff options
context:
space:
mode:
Diffstat (limited to 'modules/forum/forum.module')
-rw-r--r--modules/forum/forum.module19
1 files changed, 7 insertions, 12 deletions
diff --git a/modules/forum/forum.module b/modules/forum/forum.module
index e21217204..ae6648372 100644
--- a/modules/forum/forum.module
+++ b/modules/forum/forum.module
@@ -256,18 +256,6 @@ function forum_node_view($node, $view_mode) {
}
/**
- * Implements hook_node_prepare().
- */
-function forum_node_prepare($node) {
- if (_forum_node_check_node_type($node)) {
- if (empty($node->nid)) {
- // New topic
- $node->taxonomy_forums[0]['tid'] = arg(3);
- }
- }
-}
-
-/**
* Implements hook_node_validate().
*
* Check in particular that only a "leaf" term in the associated taxonomy.
@@ -578,6 +566,13 @@ function forum_form_alter(&$form, $form_state, $form_id) {
// Make the vocabulary required for 'real' forum-nodes.
$form['taxonomy_forums'][$langcode]['#required'] = TRUE;
$form['taxonomy_forums'][$langcode]['#multiple'] = FALSE;
+ if (empty($form['taxonomy_forums'][$langcode]['#default_value'])) {
+ // If there is no default forum already selected, try to get the forum
+ // ID from the URL (e.g., if we are on a page like node/add/forum/3, we
+ // expect "3" to be the ID of the forum that was requested).
+ $requested_forum_id = arg(3);
+ $form['taxonomy_forums'][$langcode]['#default_value'] = is_numeric($requested_forum_id) ? $requested_forum_id : NULL;
+ }
}
}