summaryrefslogtreecommitdiff
path: root/modules/field
diff options
context:
space:
mode:
authorDries Buytaert <dries@buytaert.net>2009-10-02 14:39:43 +0000
committerDries Buytaert <dries@buytaert.net>2009-10-02 14:39:43 +0000
commit1184ed9fc9acf79ee33913dc6c1124ee8fa169ea (patch)
tree32dacdeb589b900293ea331f7bb5643bf2873d74 /modules/field
parent04fd066be265047d1ff14bd456bd87f48d80cbf6 (diff)
downloadbrdo-1184ed9fc9acf79ee33913dc6c1124ee8fa169ea.tar.gz
brdo-1184ed9fc9acf79ee33913dc6c1124ee8fa169ea.tar.bz2
- Patch#583020 by c960657 | yched, Dries: fixed warning about missing argument 2 for field_delete_instance() in node_configure_fields().
Diffstat (limited to 'modules/field')
-rw-r--r--modules/field/field.attach.inc2
-rw-r--r--modules/field/field.crud.inc20
-rw-r--r--modules/field/field.test13
3 files changed, 17 insertions, 18 deletions
diff --git a/modules/field/field.attach.inc b/modules/field/field.attach.inc
index 4b5441904..01abd6f78 100644
--- a/modules/field/field.attach.inc
+++ b/modules/field/field.attach.inc
@@ -1328,7 +1328,7 @@ function field_attach_delete_bundle($bundle) {
// First, delete the instances themseves.
$instances = field_info_instances($bundle);
foreach ($instances as $instance) {
- field_delete_instance($instance['field_name'], $bundle);
+ field_delete_instance($instance);
}
// Clear the cache.
diff --git a/modules/field/field.crud.inc b/modules/field/field.crud.inc
index d9351cff7..487a44dfa 100644
--- a/modules/field/field.crud.inc
+++ b/modules/field/field.crud.inc
@@ -541,7 +541,8 @@ function field_delete_field($field_name) {
$field = field_info_field($field_name);
if (isset($field['bundles'])) {
foreach ($field['bundles'] as $bundle) {
- field_delete_instance($field_name, $bundle);
+ $instance = field_info_instance($field_name, $bundle);
+ field_delete_instance($instance);
}
}
@@ -832,24 +833,19 @@ function field_read_instances($params = array(), $include_additional = array())
* Mark a field instance for deletion, including all data associated with
* it.
*
- * @param $field_name
- * The name of the field whose instance will be deleted.
- * @param $bundle
- * The bundle for the instance which will be deleted.
+ * @param $instance
+ * An instance structure.
*/
-function field_delete_instance($field_name, $bundle) {
- // Save the instance for hook_field_delete_instance before it is deleted.
- $instance = field_info_instance($field_name, $bundle);
-
+function field_delete_instance($instance) {
// Mark the field instance for deletion.
db_update('field_config_instance')
->fields(array('deleted' => 1))
- ->condition('field_name', $field_name)
- ->condition('bundle', $bundle)
+ ->condition('field_name', $instance['field_name'])
+ ->condition('bundle', $instance['bundle'])
->execute();
// Mark instance data for deletion.
- $field = field_info_field($field_name);
+ $field = field_info_field($instance['field_name']);
module_invoke($field['storage']['module'], 'field_storage_delete_instance', $instance);
// Clear the cache.
diff --git a/modules/field/field.test b/modules/field/field.test
index fc0b9899f..cfb7655ad 100644
--- a/modules/field/field.test
+++ b/modules/field/field.test
@@ -2125,12 +2125,12 @@ class FieldInstanceCrudTestCase extends FieldTestCase {
field_create_instance($this->instance_definition);
$this->another_instance_definition = $this->instance_definition;
$this->another_instance_definition['bundle'] .= '_another_bundle';
- field_create_instance($this->another_instance_definition);
+ $instance = field_create_instance($this->another_instance_definition);
// Test that the first instance is not deleted, and then delete it.
$instance = field_read_instance($this->instance_definition['field_name'], $this->instance_definition['bundle'], array('include_deleted' => TRUE));
$this->assertTrue(!empty($instance) && empty($instance['deleted']), t('A new field instance is not marked for deletion.'));
- field_delete_instance($this->instance_definition['field_name'], $this->instance_definition['bundle']);
+ field_delete_instance($instance);
// Make sure the instance is marked as deleted when the instance is
// specifically loaded.
@@ -2490,7 +2490,8 @@ class FieldBulkDeleteTestCase extends FieldTestCase {
$this->assertEqual(count($found['test_entity']), 10, 'Correct number of objects found before deleting');
// Delete the instance.
- field_delete_instance($field['field_name'], $bundle);
+ $instance = field_info_instance($field['field_name'], $bundle);
+ field_delete_instance($instance);
// The instance still exists, deleted.
$instances = field_read_instances(array('field_id' => $field['id'], 'deleted' => 1), array('include_deleted' => 1, 'include_inactive' => 1));
@@ -2522,7 +2523,8 @@ class FieldBulkDeleteTestCase extends FieldTestCase {
$field = reset($this->fields);
// Delete the instance.
- field_delete_instance($field['field_name'], $bundle);
+ $instance = field_info_instance($field['field_name'], $bundle);
+ field_delete_instance($instance);
// No field hooks were called.
$mem = field_test_memorize();
@@ -2577,7 +2579,8 @@ class FieldBulkDeleteTestCase extends FieldTestCase {
foreach ($this->bundles as $bundle) {
// Delete the instance.
- field_delete_instance($field['field_name'], $bundle);
+ $instance = field_info_instance($field['field_name'], $bundle);
+ field_delete_instance($instance);
// Purge the data.
field_purge_batch(10);