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