diff options
Diffstat (limited to 'inc/media.php')
-rw-r--r-- | inc/media.php | 31 |
1 files changed, 18 insertions, 13 deletions
diff --git a/inc/media.php b/inc/media.php index 8c23dc115..c009785fd 100644 --- a/inc/media.php +++ b/inc/media.php @@ -313,7 +313,7 @@ function media_save($file, $id, $ow, $auth, $move) { } } - global $lang; + global $lang, $conf; // get filename $id = cleanID($id,false,true); @@ -603,7 +603,7 @@ function media_tabs_details($image, $selected=false){ media_tab(media_managerURL(array('tab_details' => 'view')), 'view', $lang['media_viewtab'], $selected); list($ext, $mime) = mimetype($image); - if ($mime == 'image/jpeg') { + if ($mime == 'image/jpeg' && @file_exists(mediaFN($image))) { media_tab(media_managerURL(array('tab_details' => 'edit')), 'edit', $lang['media_edittab'], $selected); } if ($conf['mediarevisions']) { @@ -867,12 +867,15 @@ function media_preview_buttons($image, $auth, $rev=false) { } $link = ml($image,$more,true,'&'); - // view original file button - $form = new Doku_Form(array('action'=>$link, 'target'=>'_blank')); - $form->addElement(form_makeButton('submit','',$lang['mediaview'])); - $form->printForm(); + if (@file_exists(mediaFN($image, $rev))) { + + // view original file button + $form = new Doku_Form(array('action'=>$link, 'target'=>'_blank')); + $form->addElement(form_makeButton('submit','',$lang['mediaview'])); + $form->printForm(); + } - if($auth >= AUTH_DELETE && !$rev){ + if($auth >= AUTH_DELETE && !$rev && @file_exists(mediaFN($image))){ // delete button $form = new Doku_Form(array('id' => 'mediamanager__btn_delete', @@ -892,7 +895,7 @@ function media_preview_buttons($image, $auth, $rev=false) { $form->printForm(); } - if($auth >= AUTH_DELETE && $rev && $conf['mediarevisions']){ + if($auth >= AUTH_DELETE && $rev && $conf['mediarevisions'] && @file_exists(mediaFN($image, $rev))){ // restore button $form = new Doku_Form(array('id' => 'mediamanager__btn_restore', @@ -916,7 +919,7 @@ function media_preview_buttons($image, $auth, $rev=false) { * @return array */ function media_image_preview_size($image, $rev, $meta, $size = 500) { - if (!preg_match("/\.(jpe?g|gif|png)$/", $image)) return false; + if (!preg_match("/\.(jpe?g|gif|png)$/", $image) || !file_exists(mediaFN($image, $rev))) return false; $info = getimagesize(mediaFN($image, $rev)); $w = (int) $info[0]; @@ -1206,7 +1209,8 @@ function media_image_diff($image, $l_rev, $r_rev, $meta, $type) { function media_restore($image, $rev, $auth){ global $conf; if ($auth < AUTH_DELETE || !$conf['mediarevisions']) return false; - if (!$image || !file_exists(mediaFN($image))) return false; + $removed = (!file_exists(mediaFN($image)) && file_exists(mediaMetaFN($image, '.changes'))); + if (!$image || (!file_exists(mediaFN($image)) && !$removed)) return false; if (!$rev || !file_exists(mediaFN($image, $rev))) return false; list($iext,$imime,$dl) = mimetype($image); $res = media_upload_finish(mediaFN($image, $rev), @@ -1526,16 +1530,17 @@ function media_managerURL($params=false, $amp='&', $abs=false) { * @author Kate Arzamastseva <pshns@ukr.net> */ function media_uploadform($ns, $auth, $fullscreen = false){ - global $lang; + global $lang, $conf; if($auth < AUTH_UPLOAD) { echo '<div class="nothing">'.$lang['media_perm_upload'].'</div>'.NL; return; } + $auth_ow = (($conf['mediarevisions']) ? AUTH_UPLOAD : AUTH_DELETE); $update = false; $id = ''; - if ($auth >= AUTH_DELETE && $fullscreen && $_REQUEST['mediado'] == 'update') { + if ($auth >= $auth_ow && $fullscreen && $_REQUEST['mediado'] == 'update') { $update = true; $id = cleanID($_REQUEST['image']); } @@ -1562,7 +1567,7 @@ function media_uploadform($ns, $auth, $fullscreen = false){ $form->addElement(form_makeButton('submit', '', $lang['btn_upload'])); $form->addElement(form_makeCloseTag('p')); - if($auth >= AUTH_DELETE){ + if($auth >= $auth_ow){ $form->addElement(form_makeOpenTag('p')); $attrs = array(); if ($update) $attrs['checked'] = 'checked'; |