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