xref: /plugin/siteexport/action/move.php (revision f4998c133c629e1c2e76b096e85068b555bd9a5f)
1*f4998c13SMichael Hamann<?php
2*f4998c13SMichael Hamann/**
3*f4998c13SMichael Hamann * Site Export Plugin page move support for the move plugin
4*f4998c13SMichael Hamann *
5*f4998c13SMichael Hamann * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
6*f4998c13SMichael Hamann * @author     Michael Hamann <michael@content-space.de>
7*f4998c13SMichael Hamann */
8*f4998c13SMichael Hamann
9*f4998c13SMichael Hamann// must be run within Dokuwiki
10*f4998c13SMichael Hamannif (!defined('DOKU_INC')) die('Not inside DokuWiki');
11*f4998c13SMichael Hamann
12*f4998c13SMichael Hamannclass action_plugin_siteexport_move extends DokuWiki_Action_Plugin {
13*f4998c13SMichael Hamann    /**
14*f4998c13SMichael Hamann     * Register Plugin in DW
15*f4998c13SMichael Hamann     **/
16*f4998c13SMichael Hamann    public function register(Doku_Event_Handler $controller) {
17*f4998c13SMichael Hamann        $controller->register_hook('PLUGIN_MOVE_HANDLERS_REGISTER', 'BEFORE', $this, 'register_move_handler');
18*f4998c13SMichael Hamann    }
19*f4998c13SMichael Hamann
20*f4998c13SMichael Hamann    /**
21*f4998c13SMichael Hamann     * Register the handler for the move plugin.
22*f4998c13SMichael Hamann     */
23*f4998c13SMichael Hamann    public function register_move_handler(Doku_Event $event) {
24*f4998c13SMichael Hamann        $event->data['handlers']['siteexport_toc'] = array($this, 'move_handler');
25*f4998c13SMichael Hamann    }
26*f4998c13SMichael Hamann
27*f4998c13SMichael Hamann    /**
28*f4998c13SMichael Hamann     * Handle rewrites for the move plugin. Currently only the link/toc syntax is handled.
29*f4998c13SMichael Hamann     */
30*f4998c13SMichael Hamann    public function move_handler($match, $state, $pos, $pluginname, $handler) {
31*f4998c13SMichael Hamann        if ($state === DOKU_LEXER_SPECIAL) {
32*f4998c13SMichael Hamann            $handler->internallink($match, $state, $pos);
33*f4998c13SMichael Hamann            return '';
34*f4998c13SMichael Hamann        } else {
35*f4998c13SMichael Hamann            return $match;
36*f4998c13SMichael Hamann        }
37*f4998c13SMichael Hamann    }
38*f4998c13SMichael Hamann}
39