summaryrefslogtreecommitdiff
path: root/inc/parser/xhtml.php
diff options
context:
space:
mode:
authorlisps <stummp@loewen.de>2013-11-21 15:50:52 +0100
committerlisps <stummp@loewen.de>2013-11-21 15:50:52 +0100
commit5c2eed9a193e9341fbfee63d4a973898acdc5ee5 (patch)
treed4c1a321973ed74700c53e32282e459afb2e3986 /inc/parser/xhtml.php
parentee33e0c5628d9cab52676a5aa2f55356c563c209 (diff)
downloadrpg-5c2eed9a193e9341fbfee63d4a973898acdc5ee5.tar.gz
rpg-5c2eed9a193e9341fbfee63d4a973898acdc5ee5.tar.bz2
add parameter at($DATE_AT) and mind revisions
Diffstat (limited to 'inc/parser/xhtml.php')
-rw-r--r--inc/parser/xhtml.php44
1 files changed, 40 insertions, 4 deletions
diff --git a/inc/parser/xhtml.php b/inc/parser/xhtml.php
index fd02c0ce0..a677db276 100644
--- a/inc/parser/xhtml.php
+++ b/inc/parser/xhtml.php
@@ -28,6 +28,8 @@ class Doku_Renderer_xhtml extends Doku_Renderer {
// @access public
var $doc = ''; // will contain the whole document
var $toc = array(); // will contain the Table of Contents
+ var $rev = '';
+ var $date_at = '';
var $sectionedits = array(); // A stack of section edit data
private $lastsecid = 0; // last section edit id, used by startSectionEdit
@@ -618,6 +620,11 @@ class Doku_Renderer_xhtml extends Doku_Renderer {
}
$link['more'] = '';
$link['class'] = $class;
+ if($this->date_at) {
+ $params['at'] = $this->date_at;
+ } else if($this->rev) {
+ //$params['at'] = $this->rev;
+ }
$link['url'] = wl($id, $params);
$link['name'] = $name;
$link['title'] = $id;
@@ -792,7 +799,11 @@ class Doku_Renderer_xhtml extends Doku_Renderer {
list($ext,$mime,$dl) = mimetype($src,false);
if(substr($mime,0,5) == 'image' && $render){
- $link['url'] = ml($src,array('id'=>$ID,'cache'=>$cache),($linking=='direct'));
+ if(($this->rev||$this->date_at)) {
+ $link['url'] = ml($src,array('id'=>$ID,'cache'=>$cache,'rev'=>$this->_getProperMediaRevision($src)),($linking=='direct'));
+ } else {
+ $link['url'] = ml($src,array('id'=>$ID,'cache'=>$cache),($linking=='direct'));
+ }
}elseif($mime == 'application/x-shockwave-flash' && $render){
// don't link flash movies
$noLink = true;
@@ -800,7 +811,11 @@ class Doku_Renderer_xhtml extends Doku_Renderer {
// add file icons
$class = preg_replace('/[^_\-a-z0-9]+/i','_',$ext);
$link['class'] .= ' mediafile mf_'.$class;
- $link['url'] = ml($src,array('id'=>$ID,'cache'=>$cache),true);
+ if(($this->rev||$this->date_at)) {
+ $link['url'] = ml($src,array('id'=>$ID,'cache'=>$cache,'rev'=>$this->_getProperMediaRevision($src)),true);
+ } else {
+ $link['url'] = ml($src,array('id'=>$ID,'cache'=>$cache),true);
+ }
if ($exists) $link['title'] .= ' (' . filesize_h(filesize(mediaFN($src))).')';
}
@@ -1048,7 +1063,7 @@ class Doku_Renderer_xhtml extends Doku_Renderer {
$height=null, $cache=null, $render = true) {
$ret = '';
-
+ $intern = !is_externalmedia($src);
list($ext,$mime,$dl) = mimetype($src);
if(substr($mime,0,5) == 'image'){
// first get the $title
@@ -1073,7 +1088,11 @@ class Doku_Renderer_xhtml extends Doku_Renderer {
return $title;
}
//add image tag
- $ret .= '<img src="'.ml($src,array('w'=>$width,'h'=>$height,'cache'=>$cache)).'"';
+ if($intern && ($this->rev||$this->date_at)) {
+ $ret .= '<img src="'.ml($src,array('w'=>$width,'h'=>$height,'cache'=>$cache,'rev'=>$this->_getProperMediaRevision($src))).'"';
+ } else {
+ $ret .= '<img src="'.ml($src,array('w'=>$width,'h'=>$height,'cache'=>$cache)).'"';
+ }
$ret .= ' class="media'.$align.'"';
if ($title) {
@@ -1221,6 +1240,23 @@ class Doku_Renderer_xhtml extends Doku_Renderer {
return $link;
}
+
+ /**
+ * _getProperMediaRevision is a helperfunction to internalmedia() and _media()
+ * which returns an existing media revision less or equal to rev or date_at
+ *
+ * @author lisps
+ * @param string $media_id
+ * @access protected
+ * @return string revision ('' for current)
+ */
+ function _getProperMediaRevision($media_id){
+ $rev = $this->rev;
+ if($this->date_at){
+ $rev = $this->date_at;
+ }
+ return getProperRevision($media_id,$rev,true);
+ }
}