Piwik\Updates\Updates_3_0_0_b1::getPluginSettingsMigrations PHP Метод

getPluginSettingsMigrations() приватный Метод

private getPluginSettingsMigrations ( Migration[] $queries ) : Migration[]
$queries Piwik\Updater\Migration[]
Результат Piwik\Updater\Migration[]
    private function getPluginSettingsMigrations($queries)
    {
        $queries[] = $this->migration->db->createTable($this->pluginSettingsTable, array('plugin_name' => 'VARCHAR(60) NOT NULL', 'setting_name' => 'VARCHAR(255) NOT NULL', 'setting_value' => 'LONGTEXT NOT NULL', 'user_login' => "VARCHAR(100) NOT NULL DEFAULT ''"));
        $queries[] = $this->migration->db->addIndex($this->pluginSettingsTable, array('plugin_name', 'user_login'));
        $optionTable = Common::prefixTable('option');
        $query = 'SELECT `option_name`, `option_value` FROM `' . $optionTable . '` WHERE `option_name` LIKE "Plugin_%_Settings"';
        $options = Db::get()->fetchAll($query);
        foreach ($options as $option) {
            $name = $option['option_name'];
            $pluginName = str_replace(array('Plugin_', '_Settings'), '', $name);
            $values = @unserialize($option['option_value']);
            if (empty($values)) {
                continue;
            }
            foreach ($values as $settingName => $settingValue) {
                if (!is_array($settingValue)) {
                    $settingValue = array($settingValue);
                }
                foreach ($settingValue as $val) {
                    $queries[] = $this->createPluginSettingQuery($pluginName, $settingName, $val);
                }
            }
        }
        $queries[] = $this->migration->db->sql(sprintf('DELETE FROM `%s` WHERE `option_name` like "Plugin_%%_Settings"', $optionTable));
        return $queries;
    }