Corrected image link generation for image preview.
This fixes broken preview images if media ids are used in the file pattern (parameter 'direct=0'). Fixes #27.
This commit is contained in:
18
syntax.php
18
syntax.php
@@ -533,9 +533,15 @@ class syntax_plugin_filelist extends DokuWiki_Syntax_Plugin {
|
|||||||
* @return void
|
* @return void
|
||||||
*/
|
*/
|
||||||
protected function _render_preview_image ($filepath, $basedir, $webdir, $params, Doku_Renderer $renderer) {
|
protected function _render_preview_image ($filepath, $basedir, $webdir, $params, Doku_Renderer $renderer) {
|
||||||
$imagepath = $this->get_preview_image_path($filepath, $params);
|
$imagepath = $this->get_preview_image_path($filepath, $params, $isImage);
|
||||||
if (!empty($imagepath)) {
|
if (!empty($imagepath)) {
|
||||||
$imgLink = $this->_get_link_url ($imagepath, $basedir, $webdir, 0, 1);
|
if ($isImage == false) {
|
||||||
|
// Generate link to returned filetype icon
|
||||||
|
$imgLink = $this->_get_link_url ($imagepath, $basedir, $webdir, 0, 1);
|
||||||
|
} else {
|
||||||
|
// Generate link to image file
|
||||||
|
$imgLink = $this->_get_link_url ($filepath, $basedir, $webdir, $params['randlinks'], $params['direct'], $params['ftp']);
|
||||||
|
}
|
||||||
|
|
||||||
$previewsize = $params['previewsize'];
|
$previewsize = $params['previewsize'];
|
||||||
if ($previewsize == 0) {
|
if ($previewsize == 0) {
|
||||||
@@ -545,7 +551,7 @@ class syntax_plugin_filelist extends DokuWiki_Syntax_Plugin {
|
|||||||
if ($params['onhover']) {
|
if ($params['onhover']) {
|
||||||
$imgclass = 'class="filelist_preview"';
|
$imgclass = 'class="filelist_preview"';
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!$this->is_odt_export) {
|
if (!$this->is_odt_export) {
|
||||||
$renderer->doc .= '<img '.$imgclass.' style=" max-height: '.$previewsize.'px; max-width: '.$previewsize.'px;" src="'.$imgLink.'">';
|
$renderer->doc .= '<img '.$imgclass.' style=" max-height: '.$previewsize.'px; max-width: '.$previewsize.'px;" src="'.$imgLink.'">';
|
||||||
} else {
|
} else {
|
||||||
@@ -971,7 +977,7 @@ class syntax_plugin_filelist extends DokuWiki_Syntax_Plugin {
|
|||||||
return ($path[0] == '/');
|
return ($path[0] == '/');
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
function _convert_mediapath($path) {
|
function _convert_mediapath($path) {
|
||||||
$mid = str_replace('/', ':', substr($path, strlen($this->mediadir))); // strip media base dir
|
$mid = str_replace('/', ':', substr($path, strlen($this->mediadir))); // strip media base dir
|
||||||
return ltrim($mid, ':'); // strip leading :
|
return ltrim($mid, ':'); // strip leading :
|
||||||
@@ -989,13 +995,15 @@ class syntax_plugin_filelist extends DokuWiki_Syntax_Plugin {
|
|||||||
* @param $filename the file to check
|
* @param $filename the file to check
|
||||||
* @return string Image to use for preview image
|
* @return string Image to use for preview image
|
||||||
*/
|
*/
|
||||||
protected function get_preview_image_path ($filename, $params) {
|
protected function get_preview_image_path ($filename, $params, &$isImage) {
|
||||||
list($ext,$mime) = mimetype(basename($filename));
|
list($ext,$mime) = mimetype(basename($filename));
|
||||||
$imagepath = '';
|
$imagepath = '';
|
||||||
|
$isImage = false;
|
||||||
if (($params['preview'] == 1 || $params['preview'] == 2) &&
|
if (($params['preview'] == 1 || $params['preview'] == 2) &&
|
||||||
strncmp($mime, 'image', strlen('image')) == 0) {
|
strncmp($mime, 'image', strlen('image')) == 0) {
|
||||||
// The file is an image. Return itself as the image path.
|
// The file is an image. Return itself as the image path.
|
||||||
$imagepath = $filename;
|
$imagepath = $filename;
|
||||||
|
$isImage = true;
|
||||||
}
|
}
|
||||||
if (($params['preview'] == 1 && empty($imagepath)) ||
|
if (($params['preview'] == 1 && empty($imagepath)) ||
|
||||||
$params['preview'] == 3 ) {
|
$params['preview'] == 3 ) {
|
||||||
|
|||||||
Reference in New Issue
Block a user