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