xref: /plugin/ireadit/action/move.php (revision 7e620549dac07f59e6f18867bedf080fe9bee5ae)
1*7e620549SSzymon Olewniczak<?php
2*7e620549SSzymon Olewniczak
3*7e620549SSzymon Olewniczak// must be run within Dokuwiki
4*7e620549SSzymon Olewniczak
5*7e620549SSzymon Olewniczakif(!defined('DOKU_INC')) die();
6*7e620549SSzymon Olewniczak
7*7e620549SSzymon Olewniczakclass action_plugin_ireadit_move extends DokuWiki_Action_Plugin {
8*7e620549SSzymon Olewniczak
9*7e620549SSzymon Olewniczak    /**
10*7e620549SSzymon Olewniczak     * Registers a callback function for a given event
11*7e620549SSzymon Olewniczak     *
12*7e620549SSzymon Olewniczak     * @param Doku_Event_Handler $controller DokuWiki's event controller object
13*7e620549SSzymon Olewniczak     * @return void
14*7e620549SSzymon Olewniczak     */
15*7e620549SSzymon Olewniczak    public function register(Doku_Event_Handler $controller) {
16*7e620549SSzymon Olewniczak        $controller->register_hook('PLUGIN_MOVE_PAGE_RENAME', 'AFTER', $this, 'handle_move', true);
17*7e620549SSzymon Olewniczak    }
18*7e620549SSzymon Olewniczak
19*7e620549SSzymon Olewniczak    /**
20*7e620549SSzymon Olewniczak     * Renames all occurances of a page ID in the database
21*7e620549SSzymon Olewniczak     *
22*7e620549SSzymon Olewniczak     * @param Doku_Event $event event object by reference
23*7e620549SSzymon Olewniczak     * @param bool $ispage is this a page move operation?
24*7e620549SSzymon Olewniczak     * @return bool
25*7e620549SSzymon Olewniczak     */
26*7e620549SSzymon Olewniczak    public function handle_move(Doku_Event $event, $ispage) {
27*7e620549SSzymon Olewniczak        $old = $event->data['src_id'];
28*7e620549SSzymon Olewniczak        $new = $event->data['dst_id'];
29*7e620549SSzymon Olewniczak
30*7e620549SSzymon Olewniczak        $db_helper = plugin_load('helper', 'ireadit_db');
31*7e620549SSzymon Olewniczak        $sqlite = $db_helper->getDB();
32*7e620549SSzymon Olewniczak
33*7e620549SSzymon Olewniczak        //move revision history
34*7e620549SSzymon Olewniczak        $sqlite->query('UPDATE ireadit SET page=? WHERE page=?', $new, $old);
35*7e620549SSzymon Olewniczak    }
36*7e620549SSzymon Olewniczak
37*7e620549SSzymon Olewniczak}
38