1*007225e5Sgerardnico<?php 2*007225e5Sgerardnico 3*007225e5Sgerardnicouse ComboStrap\LinkUtility; 4*007225e5Sgerardnicouse ComboStrap\PluginUtility; 5*007225e5Sgerardnico 6*007225e5Sgerardnicoif (!defined('DOKU_INC')) die(); 7*007225e5Sgerardnicorequire_once(__DIR__ . '/../class/PluginUtility.php'); 8*007225e5Sgerardnicorequire_once(__DIR__ . '/../class/LinkUtility.php'); 9*007225e5Sgerardnico 10*007225e5Sgerardnico/** 11*007225e5Sgerardnico * Class action_plugin_combo_move 12*007225e5Sgerardnico * Handle the move of a page in order to update the link 13*007225e5Sgerardnico */ 14*007225e5Sgerardnicoclass action_plugin_combo_linkmove extends DokuWiki_Action_Plugin 15*007225e5Sgerardnico{ 16*007225e5Sgerardnico 17*007225e5Sgerardnico /** 18*007225e5Sgerardnico * As explained https://www.dokuwiki.org/plugin:move 19*007225e5Sgerardnico * @param Doku_Event_Handler $controller 20*007225e5Sgerardnico */ 21*007225e5Sgerardnico function register(Doku_Event_Handler $controller) 22*007225e5Sgerardnico { 23*007225e5Sgerardnico $controller->register_hook('PLUGIN_MOVE_HANDLERS_REGISTER', 'BEFORE', $this, 'handle_move', array()); 24*007225e5Sgerardnico } 25*007225e5Sgerardnico 26*007225e5Sgerardnico /** 27*007225e5Sgerardnico * Handle the move of a page 28*007225e5Sgerardnico * @param Doku_Event $event 29*007225e5Sgerardnico * @param $params 30*007225e5Sgerardnico */ 31*007225e5Sgerardnico function handle_move(Doku_Event $event, $params) 32*007225e5Sgerardnico { 33*007225e5Sgerardnico /** 34*007225e5Sgerardnico * 'combo_link' refers to the {@link syntax_plugin_combo_link} handler 35*007225e5Sgerardnico * 'rewrite_combo' to the below method 36*007225e5Sgerardnico */ 37*007225e5Sgerardnico $event->data['handlers']['combo_link'] = array($this, 'rewrite_combo'); 38*007225e5Sgerardnico } 39*007225e5Sgerardnico 40*007225e5Sgerardnico /** 41*007225e5Sgerardnico * 42*007225e5Sgerardnico * @param $match 43*007225e5Sgerardnico * @param $state 44*007225e5Sgerardnico * @param $pos 45*007225e5Sgerardnico * @param $plugin 46*007225e5Sgerardnico * @param helper_plugin_move_handler $handler 47*007225e5Sgerardnico * @return bool 48*007225e5Sgerardnico */ 49*007225e5Sgerardnico public function rewrite_combo($match, $state, $pos, $plugin, helper_plugin_move_handler $handler) 50*007225e5Sgerardnico { 51*007225e5Sgerardnico /** 52*007225e5Sgerardnico * We call the original move method 53*007225e5Sgerardnico * that supports Link rewriting 54*007225e5Sgerardnico */ 55*007225e5Sgerardnico $handler->internallink($match, $state, $pos); 56*007225e5Sgerardnico return ''; 57*007225e5Sgerardnico 58*007225e5Sgerardnico } 59*007225e5Sgerardnico 60*007225e5Sgerardnico 61*007225e5Sgerardnico} 62