xref: /plugin/ireadit/action/move.php (revision 692a14509184c6b7e10ac11e9d8c2b8e6d16b1f1)
17e620549SSzymon Olewniczak<?php
27e620549SSzymon Olewniczak
37e620549SSzymon Olewniczak// must be run within Dokuwiki
47e620549SSzymon Olewniczak
57e620549SSzymon Olewniczakif(!defined('DOKU_INC')) die();
67e620549SSzymon Olewniczak
77e620549SSzymon Olewniczakclass action_plugin_ireadit_move extends DokuWiki_Action_Plugin {
87e620549SSzymon Olewniczak
97e620549SSzymon Olewniczak    /**
107e620549SSzymon Olewniczak     * Registers a callback function for a given event
117e620549SSzymon Olewniczak     *
127e620549SSzymon Olewniczak     * @param Doku_Event_Handler $controller DokuWiki's event controller object
137e620549SSzymon Olewniczak     * @return void
147e620549SSzymon Olewniczak     */
157e620549SSzymon Olewniczak    public function register(Doku_Event_Handler $controller) {
167e620549SSzymon Olewniczak        $controller->register_hook('PLUGIN_MOVE_PAGE_RENAME', 'AFTER', $this, 'handle_move', true);
177e620549SSzymon Olewniczak    }
187e620549SSzymon Olewniczak
197e620549SSzymon Olewniczak    /**
207e620549SSzymon Olewniczak     * Renames all occurances of a page ID in the database
217e620549SSzymon Olewniczak     *
227e620549SSzymon Olewniczak     * @param Doku_Event $event event object by reference
237e620549SSzymon Olewniczak     * @param bool $ispage is this a page move operation?
247e620549SSzymon Olewniczak     */
257e620549SSzymon Olewniczak    public function handle_move(Doku_Event $event, $ispage) {
267e620549SSzymon Olewniczak        $old = $event->data['src_id'];
277e620549SSzymon Olewniczak        $new = $event->data['dst_id'];
287e620549SSzymon Olewniczak
29*692a1450SSzymon Olewniczak        try {
30*692a1450SSzymon Olewniczak            /** @var \helper_plugin_ireadit_db $db_helper */
317e620549SSzymon Olewniczak            $db_helper = plugin_load('helper', 'ireadit_db');
327e620549SSzymon Olewniczak            $sqlite = $db_helper->getDB();
33*692a1450SSzymon Olewniczak        } catch (Exception $e) {
34*692a1450SSzymon Olewniczak            msg($e->getMessage(), -1);
35*692a1450SSzymon Olewniczak            return;
36*692a1450SSzymon Olewniczak        }
377e620549SSzymon Olewniczak
387e620549SSzymon Olewniczak        //move revision history
397e620549SSzymon Olewniczak        $sqlite->query('UPDATE ireadit SET page=? WHERE page=?', $new, $old);
407e620549SSzymon Olewniczak    }
417e620549SSzymon Olewniczak
427e620549SSzymon Olewniczak}
43