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