diff options
-rw-r--r-- | inc/template.php | 46 | ||||
-rw-r--r-- | lib/exe/ajax.php | 5 |
2 files changed, 42 insertions, 9 deletions
diff --git a/inc/template.php b/inc/template.php index f84f2ed11..17b57c23f 100644 --- a/inc/template.php +++ b/inc/template.php @@ -1166,24 +1166,54 @@ function tpl_loadConfig(){ * * Only allowed in mediamanager.php * + * @triggers MEDIAMANAGER_CONTENT_OUTPUT + * @param bool $fromajax - set true when calling this function via ajax * @author Andreas Gohr <andi@splitbrain.org> */ -function tpl_mediaContent(){ +function tpl_mediaContent($fromajax=false){ global $IMG; global $AUTH; global $INUSE; global $NS; global $JUMPTO; - ptln('<div id="media__content">'); - if($_REQUEST['edit']){ - media_metaform($IMG,$AUTH); - }elseif(is_array($INUSE)){ - media_filesinuse($INUSE,$IMG); + if(is_array($_REQUEST['do'])){ + $do = array_shift(array_keys($_REQUEST['do'])); }else{ - media_filelist($NS,$AUTH,$JUMPTO); + $do = $_REQUEST['do']; } - ptln('</div>'); + if(in_array($do,array('save','cancel'))) $do = ''; + + if(!$do){ + if($_REQUEST['edit']){ + $do = 'metaform'; + }elseif(is_array($INUSE)){ + $do = 'filesinuse'; + }else{ + $do = 'filelist'; + } + } + + // output the content pane, wrapped in an event. + if(!$fromajax) ptln('<div id="media__content">'); + $data = array( 'do' => $do); + $evt = new Doku_Event('MEDIAMANAGER_CONTENT_OUTPUT', $data); + if ($evt->advise_before()) { + $do = $data['do']; + if($do == 'metaform'){ + media_metaform($IMG,$AUTH); + }elseif($do == 'filesinuse'){ + media_filesinuse($INUSE,$IMG); + }elseif($do == 'filelist'){ + media_filelist($NS,$AUTH,$JUMPTO); + }else{ + msg('Unknown action '.hsc($do),-1); + } + } + $evt->advise_after(); + unset($evt); + if(!$fromajax) ptln('</div>'); + } /** diff --git a/lib/exe/ajax.php b/lib/exe/ajax.php index d0321c285..c10893db7 100644 --- a/lib/exe/ajax.php +++ b/lib/exe/ajax.php @@ -207,9 +207,12 @@ function ajax_medians(){ */ function ajax_medialist(){ global $conf; + global $NS; require_once(DOKU_INC.'inc/media.php'); + require_once(DOKU_INC.'inc/template.php'); - media_filelist($_POST['ns']); + $NS = $_POST['ns']; + tpl_mediaContent(true); } /** |