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