14474ed8aSSzymon Olewniczak<?php 24474ed8aSSzymon Olewniczak 3*1989ee26SSzymon Olewniczakuse dokuwiki\Extension\ActionPlugin; 4*1989ee26SSzymon Olewniczakuse dokuwiki\Extension\EventHandler; 5*1989ee26SSzymon Olewniczakuse dokuwiki\Extension\Event; 64474ed8aSSzymon Olewniczak 7*1989ee26SSzymon Olewniczakclass action_plugin_approve_migration extends ActionPlugin 84474ed8aSSzymon Olewniczak{ 94474ed8aSSzymon Olewniczak /** 104474ed8aSSzymon Olewniczak * @inheritDoc 114474ed8aSSzymon Olewniczak */ 12*1989ee26SSzymon Olewniczak public function register(EventHandler $controller) 134474ed8aSSzymon Olewniczak { 144474ed8aSSzymon Olewniczak $controller->register_hook('PLUGIN_SQLITE_DATABASE_UPGRADE', 'AFTER', $this, 'handle_migrations'); 154474ed8aSSzymon Olewniczak } 164474ed8aSSzymon Olewniczak 174474ed8aSSzymon Olewniczak /** 18*1989ee26SSzymon Olewniczak * Call our custom migrations when defined. 194474ed8aSSzymon Olewniczak * 20*1989ee26SSzymon Olewniczak * @param Event $event 21*1989ee26SSzymon Olewniczak * @param mixed $param 224474ed8aSSzymon Olewniczak */ 23*1989ee26SSzymon Olewniczak public function handle_migrations(Event $event, $param) 244474ed8aSSzymon Olewniczak { 254474ed8aSSzymon Olewniczak if ($event->data['sqlite']->getAdapter()->getDbname() !== 'approve') { 264474ed8aSSzymon Olewniczak return; 274474ed8aSSzymon Olewniczak } 284474ed8aSSzymon Olewniczak $to = $event->data['to']; 294474ed8aSSzymon Olewniczak if (is_callable([$this, "migration$to"])) { 30*1989ee26SSzymon Olewniczak $event->preventDefault(); 31*1989ee26SSzymon Olewniczak $event->result = call_user_func([$this, "migration$to"], $event->data['adapter']); 324474ed8aSSzymon Olewniczak } 334474ed8aSSzymon Olewniczak } 344474ed8aSSzymon Olewniczak} 35