From 78b874e68a5f2a45f71a91efb168761c283e3a91 Mon Sep 17 00:00:00 2001 From: lisps <stummp@loewen.de> Date: Fri, 22 Nov 2013 10:51:16 +0100 Subject: [PATCH] fix function name media_isexternal() remove empty rev from ml() rename getProperRevision() to getLastRevisionAt() make getLastRevisionAt() a method of ChangeLog --- doku.php | 3 ++- inc/changelog.php | 41 +++++++++++++++++++---------------------- inc/common.php | 1 + inc/parser/xhtml.php | 5 +++-- 4 files changed, 25 insertions(+), 25 deletions(-) diff --git a/doku.php b/doku.php index 17ec824a9..e90f8bea2 100644 --- a/doku.php +++ b/doku.php @@ -49,7 +49,8 @@ $SUF = cleanText($INPUT->post->str('suffix')); $SUM = $INPUT->post->str('summary'); if($DATE_AT) { - $rev_t = getProperRevision($ID,$DATE_AT); + $pagelog = new PageChangeLog($ID); + $rev_t = $pagelog->getLastRevisionAt($DATE_AT); if($rev_t === '') { $REV = ''; } else if ($rev_t === false) { 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; - } - } -} diff --git a/inc/common.php b/inc/common.php index 106bf7c15..5dcf58e39 100644 --- a/inc/common.php +++ b/inc/common.php @@ -484,6 +484,7 @@ function ml($id = '', $more = '', $direct = true, $sep = '&', $abs = false) if(empty($more['w'])) unset($more['w']); if(empty($more['h'])) unset($more['h']); if(isset($more['id']) && $direct) unset($more['id']); + if(isset($more['rev']) && !$more['rev']) unset($more['rev']); $more = buildURLparams($more, $sep); } else { $matches = array(); diff --git a/inc/parser/xhtml.php b/inc/parser/xhtml.php index f6e186cdb..76aecac10 100644 --- a/inc/parser/xhtml.php +++ b/inc/parser/xhtml.php @@ -1060,7 +1060,7 @@ class Doku_Renderer_xhtml extends Doku_Renderer { $height=null, $cache=null, $render = true) { $ret = ''; - $intern = !is_externalmedia($src); + $intern = !media_isexternal($src); list($ext,$mime,$dl) = mimetype($src); if(substr($mime,0,5) == 'image'){ // first get the $title @@ -1248,7 +1248,8 @@ class Doku_Renderer_xhtml extends Doku_Renderer { * @return string revision ('' for current) */ function _getProperMediaRevision($media_id){ - return getProperRevision($media_id,$this->date_at,true); + $pagelog = new MediaChangeLog($media_id); + return $pagelog->getLastRevisionAt($this->date_at); } -- GitLab