1<?php
2
3// must be run within Dokuwiki
4
5if(!defined('DOKU_INC')) die();
6
7class action_plugin_approve_move extends DokuWiki_Action_Plugin {
8
9    /**
10     * Registers a callback function for a given event
11     *
12     * @param Doku_Event_Handler $controller DokuWiki's event controller object
13     * @return void
14     */
15    public function register(Doku_Event_Handler $controller) {
16        $controller->register_hook('PLUGIN_MOVE_PAGE_RENAME', 'AFTER', $this, 'handle_move', true);
17    }
18
19    /**
20     * Renames all occurances of a page ID in the database
21     *
22     * @param Doku_Event $event event object by reference
23     * @param bool $ispage is this a page move operation?
24     * @return void
25     */
26    public function handle_move(Doku_Event $event, $ispage) {
27        try {
28            /** @var \helper_plugin_approve_db $db_helper */
29            $db_helper = plugin_load('helper', 'approve_db');
30            $sqlite = $db_helper->getDB();
31        } catch (Exception $e) {
32            msg($e->getMessage(), -1);
33            return;
34        }
35
36        $old = $event->data['src_id'];
37        $new = $event->data['dst_id'];
38
39        //move revision history
40        $sqlite->query('UPDATE revision SET page=? WHERE page=?', $new, $old);
41    }
42
43}
44