| 
							- <?php
 - 
 - namespace dokuwiki\Action;
 - 
 - use dokuwiki\Action\Exception\ActionAbort;
 - use dokuwiki\Extension\Event;
 - 
 - /**
 -  * Class Redirect
 -  *
 -  * Used to redirect to the current page with the last edited section as a target if found
 -  *
 -  * @package dokuwiki\Action
 -  */
 - class Redirect extends AbstractAliasAction
 - {
 -     /**
 -      * Redirect to the show action, trying to jump to the previously edited section
 -      *
 -      * @triggers ACTION_SHOW_REDIRECT
 -      * @throws ActionAbort
 -      */
 -     public function preProcess()
 -     {
 -         global $PRE;
 -         global $TEXT;
 -         global $INPUT;
 -         global $ID;
 -         global $ACT;
 - 
 -         $opts = ['id' => $ID, 'preact' => $ACT];
 -         //get section name when coming from section edit
 -         if ($INPUT->has('hid')) {
 -             // Use explicitly transmitted header id
 -             $opts['fragment'] = $INPUT->str('hid');
 -         } elseif ($PRE && preg_match('/^\s*==+([^=\n]+)/', $TEXT, $match)) {
 -             // Fallback to old mechanism
 -             $check = false; //Byref
 -             $opts['fragment'] = sectionID($match[0], $check);
 -         }
 - 
 -         // execute the redirect
 -         Event::createAndTrigger('ACTION_SHOW_REDIRECT', $opts, [$this, 'redirect']);
 - 
 -         // should never be reached
 -         throw new ActionAbort('show');
 -     }
 - 
 -     /**
 -      * Execute the redirect
 -      *
 -      * Default action for ACTION_SHOW_REDIRECT
 -      *
 -      * @param array $opts id and fragment for the redirect and the preact
 -      */
 -     public function redirect($opts)
 -     {
 -         $go = wl($opts['id'], '', true, '&');
 -         if (isset($opts['fragment'])) $go .= '#' . $opts['fragment'];
 - 
 -         //show it
 -         send_redirect($go);
 -     }
 - }
 
 
  |