summaryrefslogtreecommitdiff
path: root/modules
diff options
context:
space:
mode:
Diffstat (limited to 'modules')
-rw-r--r--modules/forum/forum.install13
-rw-r--r--modules/forum/forum.test5
-rw-r--r--modules/taxonomy/taxonomy.admin.inc47
-rw-r--r--modules/taxonomy/taxonomy.module51
-rw-r--r--modules/taxonomy/taxonomy.test70
5 files changed, 89 insertions, 97 deletions
diff --git a/modules/forum/forum.install b/modules/forum/forum.install
index b53b8f649..d35dd91e6 100644
--- a/modules/forum/forum.install
+++ b/modules/forum/forum.install
@@ -17,13 +17,13 @@ function forum_enable() {
// vocabulary still exists. Keep all other node types intact there.
$vocabulary = (array) $vocabulary;
$vocabulary['nodes']['forum'] = 1;
- taxonomy_save_vocabulary($vocabulary);
+ taxonomy_vocabulary_save($vocabulary);
}
else {
// Create the forum vocabulary if it does not exist. Assign the vocabulary
// a low weight so it will appear first in forum topic create and edit
// forms.
- $vocabulary = array(
+ $edit = array(
'name' => t('Forums'),
'multiple' => 0,
'required' => 0,
@@ -33,9 +33,10 @@ function forum_enable() {
'weight' => -10,
'nodes' => array('forum' => 1),
);
- taxonomy_save_vocabulary($vocabulary);
+ $vocabulary = (object) $edit;
+ taxonomy_vocabulary_save($vocabulary);
- variable_set('forum_nav_vocabulary', $vocabulary['vid']);
+ variable_set('forum_nav_vocabulary', $vocabulary->vid);
}
}
@@ -47,8 +48,8 @@ function forum_uninstall() {
drupal_load('module', 'taxonomy');
// Delete the vocabulary.
- $vid = variable_get('forum_nav_vocabulary', '');
- taxonomy_del_vocabulary($vid);
+ $vid = variable_get('forum_nav_vocabulary', 0);
+ taxonomy_vocabulary_delete($vid);
db_query('DROP TABLE {forum}');
variable_del('forum_containers');
diff --git a/modules/forum/forum.test b/modules/forum/forum.test
index acad2096a..2dfb55f7b 100644
--- a/modules/forum/forum.test
+++ b/modules/forum/forum.test
@@ -143,10 +143,9 @@ class ForumTestCase extends DrupalWebTestCase {
$this->assertEqual($current_settings->description, $description, t('The description was updated'));
// Restore the original vocabulary.
- $original_settings = (array) $original_settings;
- taxonomy_save_vocabulary($original_settings);
+ taxonomy_vocabulary_save($original_settings);
$current_settings = taxonomy_vocabulary_load($vid, TRUE);
- $this->assertEqual($current_settings->name, $original_settings['name'], 'The original vocabulary settings were restored');
+ $this->assertEqual($current_settings->name, $original_settings->name, 'The original vocabulary settings were restored');
}
/**
diff --git a/modules/taxonomy/taxonomy.admin.inc b/modules/taxonomy/taxonomy.admin.inc
index 17b53e2b7..0c26e7313 100644
--- a/modules/taxonomy/taxonomy.admin.inc
+++ b/modules/taxonomy/taxonomy.admin.inc
@@ -22,7 +22,7 @@ function taxonomy_overview_vocabularies() {
$node_type = node_get_types('name', $type);
$types[] = $node_type ? check_plain($node_type) : check_plain($type);
}
- $form[$vocabulary->vid]['#vocabulary'] = (array)$vocabulary;
+ $form[$vocabulary->vid]['#vocabulary'] = $vocabulary;
$form[$vocabulary->vid]['name'] = array('#markup' => check_plain($vocabulary->name));
$form[$vocabulary->vid]['types'] = array('#markup' => implode(', ', $types));
$form[$vocabulary->vid]['weight'] = array('#type' => 'weight', '#delta' => 10, '#default_value' => $vocabulary->weight);
@@ -49,9 +49,9 @@ function taxonomy_overview_vocabularies() {
*/
function taxonomy_overview_vocabularies_submit($form, &$form_state) {
foreach ($form_state['values'] as $vid => $vocabulary) {
- if (is_numeric($vid) && $form[$vid]['#vocabulary']['weight'] != $form_state['values'][$vid]['weight']) {
- $form[$vid]['#vocabulary']['weight'] = $form_state['values'][$vid]['weight'];
- taxonomy_save_vocabulary($form[$vid]['#vocabulary']);
+ if (is_numeric($vid) && $form[$vid]['#vocabulary']->weight != $form_state['values'][$vid]['weight']) {
+ $form[$vid]['#vocabulary']->weight = $form_state['values'][$vid]['weight'];
+ taxonomy_vocabulary_save($form[$vid]['#vocabulary']);
}
}
}
@@ -210,18 +210,19 @@ function taxonomy_form_vocabulary_submit($form, &$form_state) {
}
// Fix up the nodes array to remove unchecked nodes.
$form_state['values']['nodes'] = array_filter($form_state['values']['nodes']);
- switch (taxonomy_save_vocabulary($form_state['values'])) {
+ $vocabulary = (object) $form_state['values'];
+ switch (taxonomy_vocabulary_save($vocabulary)) {
case SAVED_NEW:
- drupal_set_message(t('Created new vocabulary %name.', array('%name' => $form_state['values']['name'])));
- watchdog('taxonomy', 'Created new vocabulary %name.', array('%name' => $form_state['values']['name']), WATCHDOG_NOTICE, l(t('edit'), 'admin/content/taxonomy/' . $form_state['values']['vid']));
+ drupal_set_message(t('Created new vocabulary %name.', array('%name' => $vocabulary->name)));
+ watchdog('taxonomy', 'Created new vocabulary %name.', array('%name' => $vocabulary->name), WATCHDOG_NOTICE, l(t('edit'), 'admin/content/taxonomy/' . $vocabulary->vid));
break;
case SAVED_UPDATED:
- drupal_set_message(t('Updated vocabulary %name.', array('%name' => $form_state['values']['name'])));
- watchdog('taxonomy', 'Updated vocabulary %name.', array('%name' => $form_state['values']['name']), WATCHDOG_NOTICE, l(t('edit'), 'admin/content/taxonomy/' . $form_state['values']['vid']));
+ drupal_set_message(t('Updated vocabulary %name.', array('%name' => $vocabulary->name)));
+ watchdog('taxonomy', 'Updated vocabulary %name.', array('%name' => $vocabulary->name), WATCHDOG_NOTICE, l(t('edit'), 'admin/content/taxonomy/' . $vocabulary->vid));
break;
}
- $form_state['vid'] = $form_state['values']['vid'];
+ $form_state['vid'] = $vocabulary->vid;
$form_state['redirect'] = 'admin/content/taxonomy';
return;
}
@@ -245,7 +246,7 @@ function taxonomy_overview_terms(&$form_state, $vocabulary) {
}
$form = array(
- '#vocabulary' => (array)$vocabulary,
+ '#vocabulary' => $vocabulary,
'#tree' => TRUE,
'#parent_fields' => FALSE,
);
@@ -452,7 +453,7 @@ function taxonomy_overview_terms_submit($form, &$form_state) {
$hierarchy = 0; // Update the current hierarchy type as we go.
$changed_terms = array();
- $tree = taxonomy_get_tree($vocabulary['vid']);
+ $tree = taxonomy_get_tree($vocabulary->vid);
if (empty($tree)) {
return;
@@ -517,9 +518,9 @@ function taxonomy_overview_terms_submit($form, &$form_state) {
}
// Update the vocabulary hierarchy to flat or single hierarchy.
- if ($vocabulary['hierarchy'] != $hierarchy) {
- $vocabulary['hierarchy'] = $hierarchy;
- taxonomy_save_vocabulary($vocabulary);
+ if ($vocabulary->hierarchy != $hierarchy) {
+ $vocabulary->hierarchy = $hierarchy;
+ taxonomy_vocabulary_save($vocabulary);
}
}
@@ -626,8 +627,8 @@ function taxonomy_form_term(&$form_state, $vocabulary, $edit = array()) {
$parent = array_keys(taxonomy_get_parents($edit['tid']));
$form['#term'] = $edit;
$form['#term']['parent'] = $parent;
- $form['#vocabulary'] = (array)$vocabulary;
- $form['#vocabulary']['nodes'] = drupal_map_assoc($vocabulary->nodes);
+ $form['#vocabulary'] = $vocabulary;
+ $form['#vocabulary']->nodes = drupal_map_assoc($vocabulary->nodes);
// Check for confirmation forms.
if (isset($form_state['confirm_delete'])) {
@@ -741,7 +742,7 @@ function taxonomy_form_term_submit($form, &$form_state) {
return;
}
// Rebuild the form to confirm enabling multiple parents.
- elseif ($form_state['clicked_button']['#value'] == t('Save') && !$form['#vocabulary']['tags'] && count($form_state['values']['parent']) > 1 && $form['#vocabulary']['hierarchy'] < 2) {
+ elseif ($form_state['clicked_button']['#value'] == t('Save') && !$form['#vocabulary']->tags && count($form_state['values']['parent']) > 1 && $form['#vocabulary']->hierarchy < 2) {
$form_state['rebuild'] = TRUE;
$form_state['confirm_parents'] = TRUE;
return;
@@ -759,7 +760,7 @@ function taxonomy_form_term_submit($form, &$form_state) {
break;
}
- if (!$form['#vocabulary']['tags']) {
+ if (!$form['#vocabulary']->tags) {
$current_parent_count = count($form_state['values']['parent']);
$previous_parent_count = count($form['#term']['parent']);
// Root doesn't count if it's the only parent.
@@ -775,9 +776,9 @@ function taxonomy_form_term_submit($form, &$form_state) {
}
// If we've increased the number of parents and this is a single or flat
// hierarchy, update the vocabulary immediately.
- elseif ($current_parent_count > $previous_parent_count && $form['#vocabulary']['hierarchy'] < 2) {
- $form['#vocabulary']['hierarchy'] = $current_parent_count == 1 ? 1 : 2;
- taxonomy_save_vocabulary($form['#vocabulary']);
+ elseif ($current_parent_count > $previous_parent_count && $form['#vocabulary']->hierarchy < 2) {
+ $form['#vocabulary']->hierarchy = $current_parent_count == 1 ? 1 : 2;
+ taxonomy_vocabulary_save($form['#vocabulary']);
}
}
@@ -871,7 +872,7 @@ function taxonomy_vocabulary_confirm_delete(&$form_state, $vid) {
* @see taxonomy_vocabulary_confirm_delete()
*/
function taxonomy_vocabulary_confirm_delete_submit($form, &$form_state) {
- $status = taxonomy_del_vocabulary($form_state['values']['vid']);
+ $status = taxonomy_vocabulary_delete($form_state['values']['vid']);
drupal_set_message(t('Deleted vocabulary %name.', array('%name' => $form_state['values']['name'])));
watchdog('taxonomy', 'Deleted vocabulary %name.', array('%name' => $form_state['values']['name']), WATCHDOG_NOTICE);
$form_state['redirect'] = 'admin/content/taxonomy';
diff --git a/modules/taxonomy/taxonomy.module b/modules/taxonomy/taxonomy.module
index 44c4c575f..79d4b89a2 100644
--- a/modules/taxonomy/taxonomy.module
+++ b/modules/taxonomy/taxonomy.module
@@ -209,34 +209,31 @@ function taxonomy_admin_vocabulary_title_callback($vocabulary) {
}
/**
- * Save a vocabulary given form values or an equivalent array.
+ * Save a vocabulary given a vocabulary object..
*/
-function taxonomy_save_vocabulary(&$edit) {
- $edit['nodes'] = empty($edit['nodes']) ? array() : $edit['nodes'];
+function taxonomy_vocabulary_save($vocabulary) {
+ if (empty($vocabulary->nodes)) {
+ $vocabulary->nodes = array();
+ }
- if (!isset($edit['module'])) {
- $edit['module'] = 'taxonomy';
+ if (!isset($vocabulary->module)) {
+ $vocabulary->module = 'taxonomy';
}
- if (!empty($edit['vid']) && !empty($edit['name'])) {
- drupal_write_record('vocabulary', $edit, 'vid');
- db_query("DELETE FROM {vocabulary_node_types} WHERE vid = %d", $edit['vid']);
- foreach ($edit['nodes'] as $type => $selected) {
- db_query("INSERT INTO {vocabulary_node_types} (vid, type) VALUES (%d, '%s')", $edit['vid'], $type);
+ if (!empty($vocabulary->vid) && !empty($vocabulary->name)) {
+ $status = drupal_write_record('vocabulary', $vocabulary, 'vid');
+ db_query("DELETE FROM {vocabulary_node_types} WHERE vid = %d", $vocabulary->vid);
+ foreach ($vocabulary->nodes as $type => $selected) {
+ db_query("INSERT INTO {vocabulary_node_types} (vid, type) VALUES (%d, '%s')", $vocabulary->vid, $type);
}
- module_invoke_all('taxonomy', 'update', 'vocabulary', $edit);
- $status = SAVED_UPDATED;
- }
- elseif (!empty($edit['vid'])) {
- $status = taxonomy_del_vocabulary($edit['vid']);
+ module_invoke_all('taxonomy_vocabulary_update', $vocabulary);
}
- else {
- drupal_write_record('vocabulary', $edit);
- foreach ($edit['nodes'] as $type => $selected) {
- db_query("INSERT INTO {vocabulary_node_types} (vid, type) VALUES (%d, '%s')", $edit['vid'], $type);
+ elseif (empty($vocabulary->vid)) {
+ $status = drupal_write_record('vocabulary', $vocabulary);
+ foreach ($vocabulary->nodes as $type => $selected) {
+ db_query("INSERT INTO {vocabulary_node_types} (vid, type) VALUES (%d, '%s')", $vocabulary->vid, $type);
}
- module_invoke_all('taxonomy', 'insert', 'vocabulary', $edit);
- $status = SAVED_NEW;
+ module_invoke_all('taxonomy_vocabulary_insert', $vocabulary);
}
cache_clear_all();
@@ -252,7 +249,7 @@ function taxonomy_save_vocabulary(&$edit) {
* @return
* Constant indicating items were deleted.
*/
-function taxonomy_del_vocabulary($vid) {
+function taxonomy_vocabulary_delete($vid) {
$vocabulary = (array) taxonomy_vocabulary_load($vid);
db_query('DELETE FROM {vocabulary} WHERE vid = %d', $vid);
@@ -280,12 +277,12 @@ function taxonomy_del_vocabulary($vid) {
* hieararchy of 2.
*
* @param $vocabulary
- * An array of the vocabulary structure.
+ * A vocabulary object.
* @param $changed_term
* An array of the term structure that was updated.
*/
function taxonomy_check_vocabulary_hierarchy($vocabulary, $changed_term) {
- $tree = taxonomy_get_tree($vocabulary['vid']);
+ $tree = taxonomy_get_tree($vocabulary->vid);
$hierarchy = 0;
foreach ($tree as $term) {
// Update the changed term with the new parent value before comparision.
@@ -302,9 +299,9 @@ function taxonomy_check_vocabulary_hierarchy($vocabulary, $changed_term) {
$hierarchy = 1;
}
}
- if ($hierarchy != $vocabulary['hierarchy']) {
- $vocabulary['hierarchy'] = $hierarchy;
- taxonomy_save_vocabulary($vocabulary);
+ if ($hierarchy != $vocabulary->hierarchy) {
+ $vocabulary->hierarchy = $hierarchy;
+ taxonomy_vocabulary_save($vocabulary);
}
return $hierarchy;
diff --git a/modules/taxonomy/taxonomy.test b/modules/taxonomy/taxonomy.test
index 17505f3da..a80f46b3a 100644
--- a/modules/taxonomy/taxonomy.test
+++ b/modules/taxonomy/taxonomy.test
@@ -56,18 +56,18 @@ class TaxonomyVocabularyLoadTestCase extends DrupalWebTestCase {
function testTaxonomyVocabularyLoadStaticReset() {
// Load the first available vocabulary.
$original_vocabulary = taxonomy_vocabulary_load(1);
+ $this->assertTrue(is_object($original_vocabulary));
// Change the name and description.
- $edit = (array) $original_vocabulary;
- $edit['name'] = $this->randomName();
- $edit['description'] = $this->randomName();
- $this->assertNotEqual($edit['name'], $original_vocabulary->name);
- taxonomy_save_vocabulary($edit);
+ $vocabulary = $original_vocabulary;
+ $vocabulary->name = $this->randomName();
+ $vocabulary->description = $this->randomName();
+ taxonomy_vocabulary_save($vocabulary);
// Load the vocabulary with $reset TRUE.
$new_vocabulary = taxonomy_vocabulary_load($original_vocabulary->vid, TRUE);
- $this->assertEqual($new_vocabulary->name, $edit['name']);
- $this->assertEqual($new_vocabulary->name, $edit['name']);
+ $this->assertEqual($new_vocabulary->name, $vocabulary->name);
+ $this->assertEqual($new_vocabulary->name, $vocabulary->name);
}
}
@@ -120,7 +120,8 @@ class TaxonomyVocabularyFunctionsTestCase extends DrupalWebTestCase {
$edit[$key] = $$key;
// Exec save function.
- taxonomy_save_vocabulary($edit);
+ $vocabulary = (object) $edit;
+ taxonomy_vocabulary_save($vocabulary);
// After save we use $nodesBak.
ksort($nodesBak);
$edit['nodes'] = $nodesBak;
@@ -138,13 +139,8 @@ class TaxonomyVocabularyFunctionsTestCase extends DrupalWebTestCase {
$this->assertEqual($value, $edit[$key], t('Checking value of @key.', array('@key' => $key)));
}
- // Delete vocabulary to avoid exception messages we create array with empty fields.
- $deleteArray = array();
- foreach($getEdit as $key => $v) {
- $deleteArray[$key] = 0;
- }
- $deleteArray['vid'] = $vid;
- taxonomy_save_vocabulary($deleteArray);
+ // Delete vocabulary.
+ taxonomy_vocabulary_delete($vid);
// Checking if we deleted voc.
$vocabularies = taxonomy_get_vocabularies();
$vid = 0;
@@ -184,7 +180,9 @@ class TaxonomyTermFunctionsTestCase extends DrupalWebTestCase {
$name = $this->randomName(20);
$relation = 1;
$edit['name'] = $name;
- taxonomy_save_vocabulary($edit);
+ $vocabulary = (object) $edit;
+ taxonomy_vocabulary_save($vocabulary);
+ $edit['vid'] = $vocabulary->vid;
// Create term.
$termname = $this->randomName(20);
@@ -234,8 +232,7 @@ class TaxonomyTermFunctionsTestCase extends DrupalWebTestCase {
}
// Delete vocabulary.
- $edit['name'] = 0;
- taxonomy_save_vocabulary($edit);
+ taxonomy_vocabulary_delete($edit['vid']);
}
}
@@ -268,7 +265,9 @@ class TaxonomyTermSingleTestCase extends DrupalWebTestCase {
$name = $this->randomName(20);
$edit['hierarchy'] = 1;
$edit['name'] = $name;
- taxonomy_save_vocabulary($edit);
+ $vocabulary = (object) $edit;
+ taxonomy_vocabulary_save($vocabulary);
+ $edit['vid'] = $vocabulary->vid;
// Create 1st term.
$termname = $this->randomName(20);
@@ -291,8 +290,7 @@ class TaxonomyTermSingleTestCase extends DrupalWebTestCase {
$this->assertEqual($children,$getChildren[$children->tid], t('Checking children.'));
// Delete vocabulary.
- $edit['name'] = 0;
- taxonomy_save_vocabulary($edit);
+ taxonomy_vocabulary_delete($edit['vid']);
}
}
@@ -323,7 +321,9 @@ class TaxonomyTermMultipleTestCase extends DrupalWebTestCase {
$name = $this->randomName(20);
$edit['hierarchy'] = 1;
$edit['name'] = $name;
- taxonomy_save_vocabulary($edit);
+ $vocabulary = (object) $edit;
+ taxonomy_vocabulary_save($vocabulary);
+ $edit['vid'] = $vocabulary->vid;
// Create 1st term.
$parent = array();
@@ -354,8 +354,7 @@ class TaxonomyTermMultipleTestCase extends DrupalWebTestCase {
}
// Delete vocabulary.
- $edit['name'] = 0;
- taxonomy_save_vocabulary($edit);
+ taxonomy_vocabulary_delete($edit['vid']);
}
}
@@ -423,12 +422,13 @@ class TaxonomyTestNodeApiTestCase extends DrupalWebTestCase {
}
$name = $this->randomName(20);
- $edit['hierarchy'] = 1;
- $edit['multiple'] = 1;
- $edit['name'] = $name;
- $edit['nodes'] = array('article' => 'article');
- taxonomy_save_vocabulary($edit);
- $vid = $edit['vid']; // We need to persist vid after $edit is unset().
+ $vocabulary->hierarchy = 1;
+ $vocabulary->multiple = 1;
+ $vocabulary->name = $name;
+ $vocabulary->nodes = array('article' => 'article');
+ taxonomy_vocabulary_save($vocabulary);
+ $vid = $vocabulary->vid;
+
$parent = array();
$patternArray = array();
@@ -524,14 +524,8 @@ class TaxonomyTestNodeApiTestCase extends DrupalWebTestCase {
$num_rows = db_result(db_query('SELECT COUNT(*) FROM {term_node} WHERE nid = %d', $node->nid));
$this->assertEqual($num_rows, 0, t('Checking database field after deletion'));
- // Delete vocabulary to avoid exception messages create array with empty fields.
- $edit = array();
- foreach($_t as $key ) {
- $edit[$key] = 0;
- }
- $edit['name'] = 0;
- $edit['vid'] = $vid;
- taxonomy_save_vocabulary($edit);
+ // Delete vocabulary.
+ taxonomy_vocabulary_delete($vid);
}
}