Files
b2b.redline.com.pl/modules/newsletterpro/upgrade/Upgrade-4.0.1.php
2025-06-24 14:14:35 +02:00

135 lines
4.8 KiB
PHP

<?php
/**
* Since 2013 Ovidiu Cimpean.
*
* Ovidiu Cimpean - Newsletter Pro © All rights reserved.
*
* DISCLAIMER
*
* Do not edit, modify or copy this file.
* If you wish to customize it, contact us at addons4prestashop@gmail.com.
*
* @author Ovidiu Cimpean <addons4prestashop@gmail.com>
* @copyright Since 2013 Ovidiu Cimpean
* @license Do not edit, modify or copy this file
*
* @version Release: 4
*/
if (!defined('_PS_VERSION_')) {
exit;
}
function upgrade_module_4_0_1($module)
{
$upgrade = $module->upgrade;
$upgrade->updateConfiguration('SHOW_CLEAR_CACHE', 1);
$upgrade->updateConfiguration('SHOW_CUSTOM_COLUMNS', []);
$upgrade->addColumn('newsletter_pro_send_step', 'date_modified', '`date_modified` TIMESTAMP NULL DEFAULT NULL', 'date');
$upgrade->addColumn('newsletter_pro_send_connection', 'script_uid', '`script_uid` VARCHAR(50) NULL DEFAULT NULL', 'state');
$upgrade->addColumn('newsletter_pro_tpl_history', 'template_name', '`template_name` VARCHAR(255) NOT NULL', 'token');
$upgrade->createTable('newsletter_pro_attachment', '
`id_newsletter_pro_attachment` INT(10) UNSIGNED NOT NULL AUTO_INCREMENT,
`template_name` VARCHAR(255) NOT NULL,
`files` LONGTEXT NOT NULL,
PRIMARY KEY (`id_newsletter_pro_attachment`),
UNIQUE INDEX `template_name` (`template_name`)
');
$upgrade->createTable('newsletter_pro_subscribers_custom_field', "
`id_newsletter_pro_subscribers_custom_field` INT(10) UNSIGNED NOT NULL AUTO_INCREMENT,
`variable_name` VARCHAR(50) NOT NULL,
`type` INT(10) NOT NULL,
`required` INT(10) NOT NULL DEFAULT '0',
PRIMARY KEY (`id_newsletter_pro_subscribers_custom_field`),
UNIQUE INDEX `variable_name` (`variable_name`)
");
$upgrade->createTable('newsletter_pro_subscribers_custom_field_lang', "
`id_newsletter_pro_subscribers_custom_field` INT(10) UNSIGNED NOT NULL AUTO_INCREMENT,
`id_lang` INT(10) UNSIGNED NOT NULL DEFAULT '0',
`value` LONGTEXT NOT NULL,
PRIMARY KEY (`id_newsletter_pro_subscribers_custom_field`, `id_lang`)
");
$upgrade->deleteColumn('newsletter_pro_tpl_history', 'template');
$upgrade->createTable('newsletter_pro_tpl_history_lang', '
`id_newsletter_pro_tpl_history` INT(10) UNSIGNED NOT NULL,
`id_lang` INT(10) UNSIGNED NOT NULL,
`template` LONGTEXT NULL,
PRIMARY KEY (`id_newsletter_pro_tpl_history`, `id_lang`)
');
$upgrade->createTable('newsletter_pro_mailchimp_token', "
`id_newsletter_pro_mailchimp_token` int(10) unsigned NOT NULL AUTO_INCREMENT,
`token` varchar(50) NOT NULL,
`creation_date` datetime NOT NULL DEFAULT '0000-00-00 00:00:00',
`modified_date` datetime NOT NULL DEFAULT '0000-00-00 00:00:00',
`expiration_date` datetime NOT NULL DEFAULT '0000-00-00 00:00:00',
PRIMARY KEY (`id_newsletter_pro_mailchimp_token`),
UNIQUE KEY `token` (`token`)
");
try {
$languages = Language::getLanguages(false);
$languages_iso = [];
foreach ($languages as $lang) {
$languages_iso[] = $lang['iso_code'];
}
if (!in_array('en', $languages_iso)) {
$languages_iso[] = 'en';
}
$newsletter_dir = $module->tpl_location.'newsletter/';
$np_index = $newsletter_dir.'index.php';
$files = NewsletterProTools::getDirectoryIterator($newsletter_dir, '/\.html$/');
foreach ($files as $file) {
$path = $file->getPathName();
$basename = pathinfo($path, PATHINFO_BASENAME);
$dir_path = pathinfo($path, PATHINFO_DIRNAME).'/';
$file_path = $dir_path.pathinfo($path, PATHINFO_FILENAME).'/';
if (!file_exists($file_path)) {
if (!mkdir($file_path, 0777)) {
throw new Exception(sprintf($module->l('Unable the create the template "%s". Please check the CHMOD permissions.'), $file_path));
}
}
if (file_exists($np_index)) {
@copy($np_index, $file_path.'index.php');
}
foreach ($languages_iso as $iso) {
$lang_path = $file_path.$iso.'/';
if (!file_exists($lang_path)) {
if (!mkdir($lang_path, 0777)) {
throw new Exception(sprintf($module->l('Unable the create the template "%s". Please check the CHMOD permissions.'), $lang_path));
}
}
if (file_exists($np_index)) {
@copy($np_index, $lang_path.'index.php');
}
$tpl_path = $lang_path.$basename;
if (!copy($path, $tpl_path)) {
throw new Exception(sprintf($module->l('Unable the create the template "%s". Please check the CHMOD permissions.'), $tpl_path));
}
}
@unlink($path);
}
} catch (Exception $e) {
$upgrade->addError($e->getMessage());
}
return $upgrade->success();
}