aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--engine/classes/ElggEntity.php5
-rw-r--r--engine/lib/entities.php16
-rw-r--r--mod/blog/actions/blog/save.php5
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