diff options
Diffstat (limited to 'engine/lib/metadata.php')
-rw-r--r-- | engine/lib/metadata.php | 22 |
1 files changed, 21 insertions, 1 deletions
diff --git a/engine/lib/metadata.php b/engine/lib/metadata.php index 610288f90..11f40e51d 100644 --- a/engine/lib/metadata.php +++ b/engine/lib/metadata.php @@ -226,6 +226,16 @@ // If ok then add it $id = insert_data("INSERT into {$CONFIG->dbprefix}metadata (entity_guid, name_id, value_id, value_type, owner_guid, time_created, access_id) VALUES ($entity_guid, '$name','$value','$value_type', $owner_guid, $time, $access_id)"); + + if ($id!==false) { + $obj = get_metadata($id); + if (trigger_elgg_event('create', $name, $obj)) { + return true; + } else { + delete_metadata($id); + } + } + } else if ($existing) {
// TODO: Check... are you sure you meant to do this Ben? :)
$id = $existing->id;
@@ -282,7 +292,17 @@ if (!$name) return false;
// If ok then add it - return update_data("UPDATE {$CONFIG->dbprefix}metadata set value_id='$value', value_type='$value_type', access_id=$access_id, owner_guid=$owner_guid where id=$id and name_id='$name'"); + $result = update_data("UPDATE {$CONFIG->dbprefix}metadata set value_id='$value', value_type='$value_type', access_id=$access_id, owner_guid=$owner_guid where id=$id and name_id='$name'"); + if ($result!==false) { + $obj = get_metadata($id); + if (trigger_elgg_event('update', $name, $obj)) { + return true; + } else { + delete_metadata($id); + } + } + + return $result; } /** |