[ Index ]

PHP Cross Reference of DokuWiki

title

Body

[close]

/inc/ -> actions.php (source)

   1  <?php
   2  /**
   3   * DokuWiki Actions
   4   *
   5   * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
   6   * @author     Andreas Gohr <andi@splitbrain.org>
   7   */
   8  
   9  use dokuwiki\Extension\Event;
  10  
  11  /**
  12   * All action processing starts here
  13   */
  14  function act_dispatch(){
  15      // always initialize on first dispatch (test request may dispatch mutliple times on one request)
  16      $router = \dokuwiki\ActionRouter::getInstance(true);
  17  
  18      $headers = array('Content-Type: text/html; charset=utf-8');
  19      Event::createAndTrigger('ACTION_HEADERS_SEND',$headers,'act_sendheaders');
  20  
  21      // clear internal variables
  22      unset($router);
  23      unset($headers);
  24      // make all globals available to the template
  25      extract($GLOBALS);
  26  
  27      include(template('main.php'));
  28      // output for the commands is now handled in inc/templates.php
  29      // in function tpl_content()
  30  }
  31  
  32  /**
  33   * Send the given headers using header()
  34   *
  35   * @param array $headers The headers that shall be sent
  36   */
  37  function act_sendheaders($headers) {
  38      foreach ($headers as $hdr) header($hdr);
  39  }
  40  
  41  /**
  42   * Sanitize the action command
  43   *
  44   * @author Andreas Gohr <andi@splitbrain.org>
  45   *
  46   * @param array|string $act
  47   * @return string
  48   */
  49  function act_clean($act){
  50      // check if the action was given as array key
  51      if(is_array($act)){
  52          list($act) = array_keys($act);
  53      }
  54  
  55      //remove all bad chars
  56      $act = strtolower($act);
  57      $act = preg_replace('/[^1-9a-z_]+/','',$act);
  58  
  59      if($act == 'export_html') $act = 'export_xhtml';
  60      if($act == 'export_htmlbody') $act = 'export_xhtmlbody';
  61  
  62      if($act === '') $act = 'show';
  63      return $act;
  64  }