summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--inc/template.php46
-rw-r--r--lib/exe/ajax.php5
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);
}
/**