From 5c2eed9a193e9341fbfee63d4a973898acdc5ee5 Mon Sep 17 00:00:00 2001 From: lisps Date: Thu, 21 Nov 2013 15:50:52 +0100 Subject: add parameter at($DATE_AT) and mind revisions --- inc/changelog.php | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) (limited to 'inc/changelog.php') diff --git a/inc/changelog.php b/inc/changelog.php index de26fdf6a..0a33f6a6e 100644 --- a/inc/changelog.php +++ b/inc/changelog.php @@ -814,3 +814,26 @@ function getRevisions($id, $first, $num, $chunk_size=8192, $media=false) { $log = new PageRevisionLog($id, $chunk_size); return $log->getRevisions($first, $num, $media); } + +/** +* Return an existing revision for a specific date which is +* the current one or less or equal then the date +* +* @param string $id +* @param number $date_at +* @param boolean $media +* @return string revision ('' for current) +*/ +function getProperRevision($id,$date_at,$media = false){ + $create_time = @filemtime($media?mediaFN($id):wikiFN($id)); + if(((int)$date_at) >= $create_time) { //requestet REV older then time($id) => load current + return ''; + } else { + $log = new PageRevisionLog($id); + if($rev = $log->getRelativeRevision($date_at+1, -1,$media)) { + return $rev; + } else { + return false; + } + } +} \ No newline at end of file -- cgit v1.2.3 From 4bde2196a1e3572cead3f4d4e4b6a5a752bd62b3 Mon Sep 17 00:00:00 2001 From: lisps Date: Fri, 22 Nov 2013 09:04:44 +0100 Subject: remove property rev from xhtml.php changed variable name $create_time to $modified_time --- inc/changelog.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'inc/changelog.php') diff --git a/inc/changelog.php b/inc/changelog.php index 0a33f6a6e..7ce8096d5 100644 --- a/inc/changelog.php +++ b/inc/changelog.php @@ -825,8 +825,8 @@ function getRevisions($id, $first, $num, $chunk_size=8192, $media=false) { * @return string revision ('' for current) */ function getProperRevision($id,$date_at,$media = false){ - $create_time = @filemtime($media?mediaFN($id):wikiFN($id)); - if(((int)$date_at) >= $create_time) { //requestet REV older then time($id) => load current + $modified_time = @filemtime($media?mediaFN($id):wikiFN($id)); + if(((int)$date_at) >= $modified_time) { //requestet REV younger or equal then time($id) => load current return ''; } else { $log = new PageRevisionLog($id); -- cgit v1.2.3 From 78b874e68a5f2a45f71a91efb168761c283e3a91 Mon Sep 17 00:00:00 2001 From: lisps Date: Fri, 22 Nov 2013 10:51:16 +0100 Subject: fix function name media_isexternal() remove empty rev from ml() rename getProperRevision() to getLastRevisionAt() make getLastRevisionAt() a method of ChangeLog --- inc/changelog.php | 41 +++++++++++++++++++---------------------- 1 file changed, 19 insertions(+), 22 deletions(-) (limited to 'inc/changelog.php') diff --git a/inc/changelog.php b/inc/changelog.php index 75fe29e5b..ccb5f7a3e 100644 --- a/inc/changelog.php +++ b/inc/changelog.php @@ -771,6 +771,25 @@ abstract class ChangeLog { public function isCurrentRevision($rev) { return $rev == @filemtime($this->getFilename()); } + + /** + * Return an existing revision for a specific date which is + * the current one or younger or equal then the date + * + * @param string $id + * @param number $date_at timestamp + * @return string revision ('' for current) + */ + function getLastRevisionAt($date_at){ + //requested date_at(timestamp) younger or equal then modified_time($this->id) => load current + if($date_at >= @filemtime($this->getFilename())) { + return ''; + } else if ($rev = $this->getRelativeRevision($date_at+1, -1)) { //+1 to get also the requested date revision + return $rev; + } else { + return false; + } + } } class PageChangelog extends ChangeLog { @@ -870,25 +889,3 @@ function getRevisions($id, $first, $num, $chunk_size=8192, $media=false) { return $changelog->getRevisions($first, $num); } -/** -* Return an existing revision for a specific date which is -* the current one or less or equal then the date -* -* @param string $id -* @param number $date_at -* @param boolean $media -* @return string revision ('' for current) -*/ -function getProperRevision($id,$date_at,$media = false){ - $modified_time = @filemtime($media?mediaFN($id):wikiFN($id)); - if(((int)$date_at) >= $modified_time) { //requestet REV younger or equal then time($id) => load current - return ''; - } else { - $log = new PageRevisionLog($id); - if($rev = $log->getRelativeRevision($date_at+1, -1,$media)) { - return $rev; - } else { - return false; - } - } -} -- cgit v1.2.3 From 42ea7f447f39fbc2f79eaaec31f8c10ede59c5d0 Mon Sep 17 00:00:00 2001 From: Gerrit Uitslag Date: Wed, 1 Oct 2014 11:30:27 +0200 Subject: Many PHPDocs, some unused and dyn declared vars many PHPDocs some unused variables some dynamically declared variables declared --- inc/changelog.php | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) (limited to 'inc/changelog.php') diff --git a/inc/changelog.php b/inc/changelog.php index 8c14f21b0..e2826e4b3 100644 --- a/inc/changelog.php +++ b/inc/changelog.php @@ -725,8 +725,10 @@ abstract class ChangeLog { * If file larger than $chuncksize, only chunck is read that could contain $rev. * * @param int $rev revision timestamp - * @return array(fp, array(changeloglines), $head, $tail, $eof)|bool - * returns false when not succeed. fp only defined for chuck reading, needs closing. + * @return array|false + * if success returns array(fp, array(changeloglines), $head, $tail, $eof) + * where fp only defined for chuck reading, needs closing. + * otherwise false */ protected function readloglines($rev) { $file = $this->getChangelogFilename(); -- cgit v1.2.3 From fed2ee900d012e5ebccad2796d0850034ac7729b Mon Sep 17 00:00:00 2001 From: Gerrit Uitslag Date: Thu, 6 Nov 2014 21:12:10 +0100 Subject: Make addLogEntry independent of global var INFO In stead use the type as provided to the function. Fixes #920 --- inc/changelog.php | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) (limited to 'inc/changelog.php') diff --git a/inc/changelog.php b/inc/changelog.php index 6af336fc2..9642cf9cd 100644 --- a/inc/changelog.php +++ b/inc/changelog.php @@ -83,17 +83,19 @@ function addLogEntry($date, $id, $type=DOKU_CHANGE_TYPE_EDIT, $summary='', $extr 'extra' => str_replace($strip, '', $extra) ); + $wasCreated = ($type===DOKU_CHANGE_TYPE_CREATE); + $wasReverted = ($type===DOKU_CHANGE_TYPE_REVERT); // update metadata if (!$wasRemoved) { $oldmeta = p_read_metadata($id); $meta = array(); - if (!$INFO['exists'] && empty($oldmeta['persistent']['date']['created'])){ // newly created + if ($wasCreated && empty($oldmeta['persistent']['date']['created'])){ // newly created $meta['date']['created'] = $created; if ($user){ $meta['creator'] = $INFO['userinfo']['name']; $meta['user'] = $user; } - } elseif (!$INFO['exists'] && !empty($oldmeta['persistent']['date']['created'])) { // re-created / restored + } elseif (($wasCreated || $wasReverted) && !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']; -- cgit v1.2.3