summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDries Buytaert <dries@buytaert.net>2009-03-13 21:25:40 +0000
committerDries Buytaert <dries@buytaert.net>2009-03-13 21:25:40 +0000
commit38e5e907acadd70736fbb5bff2435ae4624b639f (patch)
tree65fbd9ad373f0952f3c7b29473ec7289e1d6af2e
parentcda3f7f8303508d5c0371aa14de80fefb903aaf3 (diff)
downloadbrdo-38e5e907acadd70736fbb5bff2435ae4624b639f.tar.gz
brdo-38e5e907acadd70736fbb5bff2435ae4624b639f.tar.bz2
- Patch #369785 by bjaspan, venkatd, linolium: define constants for field storage.
-rw-r--r--modules/field/field.api.php8
-rw-r--r--modules/field/field.attach.inc18
-rw-r--r--modules/field/modules/field_sql_storage/field_sql_storage.module4
3 files changed, 22 insertions, 8 deletions
diff --git a/modules/field/field.api.php b/modules/field/field.api.php
index 018f4bf96..27871e736 100644
--- a/modules/field/field.api.php
+++ b/modules/field/field.api.php
@@ -556,11 +556,11 @@ function hook_field_storage_load($obj_type, $queried_objs, $age) {
* The entity type of object, such as 'node' or 'user'.
* @param $object
* The object on which to operate.
- * @param $update
- * TRUE if this is an update to an existing object, FALSE if it is
- * an insert of a new object.
+ * @param $op
+ * FIELD_STORAGE_UPDATE when updating an existing object,
+ * FIELD_STORAGE_INSERT when inserting a new object.
*/
-function hook_field_storage_write($obj_type, $object, $update = TRUE) {
+function hook_field_storage_write($obj_type, $object, $op) {
}
/**
diff --git a/modules/field/field.attach.inc b/modules/field/field.attach.inc
index 511b7bcbe..4ce7d8e69 100644
--- a/modules/field/field.attach.inc
+++ b/modules/field/field.attach.inc
@@ -29,6 +29,20 @@
* The Drupal system variable field_storage_module identifies the
* field storage module to use.
*/
+
+/**
+ * Argument for an insert operation.
+ * This is used in hook_field_storage_write when updating an
+ * existing object.
+ */
+define('FIELD_STORAGE_UPDATE', 'update');
+
+/**
+ * Argument for an update operation.
+ * This is used in hook_field_storage_write when inserting a new object.
+ */
+define('FIELD_STORAGE_INSERT', 'insert');
+
/**
* @} End of "defgroup field_storage"
*/
@@ -386,7 +400,7 @@ function _field_attach_insert($obj_type, &$object) {
}
_field_invoke('insert', $obj_type, $object);
- module_invoke(variable_get('field_storage_module', 'field_sql_storage'), 'field_storage_write', $obj_type, $object);
+ module_invoke(variable_get('field_storage_module', 'field_sql_storage'), 'field_storage_write', $obj_type, $object, FIELD_STORAGE_INSERT);
list($id, $vid, $bundle, $cacheable) = field_attach_extract_ids($obj_type, $object);
if ($cacheable) {
@@ -411,7 +425,7 @@ function _field_attach_update($obj_type, &$object) {
}
_field_invoke('update', $obj_type, $object);
- module_invoke(variable_get('field_storage_module', 'field_sql_storage'), 'field_storage_write', $obj_type, $object, TRUE);
+ module_invoke(variable_get('field_storage_module', 'field_sql_storage'), 'field_storage_write', $obj_type, $object, FIELD_STORAGE_UPDATE);
list($id, $vid, $bundle, $cacheable) = field_attach_extract_ids($obj_type, $object);
if ($cacheable) {
diff --git a/modules/field/modules/field_sql_storage/field_sql_storage.module b/modules/field/modules/field_sql_storage/field_sql_storage.module
index ee17c62a7..774d275bd 100644
--- a/modules/field/modules/field_sql_storage/field_sql_storage.module
+++ b/modules/field/modules/field_sql_storage/field_sql_storage.module
@@ -229,7 +229,7 @@ function field_sql_storage_field_storage_load($obj_type, $objects, $age) {
return $additions;
}
-function field_sql_storage_field_storage_write($obj_type, $object, $update = FALSE) {
+function field_sql_storage_field_storage_write($obj_type, $object, $op) {
list($id, $vid, $bundle) = field_attach_extract_ids($obj_type, $object);
$etid = _field_sql_storage_etid($obj_type);
@@ -247,7 +247,7 @@ function field_sql_storage_field_storage_write($obj_type, $object, $update = FAL
// where it's an empty array with the faster isset().
if (isset($object->$field_name) || property_exists($object, $field_name)) {
// Delete and insert, rather than update, in case a value was added.
- if ($update) {
+ if ($op == FIELD_STORAGE_UPDATE) {
db_delete($table_name)->condition('etid', $etid)->condition('entity_id', $id)->execute();
if (isset($vid)) {
db_delete($revision_name)->condition('etid', $etid)->condition('entity_id', $id)->condition('revision_id', $vid)->execute();