From 99f943f68e3a6bd43d9b5b90f39e058ee2acfa9d Mon Sep 17 00:00:00 2001 From: Anika Henke Date: Fri, 2 Aug 2013 23:53:28 +0100 Subject: added poster attribute to video if jpg or png with same file name exists --- inc/media.php | 12 ++++++++---- inc/parser/xhtml.php | 10 ++++++++-- 2 files changed, 16 insertions(+), 6 deletions(-) diff --git a/inc/media.php b/inc/media.php index c1dafe2a3..6d0615a3c 100644 --- a/inc/media.php +++ b/inc/media.php @@ -2136,12 +2136,13 @@ function media_resize_imageGD($ext,$from,$from_w,$from_h,$to,$to_w,$to_h,$ofs_x= * Return other media files with the same base name * but a different extension. * - * @param string $src - ID of media file - * @param array $exts - alternative extensions to find other files for + * @param string $src - ID of media file + * @param array $exts - alternative extensions to find other files for + * @param boolean $onlyone - set if only one result should be returned (and not the original) * * @author Anika Henke */ -function media_alternativefiles($src, $exts){ +function media_alternativefiles($src, $exts, $onlyone=false){ $files = array(); list($srcExt, $srcMime) = mimetype($src); @@ -2152,10 +2153,13 @@ function media_alternativefiles($src, $exts){ $file = mediaFN($fileid); if(file_exists($file)) { $files[$ext] = $fileid; + if ($onlyone) { + return $files; + } } } // if original wasn't any of $exts, return only original - if (empty($files)) { + if (empty($files) && !$onlyone) { $files[$srcExt] = $src; } return $files; diff --git a/inc/parser/xhtml.php b/inc/parser/xhtml.php index bb5f6a4d2..8b7405402 100644 --- a/inc/parser/xhtml.php +++ b/inc/parser/xhtml.php @@ -1278,9 +1278,15 @@ class Doku_Renderer_xhtml extends Doku_Renderer { // mp4 would be 'video/mp4; codecs="avc1.42E01E, mp4a.40.2"', but Android doesn't like it $types['mp4'] = ''; $alternatives = media_alternativefiles($src, $extensions); + $poster = media_alternativefiles($src, array('jpg', 'png'), true); + $posterUrl = ''; + if (!empty($poster)) { + $posterUrl = ml(reset($poster),array('cache'=>$cache),true,'&'); + } - // @todo: add poster - $this->doc .= '