xref: /dokuwiki/lib/exe/mediamanager.php (revision 24b3cb1ac0784ffa2acabf021fdd06c6d49cc7b1)
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    trigger_event('MEDIAMANAGER_STARTED',$tmp=array());
11    session_write_close();  //close session
12
13    // handle passed message
14    if($_REQUEST['msg1']) msg(hsc($_REQUEST['msg1']),1);
15    if($_REQUEST['err']) msg(hsc($_REQUEST['err']),-1);
16
17
18    // get namespace to display (either direct or from deletion order)
19    if($_REQUEST['delete']){
20        $DEL = cleanID($_REQUEST['delete']);
21        $IMG = $DEL;
22        $NS  = getNS($DEL);
23    }elseif($_REQUEST['edit']){
24        $IMG = cleanID($_REQUEST['edit']);
25        $NS  = getNS($IMG);
26    }elseif($_REQUEST['img']){
27        $IMG = cleanID($_REQUEST['img']);
28        $NS  = getNS($IMG);
29    }else{
30        $NS = $_REQUEST['ns'];
31        $NS = cleanID($NS);
32    }
33
34    // check auth
35    $AUTH = auth_quickaclcheck("$NS:*");
36
37    // create the given namespace (just for beautification)
38    if($AUTH >= AUTH_UPLOAD) { io_createNamespace("$NS:xxx", 'media'); }
39
40    // handle flash upload
41    if(isset($_FILES['Filedata'])){
42        $_FILES['upload'] =& $_FILES['Filedata'];
43        $JUMPTO = media_upload($NS,$AUTH);
44        if($JUMPTO == false){
45            header("HTTP/1.0 400 Bad Request");
46            echo 'Upload failed';
47        }
48        echo 'ok';
49        exit;
50    }
51
52    // give info on PHP catched upload errors
53    if($_FILES['upload']['error']){
54        switch($_FILES['upload']['error']){
55            case 1:
56            case 2:
57                msg(sprintf($lang['uploadsize'],
58                    filesize_h(php_to_byte(ini_get('upload_max_filesize')))),-1);
59                break;
60            default:
61                msg($lang['uploadfail'].' ('.$_FILES['upload']['error'].')',-1);
62        }
63        unset($_FILES['upload']);
64    }
65
66    // handle upload
67    if($_FILES['upload']['tmp_name']){
68        $JUMPTO = media_upload($NS,$AUTH);
69        if($JUMPTO) $NS = getNS($JUMPTO);
70    }
71
72    // handle meta saving
73    if($IMG && $_REQUEST['do']['save']){
74        $JUMPTO = media_metasave($IMG,$AUTH,$_REQUEST['meta']);
75    }
76
77    // handle deletion
78    if($DEL) {
79        $INUSE = media_inuse($DEL);
80        if(!$INUSE) {
81            if(media_delete($DEL,$AUTH)) {
82                msg(sprintf($lang['deletesucc'],noNS($DEL)),1);
83            } else {
84                msg(sprintf($lang['deletefail'],noNS($DEL)),-1);
85            }
86        } else {
87            if(!$conf['refshow']) {
88                unset($INUSE);
89                msg(sprintf($lang['mediainuse'],noNS($DEL)),0);
90            }
91        }
92    }
93
94    // finished - start output
95    header('Content-Type: text/html; charset=utf-8');
96    include(template('mediamanager.php'));
97
98/* vim: set expandtab tabstop=4 shiftwidth=4 softtabstop=4: */
99