xref: /template/strap/action/linkmove.php (revision ef295d81c8f9cce3d7e7673ca8909fdd45b2e219)
1007225e5Sgerardnico<?php
2007225e5Sgerardnico
3007225e5Sgerardnicouse ComboStrap\LinkUtility;
4007225e5Sgerardnicouse ComboStrap\PluginUtility;
5007225e5Sgerardnico
6007225e5Sgerardnicoif (!defined('DOKU_INC')) die();
7007225e5Sgerardnicorequire_once(__DIR__ . '/../class/PluginUtility.php');
8007225e5Sgerardnicorequire_once(__DIR__ . '/../class/LinkUtility.php');
9007225e5Sgerardnico
10007225e5Sgerardnico/**
11007225e5Sgerardnico * Class action_plugin_combo_move
12007225e5Sgerardnico * Handle the move of a page in order to update the link
13007225e5Sgerardnico */
14007225e5Sgerardnicoclass action_plugin_combo_linkmove extends DokuWiki_Action_Plugin
15007225e5Sgerardnico{
16007225e5Sgerardnico
17007225e5Sgerardnico    /**
18007225e5Sgerardnico     * As explained https://www.dokuwiki.org/plugin:move
19007225e5Sgerardnico     * @param Doku_Event_Handler $controller
20007225e5Sgerardnico     */
21007225e5Sgerardnico    function register(Doku_Event_Handler $controller)
22007225e5Sgerardnico    {
23007225e5Sgerardnico        $controller->register_hook('PLUGIN_MOVE_HANDLERS_REGISTER', 'BEFORE', $this, 'handle_move', array());
24007225e5Sgerardnico    }
25007225e5Sgerardnico
26007225e5Sgerardnico    /**
27007225e5Sgerardnico     * Handle the move of a page
28007225e5Sgerardnico     * @param Doku_Event $event
29007225e5Sgerardnico     * @param $params
30007225e5Sgerardnico     */
31007225e5Sgerardnico    function handle_move(Doku_Event $event, $params)
32007225e5Sgerardnico    {
33007225e5Sgerardnico        /**
34*ef295d81Sgerardnico         * The handlers is the name of the component (ie refers to the {@link syntax_plugin_combo_link} handler)
35*ef295d81Sgerardnico         * and 'rewrite_combo' to the below method
36007225e5Sgerardnico         */
37*ef295d81Sgerardnico        $event->data['handlers'][syntax_plugin_combo_link::COMPONENT] = array($this, 'rewrite_combo');
38007225e5Sgerardnico    }
39007225e5Sgerardnico
40007225e5Sgerardnico    /**
41007225e5Sgerardnico     *
42007225e5Sgerardnico     * @param $match
43007225e5Sgerardnico     * @param $state
44007225e5Sgerardnico     * @param $pos
45007225e5Sgerardnico     * @param $plugin
46007225e5Sgerardnico     * @param helper_plugin_move_handler $handler
47007225e5Sgerardnico     */
48007225e5Sgerardnico    public function rewrite_combo($match, $state, $pos, $plugin, helper_plugin_move_handler $handler)
49007225e5Sgerardnico    {
50007225e5Sgerardnico        /**
51007225e5Sgerardnico         * We call the original move method
52007225e5Sgerardnico         * that supports Link rewriting
53007225e5Sgerardnico         */
54007225e5Sgerardnico        $handler->internallink($match, $state, $pos);
55007225e5Sgerardnico
56007225e5Sgerardnico    }
57007225e5Sgerardnico
58007225e5Sgerardnico
59007225e5Sgerardnico}
60