[ Index ]

PHP Cross Reference of DokuWiki

title

Body

[close]

/inc/Action/Exception/ -> ActionException.php (source)

   1  <?php
   2  
   3  namespace dokuwiki\Action\Exception;
   4  
   5  /**
   6   * Class ActionException
   7   *
   8   * This exception and its subclasses signal that the current action should be
   9   * aborted and a different action should be used instead. The new action can
  10   * be given as parameter in the constructor. Defaults to 'show'
  11   *
  12   * The message will NOT be shown to the enduser
  13   *
  14   * @package dokuwiki\Action\Exception
  15   */
  16  class ActionException extends \Exception {
  17  
  18      /** @var string the new action */
  19      protected $newaction;
  20  
  21      /** @var bool should the exception's message be shown to the user? */
  22      protected $displayToUser = false;
  23  
  24      /**
  25       * ActionException constructor.
  26       *
  27       * When no new action is given 'show' is assumed. For requests that originated in a POST,
  28       * a 'redirect' is used which will cause a redirect to the 'show' action.
  29       *
  30       * @param string|null $newaction the action that should be used next
  31       * @param string $message optional message, will not be shown except for some dub classes
  32       */
  33      public function __construct($newaction = null, $message = '') {
  34          global $INPUT;
  35          parent::__construct($message);
  36          if(is_null($newaction)) {
  37              if(strtolower($INPUT->server->str('REQUEST_METHOD')) == 'post') {
  38                  $newaction = 'redirect';
  39              } else {
  40                  $newaction = 'show';
  41              }
  42          }
  43  
  44          $this->newaction = $newaction;
  45      }
  46  
  47      /**
  48       * Returns the action to use next
  49       *
  50       * @return string
  51       */
  52      public function getNewAction() {
  53          return $this->newaction;
  54      }
  55  
  56      /**
  57       * Should this Exception's message be shown to the user?
  58       *
  59       * @param null|bool $set when null is given, the current setting is not changed
  60       * @return bool
  61       */
  62      public function displayToUser($set = null) {
  63          if(!is_null($set)) $this->displayToUser = $set;
  64          return $set;
  65      }
  66  }