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/parser/xhtml.php | 44 ++++++++++++++++++++++++++++++++++++++++---- 1 file changed, 40 insertions(+), 4 deletions(-) (limited to 'inc/parser') 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 .= 'rev||$this->date_at)) { + $ret .= '$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); + } } -- 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/parser/xhtml.php | 17 +++++------------ 1 file changed, 5 insertions(+), 12 deletions(-) (limited to 'inc/parser') diff --git a/inc/parser/xhtml.php b/inc/parser/xhtml.php index a677db276..f6e186cdb 100644 --- a/inc/parser/xhtml.php +++ b/inc/parser/xhtml.php @@ -28,8 +28,7 @@ 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 $date_at = ''; // link pages and media against this revision var $sectionedits = array(); // A stack of section edit data private $lastsecid = 0; // last section edit id, used by startSectionEdit @@ -622,8 +621,6 @@ class Doku_Renderer_xhtml extends Doku_Renderer { $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; @@ -799,7 +796,7 @@ class Doku_Renderer_xhtml extends Doku_Renderer { list($ext,$mime,$dl) = mimetype($src,false); if(substr($mime,0,5) == 'image' && $render){ - if(($this->rev||$this->date_at)) { + if($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')); @@ -811,7 +808,7 @@ class Doku_Renderer_xhtml extends Doku_Renderer { // add file icons $class = preg_replace('/[^_\-a-z0-9]+/i','_',$ext); $link['class'] .= ' mediafile mf_'.$class; - if(($this->rev||$this->date_at)) { + if($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); @@ -1088,7 +1085,7 @@ class Doku_Renderer_xhtml extends Doku_Renderer { return $title; } //add image tag - if($intern && ($this->rev||$this->date_at)) { + if($intern && $this->date_at) { $ret .= '$width,'h'=>$height,'cache'=>$cache)).'"'; @@ -1251,11 +1248,7 @@ class Doku_Renderer_xhtml extends Doku_Renderer { * @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); + return getProperRevision($media_id,$this->date_at,true); } -- 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/parser/xhtml.php | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) (limited to 'inc/parser') 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); } -- cgit v1.2.3 From 52dc5ead7374060b89484fc0713bc38d8ec1467c Mon Sep 17 00:00:00 2001 From: lisps Date: Fri, 22 Nov 2013 14:36:35 +0100 Subject: rename function _getProperMediaRevision to _getLastMediaRevisionAt reduce a bit duplicated code --- inc/parser/xhtml.php | 24 ++++++------------------ 1 file changed, 6 insertions(+), 18 deletions(-) (limited to 'inc/parser') diff --git a/inc/parser/xhtml.php b/inc/parser/xhtml.php index 76aecac10..2070c3af6 100644 --- a/inc/parser/xhtml.php +++ b/inc/parser/xhtml.php @@ -796,11 +796,7 @@ class Doku_Renderer_xhtml extends Doku_Renderer { list($ext,$mime,$dl) = mimetype($src,false); if(substr($mime,0,5) == 'image' && $render){ - if($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')); - } + $link['url'] = ml($src,array('id'=>$ID,'cache'=>$cache,'rev'=>$this->_getLastMediaRevisionAt($src)),($linking=='direct')); }elseif($mime == 'application/x-shockwave-flash' && $render){ // don't link flash movies $noLink = true; @@ -808,11 +804,7 @@ class Doku_Renderer_xhtml extends Doku_Renderer { // add file icons $class = preg_replace('/[^_\-a-z0-9]+/i','_',$ext); $link['class'] .= ' mediafile mf_'.$class; - if($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); - } + $link['url'] = ml($src,array('id'=>$ID,'cache'=>$cache,'rev'=>$this->_getLastMediaRevisionAt($src)),true); if ($exists) $link['title'] .= ' (' . filesize_h(filesize(mediaFN($src))).')'; } @@ -1060,7 +1052,6 @@ class Doku_Renderer_xhtml extends Doku_Renderer { $height=null, $cache=null, $render = true) { $ret = ''; - $intern = !media_isexternal($src); list($ext,$mime,$dl) = mimetype($src); if(substr($mime,0,5) == 'image'){ // first get the $title @@ -1085,11 +1076,7 @@ class Doku_Renderer_xhtml extends Doku_Renderer { return $title; } //add image tag - if($intern && $this->date_at) { - $ret .= '$width,'h'=>$height,'cache'=>$cache)).'"'; - } + $ret .= 'date_at || media_isexternal($media_id)) return ''; $pagelog = new MediaChangeLog($media_id); return $pagelog->getLastRevisionAt($this->date_at); } -- cgit v1.2.3 From df0e21b4abb118b585b79ac5546ef4bd9c3b8229 Mon Sep 17 00:00:00 2001 From: lisps Date: Mon, 17 Feb 2014 23:26:54 +0100 Subject: fix last merge --- inc/parser/xhtml.php | 92 ++++++++++++++++++++++++++++++++++++++++++++++++++-- 1 file changed, 90 insertions(+), 2 deletions(-) (limited to 'inc/parser') diff --git a/inc/parser/xhtml.php b/inc/parser/xhtml.php index 1cf1acc32..0d5881aa0 100644 --- a/inc/parser/xhtml.php +++ b/inc/parser/xhtml.php @@ -1272,6 +1272,95 @@ class Doku_Renderer_xhtml extends Doku_Renderer { return $link; } + + + /** + * Embed video(s) in HTML + * + * @author Anika Henke + * + * @param string $src - ID of video to embed + * @param int $width - width of the video in pixels + * @param int $height - height of the video in pixels + * @param array $atts - additional attributes for the