123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566 |
- <?php
- namespace dokuwiki\Action\Exception;
- /**
- * Class ActionException
- *
- * This exception and its subclasses signal that the current action should be
- * aborted and a different action should be used instead. The new action can
- * be given as parameter in the constructor. Defaults to 'show'
- *
- * The message will NOT be shown to the enduser
- *
- * @package dokuwiki\Action\Exception
- */
- class ActionException extends \Exception {
- /** @var string the new action */
- protected $newaction;
- /** @var bool should the exception's message be shown to the user? */
- protected $displayToUser = false;
- /**
- * ActionException constructor.
- *
- * When no new action is given 'show' is assumed. For requests that originated in a POST,
- * a 'redirect' is used which will cause a redirect to the 'show' action.
- *
- * @param string|null $newaction the action that should be used next
- * @param string $message optional message, will not be shown except for some dub classes
- */
- public function __construct($newaction = null, $message = '') {
- global $INPUT;
- parent::__construct($message);
- if(is_null($newaction)) {
- if(strtolower($INPUT->server->str('REQUEST_METHOD')) == 'post') {
- $newaction = 'redirect';
- } else {
- $newaction = 'show';
- }
- }
- $this->newaction = $newaction;
- }
- /**
- * Returns the action to use next
- *
- * @return string
- */
- public function getNewAction() {
- return $this->newaction;
- }
- /**
- * Should this Exception's message be shown to the user?
- *
- * @param null|bool $set when null is given, the current setting is not changed
- * @return bool
- */
- public function displayToUser($set = null) {
- if(!is_null($set)) $this->displayToUser = $set;
- return $set;
- }
- }
|