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