From 9064861b7b3946aa16d73aa3975f4fe4d89a0d97 Mon Sep 17 00:00:00 2001 From: cash Date: Sat, 2 Apr 2011 02:29:48 +0000 Subject: Fixes #3208 setting time_created on update git-svn-id: http://code.elgg.org/elgg/trunk@8904 36083f99-b078-4883-b0ff-0f9b5a30f544 --- engine/classes/ElggEntity.php | 5 +++-- engine/lib/entities.php | 16 ++++++++++++---- mod/blog/actions/blog/save.php | 5 ++--- 3 files changed, 17 insertions(+), 9 deletions(-) diff --git a/engine/classes/ElggEntity.php b/engine/classes/ElggEntity.php index 41f19a4c1..cfdaede71 100644 --- a/engine/classes/ElggEntity.php +++ b/engine/classes/ElggEntity.php @@ -95,6 +95,7 @@ abstract class ElggEntity extends ElggData implements $this->attributes['site_guid'] = NULL; $this->attributes['access_id'] = ACCESS_PRIVATE; + $this->attributes['time_created'] = NULL; $this->attributes['time_updated'] = NULL; $this->attributes['last_action'] = NULL; $this->attributes['enabled'] = "yes"; @@ -222,7 +223,6 @@ abstract class ElggEntity extends ElggData implements // Certain properties should not be manually changed! switch ($name) { case 'guid': - case 'time_created': case 'time_updated': case 'last_action': return FALSE; @@ -1244,7 +1244,8 @@ abstract class ElggEntity extends ElggData implements $this->get('guid'), $this->get('owner_guid'), $this->get('access_id'), - $this->get('container_guid') + $this->get('container_guid'), + $this->get('time_created') ); } else { // Create a new entity (nb: using attribute array directly diff --git a/engine/lib/entities.php b/engine/lib/entities.php index b862e177a..a4da347ec 100644 --- a/engine/lib/entities.php +++ b/engine/lib/entities.php @@ -367,12 +367,13 @@ function update_subtype($type, $subtype, $class = '') { * @param int $owner_guid The new owner guid * @param int $access_id The new access id * @param int $container_guid The new container guid + * @param int $time_created The time creation timestamp * * @return bool * @link http://docs.elgg.org/DataModel/Entities * @access private */ -function update_entity($guid, $owner_guid, $access_id, $container_guid = null) { +function update_entity($guid, $owner_guid, $access_id, $container_guid = null, $time_created = null) { global $CONFIG, $ENTITY_CACHE; $guid = (int)$guid; @@ -386,11 +387,18 @@ function update_entity($guid, $owner_guid, $access_id, $container_guid = null) { $entity = get_entity($guid); + if ($time_created == null) { + $time_created = $entity->time_created; + } else { + $time_created = (int) $time_created; + } + if ($entity && $entity->canEdit()) { if (elgg_trigger_event('update', $entity->type, $entity)) { - $ret = update_data("UPDATE {$CONFIG->dbprefix}entities" - . " set owner_guid='$owner_guid', access_id='$access_id'," - . " container_guid='$container_guid', time_updated='$time' WHERE guid=$guid"); + $ret = update_data("UPDATE {$CONFIG->dbprefix}entities + set owner_guid='$owner_guid', access_id='$access_id', + container_guid='$container_guid', time_created='$time_created', + time_updated='$time' WHERE guid=$guid"); if ($entity instanceof ElggObject) { update_river_access_by_object($guid, $access_id); diff --git a/mod/blog/actions/blog/save.php b/mod/blog/actions/blog/save.php index 3f9e5e355..c42845037 100644 --- a/mod/blog/actions/blog/save.php +++ b/mod/blog/actions/blog/save.php @@ -144,9 +144,8 @@ if (!$error) { add_to_river('river/object/blog/create', 'create', elgg_get_logged_in_user_guid(), $blog->getGUID()); if ($guid) { - $q = "UPDATE {$db_prefix}entities SET time_created = '$date' - WHERE guid = $guid"; - update_data($q); + $blog->time_created = time(); + $blog->save(); } } elseif ($old_status == 'published' && $status == 'draft') { $q = "DELETE FROM {$db_prefix}river -- cgit v1.2.3