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