diff options
Diffstat (limited to 'modules/forum/forum.module')
-rw-r--r-- | modules/forum/forum.module | 52 |
1 files changed, 33 insertions, 19 deletions
diff --git a/modules/forum/forum.module b/modules/forum/forum.module index 1947e4d05..eddac7978 100644 --- a/modules/forum/forum.module +++ b/modules/forum/forum.module @@ -23,7 +23,7 @@ function forum_help($path, $arg) { $output .= '</ul>'; $output .= '</ul>'; $output .= '</ul>'; - $output .= '<p>' . t('For more information, see the online handbook entry for <a href="@forum">Forum module</a>.', array('@forum' => 'http://drupal.org/handbook/modules/forum')) . '</p>'; + $output .= '<p>' . t('For more information, see the online handbook entry for <a href="@forum">Forum module</a>.', array('@forum' => 'http://drupal.org/documentation/modules/forum')) . '</p>'; $output .= '<h3>' . t('Uses') . '</h3>'; $output .= '<dl>'; $output .= '<dt>' . t('Setting up forum structure') . '</dt>'; @@ -468,10 +468,10 @@ function forum_permission() { /** * Implements hook_taxonomy_term_delete(). */ -function forum_taxonomy_term_delete($tid) { +function forum_taxonomy_term_delete($term) { // For containers, remove the tid from the forum_containers variable. $containers = variable_get('forum_containers', array()); - $key = array_search($tid, $containers); + $key = array_search($term->tid, $containers); if ($key !== FALSE) { unset($containers[$key]); } @@ -586,26 +586,40 @@ function forum_field_storage_pre_update($entity_type, $entity, &$skip_fields) { } /** - * Implements hook_form_alter(). + * Implements hook_form_FORM_ID_alter() for taxonomy_form_vocabulary(). */ -function forum_form_alter(&$form, $form_state, $form_id) { +function forum_form_taxonomy_form_vocabulary_alter(&$form, &$form_state, $form_id) { $vid = variable_get('forum_nav_vocabulary', 0); if (isset($form['vid']['#value']) && $form['vid']['#value'] == $vid) { - // Hide critical options from forum vocabulary. - if ($form_id == 'taxonomy_form_vocabulary') { - $form['help_forum_vocab'] = array( - '#markup' => t('This is the designated forum vocabulary. Some of the normal vocabulary options have been removed.'), - '#weight' => -1, - ); - $form['hierarchy'] = array('#type' => 'value', '#value' => 1); - $form['delete']['#access'] = FALSE; - } + $form['help_forum_vocab'] = array( + '#markup' => t('This is the designated forum vocabulary. Some of the normal vocabulary options have been removed.'), + '#weight' => -1, + ); + // Forum's vocabulary always has single hierarchy. Forums and containers + // have only one parent or no parent for root items. By default this value + // is 0. + $form['hierarchy']['#value'] = 1; + // Do not allow to delete forum's vocabulary. + $form['actions']['delete']['#access'] = FALSE; + } +} + +/** + * Implements hook_form_FORM_ID_alter() for taxonomy_form_term(). + */ +function forum_form_taxonomy_form_term_alter(&$form, &$form_state, $form_id) { + $vid = variable_get('forum_nav_vocabulary', 0); + if (isset($form['vid']['#value']) && $form['vid']['#value'] == $vid) { // Hide multiple parents select from forum terms. - elseif ($form_id == 'taxonomy_form_term') { - $form['advanced']['parent']['#access'] = FALSE; - } + $form['relations']['parent']['#access'] = FALSE; } - if (!empty($form['#node_edit_form']) && isset($form['taxonomy_forums'])) { +} + +/** + * Implements hook_form_BASE_FORM_ID_alter() for node_form(). + */ +function forum_form_node_form_alter(&$form, &$form_state, $form_id) { + if (isset($form['taxonomy_forums'])) { $langcode = $form['taxonomy_forums']['#language']; // Make the vocabulary required for 'real' forum-nodes. $form['taxonomy_forums'][$langcode]['#required'] = TRUE; @@ -784,7 +798,7 @@ function forum_forum_load($tid = NULL) { $query->addExpression('SUM(ncs.comment_count)', 'comment_count'); $counts = $query ->fields('f', array('tid')) - ->condition('status', 1) + ->condition('n.status', 1) ->groupBy('tid') ->addTag('node_access') ->execute() |