summaryrefslogtreecommitdiff
path: root/modules/forum
diff options
context:
space:
mode:
authorwebchick <webchick@24967.no-reply.drupal.org>2012-04-28 23:55:23 -0700
committerwebchick <webchick@24967.no-reply.drupal.org>2012-04-28 23:55:23 -0700
commit84c4f7622e8cd2c90374e3907069aa256114558f (patch)
treedf7c3d5b16fd7d0c727bc42e00db3751164783e4 /modules/forum
parent7ee124b9ccb626cfa93dbcaf2b158b54b9305bec (diff)
downloadbrdo-84c4f7622e8cd2c90374e3907069aa256114558f.tar.gz
brdo-84c4f7622e8cd2c90374e3907069aa256114558f.tar.bz2
Issue #787652 by andypost, larowlan: Fixed Forum vocabulary alterations possibly obsolete -- possible to delete forum vocab.
Diffstat (limited to 'modules/forum')
-rw-r--r--modules/forum/forum.module44
-rw-r--r--modules/forum/forum.test21
2 files changed, 50 insertions, 15 deletions
diff --git a/modules/forum/forum.module b/modules/forum/forum.module
index 8389a58ed..98d26a983 100644
--- a/modules/forum/forum.module
+++ b/modules/forum/forum.module
@@ -575,26 +575,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;
diff --git a/modules/forum/forum.test b/modules/forum/forum.test
index 663b8725f..906cf9fd6 100644
--- a/modules/forum/forum.test
+++ b/modules/forum/forum.test
@@ -246,6 +246,27 @@ 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 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 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 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.');
}
/**