Issue #1391384 by yched: Fixed Wrong static clear on taxonomy_vocabulary_save().
parent
e526dceb97
commit
f72335fb60
|
@ -439,6 +439,7 @@ function taxonomy_vocabulary_save($vocabulary) {
|
||||||
|
|
||||||
if (!empty($vocabulary->vid) && !empty($vocabulary->name)) {
|
if (!empty($vocabulary->vid) && !empty($vocabulary->name)) {
|
||||||
$status = drupal_write_record('taxonomy_vocabulary', $vocabulary, 'vid');
|
$status = drupal_write_record('taxonomy_vocabulary', $vocabulary, 'vid');
|
||||||
|
taxonomy_vocabulary_static_reset(array($vocabulary->vid));
|
||||||
if ($vocabulary->old_machine_name != $vocabulary->machine_name) {
|
if ($vocabulary->old_machine_name != $vocabulary->machine_name) {
|
||||||
field_attach_rename_bundle('taxonomy_term', $vocabulary->old_machine_name, $vocabulary->machine_name);
|
field_attach_rename_bundle('taxonomy_term', $vocabulary->old_machine_name, $vocabulary->machine_name);
|
||||||
}
|
}
|
||||||
|
@ -447,6 +448,7 @@ function taxonomy_vocabulary_save($vocabulary) {
|
||||||
}
|
}
|
||||||
elseif (empty($vocabulary->vid)) {
|
elseif (empty($vocabulary->vid)) {
|
||||||
$status = drupal_write_record('taxonomy_vocabulary', $vocabulary);
|
$status = drupal_write_record('taxonomy_vocabulary', $vocabulary);
|
||||||
|
taxonomy_vocabulary_static_reset();
|
||||||
field_attach_create_bundle('taxonomy_term', $vocabulary->machine_name);
|
field_attach_create_bundle('taxonomy_term', $vocabulary->machine_name);
|
||||||
module_invoke_all('taxonomy_vocabulary_insert', $vocabulary);
|
module_invoke_all('taxonomy_vocabulary_insert', $vocabulary);
|
||||||
module_invoke_all('entity_insert', $vocabulary, 'taxonomy_vocabulary');
|
module_invoke_all('entity_insert', $vocabulary, 'taxonomy_vocabulary');
|
||||||
|
@ -454,7 +456,6 @@ function taxonomy_vocabulary_save($vocabulary) {
|
||||||
|
|
||||||
unset($vocabulary->original);
|
unset($vocabulary->original);
|
||||||
cache_clear_all();
|
cache_clear_all();
|
||||||
taxonomy_vocabulary_static_reset(array($vocabulary->vid));
|
|
||||||
|
|
||||||
return $status;
|
return $status;
|
||||||
}
|
}
|
||||||
|
|
|
@ -343,10 +343,16 @@ class TaxonomyVocabularyUnitTest extends TaxonomyWebTestCase {
|
||||||
field_create_instance($instance);
|
field_create_instance($instance);
|
||||||
|
|
||||||
// Change the machine name.
|
// Change the machine name.
|
||||||
|
$old_name = $this->vocabulary->machine_name;
|
||||||
$new_name = drupal_strtolower($this->randomName());
|
$new_name = drupal_strtolower($this->randomName());
|
||||||
$this->vocabulary->machine_name = $new_name;
|
$this->vocabulary->machine_name = $new_name;
|
||||||
taxonomy_vocabulary_save($this->vocabulary);
|
taxonomy_vocabulary_save($this->vocabulary);
|
||||||
|
|
||||||
|
// Check that entity bundles are properly updated.
|
||||||
|
$info = entity_get_info('taxonomy_term');
|
||||||
|
$this->assertFalse(isset($info['bundles'][$old_name]), t('The old bundle name does not appear in entity_get_info().'));
|
||||||
|
$this->assertTrue(isset($info['bundles'][$new_name]), t('The new bundle name appears in entity_get_info().'));
|
||||||
|
|
||||||
// Check that the field instance is still attached to the vocabulary.
|
// Check that the field instance is still attached to the vocabulary.
|
||||||
$this->assertTrue(field_info_instance('taxonomy_term', 'field_test', $new_name), t('The bundle name was updated correctly.'));
|
$this->assertTrue(field_info_instance('taxonomy_term', 'field_test', $new_name), t('The bundle name was updated correctly.'));
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue