194db1f40SSzymon Olewniczak<?php 294db1f40SSzymon Olewniczak 3*6cdebc53SAnna Dabrowskause dokuwiki\Extension\ActionPlugin; 4*6cdebc53SAnna Dabrowskause dokuwiki\Extension\EventHandler; 5*6cdebc53SAnna Dabrowskause dokuwiki\Extension\Event; 694db1f40SSzymon Olewniczak 794db1f40SSzymon Olewniczak/** 8*6cdebc53SAnna Dabrowska * Class action_plugin_notification_migration 994db1f40SSzymon Olewniczak * 1094db1f40SSzymon Olewniczak * Handle migrations that need more than just SQL 1194db1f40SSzymon Olewniczak */ 12*6cdebc53SAnna Dabrowskaclass action_plugin_notification_migration extends ActionPlugin 1394db1f40SSzymon Olewniczak{ 1494db1f40SSzymon Olewniczak /** 1594db1f40SSzymon Olewniczak * @inheritDoc 1694db1f40SSzymon Olewniczak */ 17*6cdebc53SAnna Dabrowska public function register(EventHandler $controller) 1894db1f40SSzymon Olewniczak { 19*6cdebc53SAnna Dabrowska $controller->register_hook('PLUGIN_SQLITE_DATABASE_UPGRADE', 'AFTER', $this, 'handleMigrations'); 2094db1f40SSzymon Olewniczak } 2194db1f40SSzymon Olewniczak 2294db1f40SSzymon Olewniczak /** 2394db1f40SSzymon Olewniczak * Call our custom migrations when defined 2494db1f40SSzymon Olewniczak * 25*6cdebc53SAnna Dabrowska * @param Event $event 2694db1f40SSzymon Olewniczak * @param $param 2794db1f40SSzymon Olewniczak */ 28*6cdebc53SAnna Dabrowska public function handleMigrations(Event $event, $param) 2994db1f40SSzymon Olewniczak { 3094db1f40SSzymon Olewniczak if ($event->data['sqlite']->getAdapter()->getDbname() !== 'notification') { 3194db1f40SSzymon Olewniczak return; 3294db1f40SSzymon Olewniczak } 3394db1f40SSzymon Olewniczak $to = $event->data['to']; 3494db1f40SSzymon Olewniczak 3594db1f40SSzymon Olewniczak if (is_callable([$this, "migration$to"])) { 3694db1f40SSzymon Olewniczak $event->result = call_user_func([$this, "migration$to"], $event->data); 3794db1f40SSzymon Olewniczak } 3894db1f40SSzymon Olewniczak } 3994db1f40SSzymon Olewniczak 4094db1f40SSzymon Olewniczak protected function migration1($data) 4194db1f40SSzymon Olewniczak { 4294db1f40SSzymon Olewniczak /** @var DokuWiki_Auth_Plugin $auth */ 4394db1f40SSzymon Olewniczak global $auth; 4494db1f40SSzymon Olewniczak /** @var \helper_plugin_notification_db $db_helper */ 4594db1f40SSzymon Olewniczak $db_helper = plugin_load('helper', 'notification_db'); 4694db1f40SSzymon Olewniczak $sqlite = $db_helper->getDB(); 4794db1f40SSzymon Olewniczak 4894db1f40SSzymon Olewniczak foreach (array_keys($auth->retrieveUsers()) as $user) { 49*6cdebc53SAnna Dabrowska $sqlite->storeEntry( 50*6cdebc53SAnna Dabrowska 'cron_check', 51*6cdebc53SAnna Dabrowska ['user' => $user, 'timestamp' => date('c', 0)] 52*6cdebc53SAnna Dabrowska ); 5394db1f40SSzymon Olewniczak } 5494db1f40SSzymon Olewniczak } 5594db1f40SSzymon Olewniczak} 56