1<?php 2 if(!defined('DOKU_INC')) define('DOKU_INC',dirname(__FILE__).'/../../'); 3 define('DOKU_MEDIAMANAGER',1); 4 5 // for multi uploader: 6 @ini_set('session.use_only_cookies',0); 7 8 require_once(DOKU_INC.'inc/init.php'); 9 10 global $INPUT; 11 global $lang; 12 // handle passed message 13 if($INPUT->str('msg1')) msg(hsc($INPUT->str('msg1')),1); 14 if($INPUT->str('err')) msg(hsc($INPUT->str('err')),-1); 15 16 global $DEL; 17 // get namespace to display (either direct or from deletion order) 18 if($INPUT->str('delete')){ 19 $DEL = cleanID($INPUT->str('delete')); 20 $IMG = $DEL; 21 $NS = getNS($DEL); 22 }elseif($INPUT->str('edit')){ 23 $IMG = cleanID($INPUT->str('edit')); 24 $NS = getNS($IMG); 25 }elseif($INPUT->str('img')){ 26 $IMG = cleanID($INPUT->str('img')); 27 $NS = getNS($IMG); 28 }else{ 29 $NS = cleanID($INPUT->str('ns')); 30 $IMG = null; 31 } 32 33 global $INFO, $JSINFO; 34 $INFO = !empty($INFO) ? array_merge($INFO, mediainfo()) : mediainfo(); 35 $JSINFO = array('id' => '', 'namespace' => ''); 36 $AUTH = $INFO['perm']; // shortcut for historical reasons 37 38 $tmp = array(); 39 trigger_event('MEDIAMANAGER_STARTED', $tmp); 40 session_write_close(); //close session 41 42 // do not display the manager if user does not have read access 43 if($AUTH < AUTH_READ && !$fullscreen) { 44 http_status(403); 45 die($lang['accessdenied']); 46 } 47 48 // handle flash upload 49 if(isset($_FILES['Filedata'])){ 50 $_FILES['upload'] =& $_FILES['Filedata']; 51 $JUMPTO = media_upload($NS,$AUTH); 52 if($JUMPTO == false){ 53 http_status(400); 54 echo 'Upload failed'; 55 } 56 echo 'ok'; 57 exit; 58 } 59 60 // give info on PHP caught upload errors 61 if(!empty($_FILES['upload']['error'])){ 62 switch($_FILES['upload']['error']){ 63 case 1: 64 case 2: 65 msg(sprintf($lang['uploadsize'], 66 filesize_h(php_to_byte(ini_get('upload_max_filesize')))),-1); 67 break; 68 default: 69 msg($lang['uploadfail'].' ('.$_FILES['upload']['error'].')',-1); 70 } 71 unset($_FILES['upload']); 72 } 73 74 // handle upload 75 if(!empty($_FILES['upload']['tmp_name'])){ 76 $JUMPTO = media_upload($NS,$AUTH); 77 if($JUMPTO) $NS = getNS($JUMPTO); 78 } 79 80 // handle meta saving 81 if($IMG && @array_key_exists('save', $INPUT->arr('do'))){ 82 $JUMPTO = media_metasave($IMG,$AUTH,$INPUT->arr('meta')); 83 } 84 85 if($IMG && ($INPUT->str('mediado') == 'save' || @array_key_exists('save', $INPUT->arr('mediado')))) { 86 $JUMPTO = media_metasave($IMG,$AUTH,$INPUT->arr('meta')); 87 } 88 89 if ($INPUT->int('rev') && $conf['mediarevisions']) $REV = $INPUT->int('rev'); 90 91 if($INPUT->str('mediado') == 'restore' && $conf['mediarevisions']){ 92 $JUMPTO = media_restore($INPUT->str('image'), $REV, $AUTH); 93 } 94 95 // handle deletion 96 if($DEL) { 97 $res = 0; 98 if(checkSecurityToken()) { 99 $res = media_delete($DEL,$AUTH); 100 } 101 if ($res & DOKU_MEDIA_DELETED) { 102 $msg = sprintf($lang['deletesucc'], noNS($DEL)); 103 if ($res & DOKU_MEDIA_EMPTY_NS && !$fullscreen) { 104 // current namespace was removed. redirecting to root ns passing msg along 105 send_redirect(DOKU_URL.'lib/exe/mediamanager.php?msg1='. 106 rawurlencode($msg).'&edid='.$INPUT->str('edid')); 107 } 108 msg($msg,1); 109 } elseif ($res & DOKU_MEDIA_INUSE) { 110 if(!$conf['refshow']) { 111 msg(sprintf($lang['mediainuse'],noNS($DEL)),0); 112 } 113 } else { 114 msg(sprintf($lang['deletefail'],noNS($DEL)),-1); 115 } 116 } 117 // finished - start output 118 119 if (!$fullscreen) { 120 header('Content-Type: text/html; charset=utf-8'); 121 include(template('mediamanager.php')); 122 } 123 124/* vim: set expandtab tabstop=4 shiftwidth=4 softtabstop=4: */ 125