Welcome to mirror list, hosted at ThFree Co, Russian Federation.

2.9.0-b1.php « Updates « core - github.com/matomo-org/matomo.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
blob: 8a0a096241de3febe2e70013e38d7b7060ca1de0 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
<?php
/**
 * Piwik - free/libre analytics platform
 *
 * @link http://piwik.org
 * @license http://www.gnu.org/licenses/gpl-3.0.html GPL v3 or later
 */

namespace Piwik\Updates;

use Piwik\Common;
use Piwik\Db;
use Piwik\Plugin\Manager;
use Piwik\Updater;
use Piwik\Updates;

class Updates_2_9_0_b1 extends Updates
{
    static function getSql()
    {
        $sql = array();

        $sql = self::updateBrowserEngine($sql);


        return $sql;
    }

    static function update()
    {
        Updater::updateDatabase(__FILE__, self::getSql());

        try {
            Manager::getInstance()->activatePlugin('TestRunner');
        } catch (\Exception $e) {

        }
    }

    private static function updateBrowserEngine($sql)
    {
        $sql[sprintf("ALTER TABLE `%s` ADD COLUMN `config_browser_engine` VARCHAR(10) NOT NULL", Common::prefixTable('log_visit'))] = 1060;

        $browserEngineMatch = array(
            'Trident' => array('IE'),
            'Gecko'   => array('NS', 'PX', 'FF', 'FB', 'CA', 'GA', 'KM', 'MO', 'SM', 'CO', 'FE', 'KP', 'KZ', 'TB'),
            'KHTML'   => array('KO'),
            'WebKit'  => array('SF', 'CH', 'OW', 'AR', 'EP', 'FL', 'WO', 'AB', 'IR', 'CS', 'FD', 'HA', 'MI', 'GE', 'DF', 'BB', 'BP', 'TI', 'CF', 'RK', 'B2', 'NF'),
            'Presto'  => array('OP'),
        );

        // Update visits, fill in now missing engine
        $engineUpdate = "''";
        $ifFragment = "IF (`config_browser_name` IN ('%s'), '%s', %s)";

        foreach ($browserEngineMatch AS $engine => $browsers) {

            $engineUpdate = sprintf($ifFragment, implode("','", $browsers), $engine, $engineUpdate);
        }

        $engineUpdate = sprintf("UPDATE %s SET `config_browser_engine` = %s", Common::prefixTable('log_visit'), $engineUpdate);
        $sql[$engineUpdate] = false;

        $archiveBlobTables = Db::get()->fetchCol("SHOW TABLES LIKE '%archive_blob%'");

        // for each blob archive table, rename UserSettings_browserType to DevicesDetection_browserEngines
        foreach ($archiveBlobTables as $table) {

            // try to rename old archives
            $sql[sprintf("UPDATE IGNORE %s SET name='DevicesDetection_browserEngines' WHERE name = 'UserSettings_browserType'", $table)] = false;
        }

        return $sql;
    }
}