diff --git a/core/modules/forum/forum.module b/core/modules/forum/forum.module index f419b7bad2df318932a7b9c9d7fb3468b00c8724..4c12c41f8cf4dc1bfb2224094b9879c3544a4e56 100644 --- a/core/modules/forum/forum.module +++ b/core/modules/forum/forum.module @@ -575,37 +575,29 @@ function forum_field_storage_pre_update($entity_type, $entity, &$skip_fields) { } /** - * Implements hook_form_FORM_ID_alter() for taxonomy_form_vocabulary(). + * Implements hook_form_alter(). */ -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) { - $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'] = TAXONOMY_HIERARCHY_SINGLE; - // 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) { +function forum_form_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; + } // Hide multiple parents select from forum terms. - $form['relations']['parent']['#access'] = FALSE; + elseif ($form_id == 'taxonomy_form_term') { + $form['advanced']['parent']['#access'] = FALSE; + } } } /** - * Implements hook_form_BASE_FORM_ID_alter() for node_form(). + * Implements hook_form_BASE_FORM_ID_alter(). */ function forum_form_node_form_alter(&$form, &$form_state, $form_id) { if (isset($form['taxonomy_forums'])) { diff --git a/core/modules/forum/forum.test b/core/modules/forum/forum.test index dad2006d50674347f5cc231f859267ee564546f2..b5b8ae4995a4040dde095c71da7860b4e235f4cb 100644 --- a/core/modules/forum/forum.test +++ b/core/modules/forum/forum.test @@ -246,26 +246,6 @@ class ForumTestCase extends DrupalWebTestCase { $this->deleteForum($this->delete_forum['tid']); // Create forum at the top (root) level. $this->root_forum = $this->createForum('forum'); - - // Test vocabulary form alterations. - $this->drupalGet('admin/structure/taxonomy/forums/edit'); - $this->assertFieldByName('op', t('Save'), 'Save button found.'); - $this->assertNoFieldByName('op', t('Delete'), 'Delete button not found.'); - // Test tags vocabulary form is not affected. - $this->drupalGet('admin/structure/taxonomy/tags/edit'); - $this->assertFieldByName('op', t('Save'), 'Save button found.'); - $this->assertFieldByName('op', t('Delete'), 'Delete button found.'); - - // Test term edit form alterations. - $this->drupalGet('taxonomy/term/' . $this->container['tid'] . '/edit'); - // Test parent field been hidden by forum module. - $this->assertNoField('parent[]', 'Parent field not found.'); - // Test tags vocabulary term form is not affected. - $this->drupalGet('admin/structure/taxonomy/tags/add'); - $this->assertField('parent[]', 'Parent field found.'); - // Test relations fieldset exists. - $relations_fieldset = $this->xpath("//fieldset[@id='edit-relations']"); - $this->assertTrue(isset($relations_fieldset[0]), 'Relations fieldset element found.'); } /**