diff --git a/inc/actions.php b/inc/actions.php index 963be86a9de7fb4948953772991b3e2308d694ca..d585ccace8e0b1d1f8000e58a774e803fbb713b5 100644 --- a/inc/actions.php +++ b/inc/actions.php @@ -23,87 +23,87 @@ function act_dispatch(){ global $lang; global $conf; - //sanitize $ACT - $ACT = act_clean($ACT); - - //check if searchword was given - else just show - $s = cleanID($QUERY); - if($ACT == 'search' && empty($s)){ - $ACT = 'show'; - } - - //login stuff - if(in_array($ACT,array('login','logout'))) - $ACT = act_auth($ACT); - - //check if user is asking to (un)subscribe a page - if($ACT == 'subscribe' || $ACT == 'unsubscribe') - $ACT = act_subscription($ACT); - - //check permissions - $ACT = act_permcheck($ACT); - - //register - if($ACT == 'register' && register()){ - $ACT = 'login'; - } - - if ($ACT == 'resendpwd' && act_resendpwd()) { - $ACT = 'login'; - } - - //update user profile - if (($ACT == 'profile') && updateprofile()) { - msg($lang['profchanged'],1); - $ACT = 'show'; - } - - //save - if($ACT == 'save') - $ACT = act_save($ACT); - - //draft deletion - if($ACT == 'draftdel') - $ACT = act_draftdel($ACT); - - //draft saving on preview - if($ACT == 'preview') - $ACT = act_draftsave($ACT); - - //edit - if(($ACT == 'edit' || $ACT == 'preview') && $INFO['editable']){ - $ACT = act_edit($ACT); - }else{ - unlock($ID); //try to unlock - } - - //handle export - if(substr($ACT,0,7) == 'export_') - $ACT = act_export($ACT); - - //display some infos - if($ACT == 'check'){ - check(); - $ACT = 'show'; - } - - //handle admin tasks - if($ACT == 'admin'){ - // retrieve admin plugin name from $_REQUEST['page'] - if ($_REQUEST['page']) { - $pluginlist = plugin_list('admin'); - if (in_array($_REQUEST['page'], $pluginlist)) { - // attempt to load the plugin - if ($plugin =& plugin_load('admin',$_REQUEST['page']) !== NULL) - $plugin->handle(); - } + // give plugins an opportunity to process the action + $evt = new event('ACTION_DISPATCH',$ACT); + $evt->trigger(); + if ($evt->_default) { + + //sanitize $ACT + $ACT = act_clean($ACT); + + //check if searchword was given - else just show + $s = cleanID($QUERY); + if($ACT == 'search' && empty($s)){ + $ACT = 'show'; + } + + //login stuff + if(in_array($ACT,array('login','logout'))) + $ACT = act_auth($ACT); + + //check if user is asking to (un)subscribe a page + if($ACT == 'subscribe' || $ACT == 'unsubscribe') + $ACT = act_subscription($ACT); + + //check permissions + $ACT = act_permcheck($ACT); + + //register + if($ACT == 'register' && register()){ + $ACT = 'login'; } -/* - if($_REQUEST['page'] == 'acl'){ - require_once(DOKU_INC.'inc/admin_acl.php'); - admin_acl_handler(); + + if ($ACT == 'resendpwd' && act_resendpwd()) { + $ACT = 'login'; + } + + //update user profile + if (($ACT == 'profile') && updateprofile()) { + msg($lang['profchanged'],1); + $ACT = 'show'; + } + + //save + if($ACT == 'save') + $ACT = act_save($ACT); + + //draft deletion + if($ACT == 'draftdel') + $ACT = act_draftdel($ACT); + + //draft saving on preview + if($ACT == 'preview') + $ACT = act_draftsave($ACT); + + //edit + if(($ACT == 'edit' || $ACT == 'preview') && $INFO['editable']){ + $ACT = act_edit($ACT); + }else{ + unlock($ID); //try to unlock + } + + //handle export + if(substr($ACT,0,7) == 'export_') + $ACT = act_export($ACT); + + //display some infos + if($ACT == 'check'){ + check(); + $ACT = 'show'; + } + + //handle admin tasks + if($ACT == 'admin'){ + // retrieve admin plugin name from $_REQUEST['page'] + if ($_REQUEST['page']) { + $pluginlist = plugin_list('admin'); + if (in_array($_REQUEST['page'], $pluginlist)) { + // attempt to load the plugin + if ($plugin =& plugin_load('admin',$_REQUEST['page']) !== NULL) + $plugin->handle(); + } + } } -*/ } //call template FIXME: all needed vars available? @@ -418,4 +418,4 @@ function act_subscription($act){ return 'show'; } -//Setup VIM: ex: et ts=2 enc=utf-8 : +//Setup VIM: ex: et ts=2 enc=utf-8 : \ No newline at end of file