xref: /plugin/notification/action/migration.php (revision 6cdebc539ff0654a6c1d30517990fc9fc0a7a4d7)
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