xref: /plugin/approve/action/move.php (revision 1989ee26e4c10d9fe322c2a0aa4ae990f031b47b)
1b1ff32a1SSzymon Olewniczak<?php
2b1ff32a1SSzymon Olewniczak
3*1989ee26SSzymon Olewniczakuse dokuwiki\Extension\ActionPlugin;
4*1989ee26SSzymon Olewniczakuse dokuwiki\Extension\EventHandler;
5*1989ee26SSzymon Olewniczakuse dokuwiki\Extension\Event;
6b1ff32a1SSzymon Olewniczak
7*1989ee26SSzymon Olewniczakclass action_plugin_approve_move extends ActionPlugin {
8b1ff32a1SSzymon Olewniczak
9b1ff32a1SSzymon Olewniczak    /**
10*1989ee26SSzymon Olewniczak     * @inheritDoc
11b1ff32a1SSzymon Olewniczak     */
12*1989ee26SSzymon Olewniczak    public function register(EventHandler $controller) {
13b1ff32a1SSzymon Olewniczak        $controller->register_hook('PLUGIN_MOVE_PAGE_RENAME', 'AFTER', $this, 'handle_move', true);
14b1ff32a1SSzymon Olewniczak    }
15b1ff32a1SSzymon Olewniczak
16b1ff32a1SSzymon Olewniczak    /**
17*1989ee26SSzymon Olewniczak     * Renames all occurrences of a page ID in the database.
18b1ff32a1SSzymon Olewniczak     *
19*1989ee26SSzymon Olewniczak     * @param Event $event event object by reference
20b1ff32a1SSzymon Olewniczak     * @param bool $ispage is this a page move operation?
210c60a293SSzymon Olewniczak     * @return void
22b1ff32a1SSzymon Olewniczak     */
23*1989ee26SSzymon Olewniczak    public function handle_move(Event $event, $ispage) {
240c60a293SSzymon Olewniczak        /** @var \helper_plugin_approve_db $db_helper */
25*1989ee26SSzymon Olewniczak        $db = $this->loadHelper('approve_data');
260c60a293SSzymon Olewniczak
27b1ff32a1SSzymon Olewniczak        $old = $event->data['src_id'];
28b1ff32a1SSzymon Olewniczak        $new = $event->data['dst_id'];
29b1ff32a1SSzymon Olewniczak
30b1ff32a1SSzymon Olewniczak        // move revision history
31*1989ee26SSzymon Olewniczak        $db->moveRevisionHistory($old, $new);
32b1ff32a1SSzymon Olewniczak    }
33b1ff32a1SSzymon Olewniczak
34b1ff32a1SSzymon Olewniczak}
35