[ 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      {
  35          global $INPUT;
  36          parent::__construct($message);
  37          if (is_null($newaction)) {
  38              if (strtolower($INPUT->server->str('REQUEST_METHOD')) == 'post') {
  39                  $newaction = 'redirect';
  40              } else {
  41                  $newaction = 'show';
  42              }
  43          }
  44  
  45          $this->newaction = $newaction;
  46      }
  47  
  48      /**
  49       * Returns the action to use next
  50       *
  51       * @return string
  52       */
  53      public function getNewAction()
  54      {
  55          return $this->newaction;
  56      }
  57  
  58      /**
  59       * Should this Exception's message be shown to the user?
  60       *
  61       * @param null|bool $set when null is given, the current setting is not changed
  62       * @return bool
  63       */
  64      public function displayToUser($set = null)
  65      {
  66          if (!is_null($set)) $this->displayToUser = $set;
  67          return $set;
  68      }
  69  }