diff options
Diffstat (limited to 'modules/forum/forum.module')
-rw-r--r-- | modules/forum/forum.module | 19 |
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; + } } } |