Files
interblue.pl/modules/cookiesplus/upgrade/upgrade-1.3.0.php

135 lines
6.9 KiB
PHP

<?php
/**
* ISC License
*
* Copyright (c) 2024 idnovate.com
* idnovate is a Registered Trademark & Property of idnovate.com, innovación y desarrollo SCP
*
* Permission to use, copy, modify, and/or distribute this software for any
* purpose with or without fee is hereby granted, provided that the above
* copyright notice and this permission notice appear in all copies.
*
* THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH
* REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
* AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,
* INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
* LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
* OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
* PERFORMANCE OF THIS SOFTWARE.
*
* @author idnovate
* @copyright 2024 idnovate
* @license https://www.isc.org/licenses/ https://opensource.org/licenses/ISC ISC License
*/
if (!defined('_PS_VERSION_')) {
exit;
}
function upgrade_module_1_3_0()
{
include dirname(__FILE__) . '/../sql/install.php';
$cookiesDefault = [];
$cookiesDefault['cookie'][CookiesPlusFinality::NECESSARY_COOKIE] = CookiesPlusFinality::getDefaultValues(CookiesPlusFinality::NECESSARY_COOKIE);
$cookiesDefault['cookie'][CookiesPlusFinality::PREFERENCE_COOKIE] = CookiesPlusFinality::getDefaultValues(CookiesPlusFinality::PREFERENCE_COOKIE);
$cookiesDefault['cookie'][CookiesPlusFinality::STATISTIC_COOKIE] = CookiesPlusFinality::getDefaultValues(CookiesPlusFinality::STATISTIC_COOKIE);
$cookiesDefault['cookie'][CookiesPlusFinality::MARKETING_COOKIE] = CookiesPlusFinality::getDefaultValues(CookiesPlusFinality::MARKETING_COOKIE);
// $cookiesDefault['cookie'][CookiesPlusFinality::UNCLASSIFIED_COOKIE] = CookiesPlusFinality::getDefaultValues(CookiesPlusFinality::UNCLASSIFIED_COOKIE);
// $cookiesDefault['cookie'][CookiesPlusFinality::PERFORMANCE_COOKIE] = CookiesPlusFinality::getDefaultValues(CookiesPlusFinality::PERFORMANCE_COOKIE);
$shops = Shop::getShops(false, null, true);
$languages = Language::getLanguages(false);
foreach ($shops as $shop) {
foreach ($cookiesDefault['cookie'] as $cookieDefault) {
$cookiesPlusFinality = new CookiesPlusFinality();
$cookiesPlusFinality->id_shop = $shop;
$cookiesPlusFinality->technical = (isset($cookieDefault['technical']) && $cookieDefault['technical']) ? $cookieDefault['technical'] : 0;
$cookiesPlusFinality->active = (isset($cookieDefault['active']) && $cookieDefault['active']) ? $cookieDefault['active'] : 0;
if (isset($cookieDefault['modules']) && $cookieDefault['modules']) {
$modulesIds = [];
$modules = Module::getModulesOnDisk(true);
foreach ($modules as $module) {
if ($module->installed && in_array($module->name, $cookieDefault['modules'])) {
$modulesIds[] = $module->id;
}
}
$cookiesPlusFinality->modules = json_encode($modulesIds);
// If store has any of the modules, enable this finality
if ($modulesIds) {
$cookiesPlusFinality->active = 1;
}
}
foreach ($languages as $lang) {
if (version_compare(_PS_VERSION_, '1.5', '<')) {
$languageCode = $lang['iso_code'];
} else {
$languageCode = strtok($lang['language_code'], '-');
}
$cookiesPlusFinality->name[$lang['id_lang']] = (isset($cookieDefault['name'][$languageCode]) && $cookieDefault['name'][$languageCode]) ? $cookieDefault['name'][$languageCode] : $cookieDefault['name']['en'];
$cookiesPlusFinality->description[$lang['id_lang']] = (isset($cookieDefault['description'][$languageCode]) && $cookieDefault['description'][$languageCode]) ? $cookieDefault['description'][$languageCode] : $cookieDefault['description']['en'];
}
$cookiesPlusFinality->save();
if (isset($cookieDefault['cookies']) && $cookieDefault['cookies']) {
foreach ($cookieDefault['cookies'] as $cookie) {
$cookiesPlusCookie = new CookiesPlusCookie();
$cookiesPlusCookie->id_shop = $shop;
$cookiesPlusCookie->id_cookiesplus_finality = $cookiesPlusFinality->id;
$cookiesPlusCookie->active = $cookie['active'];
$cookiesPlusCookie->name = $cookie['name'];
$cookiesPlusCookie->provider = isset($cookie['provider']) ? $cookie['provider'] : '';
$cookiesPlusCookie->provider_url = isset($cookie['provider_url']) ? $cookie['provider_url'] : '';
// If store has any of the modules, enable this finality
if (isset($cookie['modules']) && $cookie['modules']) {
$modules = Module::getModulesOnDisk(true);
foreach ($modules as $module) {
if ($module->installed && in_array($module->name, $cookie['modules'])) {
$cookiesPlusCookie->active = 1;
$cookiesPlusFinality = new CookiesPlusFinality((int) $cookiesPlusFinality->id);
$cookiesPlusFinality->active = 1;
$cookiesPlusFinality->save();
continue;
}
}
}
foreach ($languages as $lang) {
if (version_compare(_PS_VERSION_, '1.5', '<')) {
$languageCode = $lang['iso_code'];
} else {
$languageCode = strtok($lang['language_code'], '-');
}
if (isset($cookie['purpose']['en'])) {
$cookiesPlusCookie->purpose[$lang['id_lang']] = (isset($cookie['purpose'][$languageCode]) && $cookie['purpose'][$languageCode]) ? $cookie['purpose'][$languageCode] : $cookie['purpose']['en'];
}
if (isset($cookie['expiry']['en'])) {
$cookiesPlusCookie->expiry[$lang['id_lang']] = (isset($cookie['expiry'][$languageCode]) && $cookie['expiry'][$languageCode]) ? $cookie['expiry'][$languageCode] : $cookie['expiry']['en'];
}
}
$cookiesPlusCookie->save();
}
}
}
}
if (version_compare(_PS_VERSION_, '1.6', '<')) {
Configuration::updateValue('C_P_BACKGROUND_COLOR', '#FFFFFF');
Configuration::updateValue('C_P_FONT_COLOR', '#000000');
}
Configuration::updateValue('C_P_BOTS', Configuration::get('C_P_BOTS') . '|Cookiebot|Lighthouse');
return true;
}