summaryrefslogtreecommitdiff
path: root/inc/changelog.php
diff options
context:
space:
mode:
authorMichael Klier <chi@chimeric.de>2008-03-26 21:02:31 +0100
committerMichael Klier <chi@chimeric.de>2008-03-26 21:02:31 +0100
commit3d1f9ec3674462e63f4195dd834603148a7c7b42 (patch)
treee0a310e687ce3595adb45658c15b472fd99ab8fb /inc/changelog.php
parent6a5b38cd97b00e27beaae7e3158f868dfcde4193 (diff)
downloadrpg-3d1f9ec3674462e63f4195dd834603148a7c7b42.tar.gz
rpg-3d1f9ec3674462e63f4195dd834603148a7c7b42.tar.bz2
purge non-persistent meta data on page deletion
With this patch applied the persistent meta data of pages is kept when a page is deleted. This way the original page creator as well as the creation time of the page is preserved. darcs-hash:20080326200231-23886-ddb70151fadf25d0254d56408b71484047198096.gz
Diffstat (limited to 'inc/changelog.php')
-rw-r--r--inc/changelog.php10
1 files changed, 8 insertions, 2 deletions
diff --git a/inc/changelog.php b/inc/changelog.php
index 1d61e36df..def785f43 100644
--- a/inc/changelog.php
+++ b/inc/changelog.php
@@ -71,10 +71,16 @@ function addLogEntry($date, $id, $type=DOKU_CHANGE_TYPE_EDIT, $summary='', $extr
// update metadata
if (!$wasRemoved) {
- $meta = array();
- if (!$INFO['exists']){ // newly created
+ $oldmeta = p_read_metadata($id);
+ $meta = array();
+ if (!$INFO['exists'] && empty($oldmeta['persistent']['date']['created'])){ // newly created
$meta['date']['created'] = $created;
if ($user) $meta['creator'] = $INFO['userinfo']['name'];
+ } elseif (!$INFO['exists'] && !empty($oldmeta['persistent']['date']['created'])) { // re-created / restored
+ $meta['date']['created'] = $oldmeta['persistent']['date']['created'];
+ $meta['date']['modified'] = $created; // use the files ctime here
+ $meta['creator'] = $oldmeta['persistent']['creator'];
+ if ($user) $meta['contributor'][$user] = $INFO['userinfo']['name'];
} elseif (!$minor) { // non-minor modification
$meta['date']['modified'] = $date;
if ($user) $meta['contributor'][$user] = $INFO['userinfo']['name'];