xref: /template/strap/action/linkmove.php (revision 007225e5fb2d3f64edaccd3bd447ca26effb9d68)
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