xref: /plugin/notification/action/migration.php (revision 94db1f407199fbe5341fc03c87c134af7da06d1f)
1*94db1f40SSzymon Olewniczak<?php
2*94db1f40SSzymon Olewniczak/**
3*94db1f40SSzymon Olewniczak * DokuWiki Plugin bez (Action Component)
4*94db1f40SSzymon Olewniczak *
5*94db1f40SSzymon Olewniczak */
6*94db1f40SSzymon Olewniczak
7*94db1f40SSzymon Olewniczak// must be run within Dokuwiki
8*94db1f40SSzymon Olewniczak
9*94db1f40SSzymon Olewniczakif (!defined('DOKU_INC')) die();
10*94db1f40SSzymon Olewniczak
11*94db1f40SSzymon Olewniczak/**
12*94db1f40SSzymon Olewniczak * Class action_plugin_bez_migration
13*94db1f40SSzymon Olewniczak *
14*94db1f40SSzymon Olewniczak * Handle migrations that need more than just SQL
15*94db1f40SSzymon Olewniczak */
16*94db1f40SSzymon Olewniczakclass action_plugin_notification_migration extends DokuWiki_Action_Plugin
17*94db1f40SSzymon Olewniczak{
18*94db1f40SSzymon Olewniczak    /**
19*94db1f40SSzymon Olewniczak     * @inheritDoc
20*94db1f40SSzymon Olewniczak     */
21*94db1f40SSzymon Olewniczak    public function register(Doku_Event_Handler $controller)
22*94db1f40SSzymon Olewniczak    {
23*94db1f40SSzymon Olewniczak        $controller->register_hook('PLUGIN_SQLITE_DATABASE_UPGRADE', 'AFTER', $this, 'handle_migrations');
24*94db1f40SSzymon Olewniczak    }
25*94db1f40SSzymon Olewniczak
26*94db1f40SSzymon Olewniczak    /**
27*94db1f40SSzymon Olewniczak     * Call our custom migrations when defined
28*94db1f40SSzymon Olewniczak     *
29*94db1f40SSzymon Olewniczak     * @param Doku_Event $event
30*94db1f40SSzymon Olewniczak     * @param $param
31*94db1f40SSzymon Olewniczak     */
32*94db1f40SSzymon Olewniczak    public function handle_migrations(Doku_Event $event, $param)
33*94db1f40SSzymon Olewniczak    {
34*94db1f40SSzymon Olewniczak        if ($event->data['sqlite']->getAdapter()->getDbname() !== 'notification') {
35*94db1f40SSzymon Olewniczak            return;
36*94db1f40SSzymon Olewniczak        }
37*94db1f40SSzymon Olewniczak        $to = $event->data['to'];
38*94db1f40SSzymon Olewniczak
39*94db1f40SSzymon Olewniczak        if (is_callable([$this, "migration$to"])) {
40*94db1f40SSzymon Olewniczak            $event->result = call_user_func([$this, "migration$to"], $event->data);
41*94db1f40SSzymon Olewniczak        }
42*94db1f40SSzymon Olewniczak    }
43*94db1f40SSzymon Olewniczak
44*94db1f40SSzymon Olewniczak    protected function migration1($data)
45*94db1f40SSzymon Olewniczak    {
46*94db1f40SSzymon Olewniczak        /** @var DokuWiki_Auth_Plugin $auth */
47*94db1f40SSzymon Olewniczak        global $auth;
48*94db1f40SSzymon Olewniczak        /** @var \helper_plugin_notification_db $db_helper */
49*94db1f40SSzymon Olewniczak        $db_helper = plugin_load('helper', 'notification_db');
50*94db1f40SSzymon Olewniczak        $sqlite = $db_helper->getDB();
51*94db1f40SSzymon Olewniczak
52*94db1f40SSzymon Olewniczak        foreach (array_keys($auth->retrieveUsers()) as $user) {
53*94db1f40SSzymon Olewniczak            $sqlite->storeEntry('cron_check',
54*94db1f40SSzymon Olewniczak                ['user' => $user, 'timestamp' => date('c', 0)]);
55*94db1f40SSzymon Olewniczak        }
56*94db1f40SSzymon Olewniczak    }
57*94db1f40SSzymon Olewniczak}
58