1141 lines
45 KiB
PHP
1141 lines
45 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
|
|
*/
|
|
|
|
class NewsletterProAjaxController
|
|
{
|
|
public $context;
|
|
|
|
public $controller;
|
|
|
|
public $module;
|
|
|
|
public $token;
|
|
|
|
public function __construct()
|
|
{
|
|
$this->context = Context::getContext();
|
|
$this->controller = &$this->context->controller;
|
|
$this->module = NewsletterPro::getInstance();
|
|
|
|
// the token is only for the admin section
|
|
if (isset($this->context->employee)) {
|
|
$this->token = Tools::getAdminTokenLite('AdminNewsletterPro');
|
|
}
|
|
|
|
@ini_set('max_execution_time', '2880');
|
|
@ob_clean();
|
|
@ob_end_clean();
|
|
}
|
|
|
|
public static function isXHR()
|
|
{
|
|
return isset($_SERVER['HTTP_X_REQUESTED_WITH']) && ('XMLHttpRequest' == $_SERVER['HTTP_X_REQUESTED_WITH']);
|
|
}
|
|
|
|
public static function disableForceCompile($smarty)
|
|
{
|
|
$smarty->force_compile = false;
|
|
$smarty->compile_check = false;
|
|
}
|
|
|
|
public static function enableForceCompile($smarty)
|
|
{
|
|
$smarty->force_compile = true;
|
|
$smarty->compile_check = true;
|
|
}
|
|
|
|
public function process($action)
|
|
{
|
|
if (Tools::getValue('token') != $this->token) {
|
|
$this->display('Invalid Token!');
|
|
}
|
|
|
|
switch ($action) {
|
|
case 'getOurModules':
|
|
$this->display($this->module->getOurModules());
|
|
break;
|
|
case 'getCustomers':
|
|
$this->display($this->module->getCustomers());
|
|
break;
|
|
case 'updateCustomer':
|
|
$this->display($this->module->updateCustomer((int) Tools::getValue('id')));
|
|
break;
|
|
case 'deleteCustomer':
|
|
$this->display($this->module->deleteCustomer((int) Tools::getValue('id')));
|
|
break;
|
|
|
|
case 'deleteForwardToEmail':
|
|
$this->display($this->module->deleteForwardToEmail(Tools::getValue('email')));
|
|
break;
|
|
|
|
case 'deleteForwardFromEmail':
|
|
$this->display($this->module->deleteForwardFromEmail(Tools::getValue('from')));
|
|
break;
|
|
|
|
case 'clearForwarders':
|
|
$this->display($this->module->clearForwarders());
|
|
break;
|
|
|
|
case 'searchForwarder':
|
|
$this->display($this->module->searchForwarder(Tools::getValue('value')));
|
|
break;
|
|
|
|
case 'searchCustomer':
|
|
$this->display($this->module->searchCustomer(Tools::getValue('value')));
|
|
break;
|
|
|
|
case 'filterCustomer':
|
|
$this->display($this->module->filterCustomer($_POST), true);
|
|
break;
|
|
case 'getVisitors':
|
|
$this->display($this->module->getVisitors());
|
|
break;
|
|
case 'updateVisitor':
|
|
$this->display($this->module->updateVisitor((int) Tools::getValue('id')));
|
|
break;
|
|
case 'deleteVisitor':
|
|
$this->display($this->module->deleteVisitor((int) Tools::getValue('id')));
|
|
break;
|
|
case 'searchVisitor':
|
|
$this->display($this->module->searchVisitor(Tools::getValue('value')));
|
|
break;
|
|
case 'filterVisitor':
|
|
$this->display($this->module->filterVisitor($_POST));
|
|
break;
|
|
case 'getVisitorsNP':
|
|
$this->display($this->module->getVisitorsNP(), true);
|
|
break;
|
|
case 'updateVisitorNP':
|
|
$this->display($this->module->updateVisitorNP((int) Tools::getValue('id')));
|
|
break;
|
|
case 'deleteVisitorNP':
|
|
$this->display($this->module->deleteVisitorNP((int) Tools::getValue('id')));
|
|
break;
|
|
case 'searchVisitorNP':
|
|
$conditions = Tools::getValue('conditions');
|
|
$this->display($this->module->searchVisitorNP(Tools::getValue('value'), $conditions), true);
|
|
break;
|
|
case 'filterVisitorNP':
|
|
$this->display($this->module->filterVisitorNP($_POST));
|
|
break;
|
|
case 'getAdded':
|
|
$this->display($this->module->getAdded());
|
|
break;
|
|
|
|
case 'deleteProductTemplate':
|
|
$path = Tools::getValue('path');
|
|
$this->display($this->module->deleteProductTemplate($path));
|
|
break;
|
|
|
|
case 'updateAdded':
|
|
$this->display($this->module->updateAdded((int) Tools::getValue('id')));
|
|
break;
|
|
case 'deleteAdded':
|
|
$this->display($this->module->deleteAdded((int) Tools::getValue('id')));
|
|
break;
|
|
case 'searchAdded':
|
|
$this->display($this->module->searchAdded(Tools::getValue('value')));
|
|
break;
|
|
case 'filterAdded':
|
|
$this->display($this->module->filterAdded($_POST));
|
|
break;
|
|
case 'createAdded':
|
|
$this->display($this->module->createAdded($_POST));
|
|
break;
|
|
case 'emptyAddedEmails':
|
|
$this->display($this->module->emptyAddedEmails());
|
|
break;
|
|
|
|
case 'getProductTemplates':
|
|
$this->display($this->module->getProductTemplates());
|
|
break;
|
|
|
|
case 'deleteImage':
|
|
$this->display($this->module->deleteImage($_POST));
|
|
break;
|
|
case 'updateModule':
|
|
$this->display($this->module->updateModule());
|
|
break;
|
|
case 'clearUpdateWarnings':
|
|
$this->display($this->module->clearUpdateWarnings());
|
|
break;
|
|
|
|
case 'getHistoryExclusion':
|
|
$this->display($this->module->getHistoryExclusion());
|
|
break;
|
|
|
|
case 'addFilterSelection':
|
|
$name = Tools::getValue('name');
|
|
$filters = Tools::getValue('filters');
|
|
$this->display($this->module->addFilterSelection($name, $filters));
|
|
break;
|
|
|
|
case 'deleteFilterSelection':
|
|
$id = Tools::getValue('id');
|
|
$this->display($this->module->deleteFilterSelection($id));
|
|
break;
|
|
|
|
case 'startSendNewslettersWithLog':
|
|
$emails = Tools::getValue('emails');
|
|
$limit = Tools::isSubmit('limit') ? (int) Tools::getValue('limit') : 100;
|
|
$this->display($this->module->startSendNewslettersWithLog($emails, $limit));
|
|
break;
|
|
|
|
case 'openLogFIle':
|
|
$filename = Tools::getValue('filename');
|
|
$this->display($this->module->openLogFIle($filename));
|
|
break;
|
|
|
|
case 'jsUpdateConfiguration':
|
|
$name = Tools::getValue('name');
|
|
$value = Tools::getValue('value');
|
|
$this->display($this->module->jsUpdateConfiguration($name, $value));
|
|
break;
|
|
|
|
case 'getExportOptions':
|
|
$value = Tools::getValue('value');
|
|
$this->display($this->module->getExportOptions($value));
|
|
break;
|
|
|
|
case 'getFilterSelectionById':
|
|
$id = (int) Tools::getValue('id');
|
|
$this->display($this->module->getFilterSelectionById($id));
|
|
break;
|
|
|
|
case 'ajaxGetAttachments':
|
|
$template_name = Tools::getValue('template_name');
|
|
$this->display(NewsletterProAttachment::ajaxGetAttachments($template_name));
|
|
break;
|
|
|
|
case 'ajaxDeleteAttachment':
|
|
$id = Tools::getValue('id');
|
|
$filename = Tools::getValue('filename');
|
|
$this->display(NewsletterProAttachment::ajaxDeleteAttachment($id, $filename));
|
|
break;
|
|
|
|
case 'ajaxTemplateAttachFile':
|
|
$template_name = Tools::getValue('template_name');
|
|
$this->display(NewsletterProAttachment::ajaxTemplateAttachFile($_FILES['template_attachment'], $template_name));
|
|
break;
|
|
|
|
case 'ajaxGetConnections':
|
|
$this->display(NewsletterProSendConnection::ajaxGetConnections());
|
|
break;
|
|
|
|
case 'ajaxAddConnection':
|
|
$id_smtp = (int) Tools::getValue('id_smtp');
|
|
$this->display(NewsletterProSendConnection::ajaxAddConnection($id_smtp));
|
|
break;
|
|
|
|
case 'ajaxDeleteConnection':
|
|
$id = (int) Tools::getValue('id');
|
|
$this->display(NewsletterProSendConnection::ajaxDeleteConnection($id));
|
|
break;
|
|
|
|
case 'updateTopShortcuts':
|
|
$name = Tools::getValue('name');
|
|
$value = (int) Tools::getValue('value');
|
|
$this->display($this->module->updateTopShortcuts($name, $value));
|
|
break;
|
|
|
|
case 'addHistoryEmailsToExclusion':
|
|
$data = Tools::getValue('data');
|
|
$remaining_email = Tools::getValue('remainingEmails');
|
|
$sent_email = Tools::getValue('sentEmails');
|
|
$this->display($this->module->addHistoryEmailsToExclusion($data, (int) $remaining_email, (int) $sent_email));
|
|
break;
|
|
|
|
case 'getTemplateContent':
|
|
$data = Tools::getValue('data');
|
|
$header = (Tools::isSubmit('header') ? (bool) Tools::getValue('header') : true);
|
|
$readcontent = (Tools::isSubmit('readcontent') ? (bool) Tools::getValue('readcontent') : true);
|
|
$this->display($this->module->getTemplateContent($data, $header, $readcontent));
|
|
break;
|
|
|
|
case 'getProductTemplateContent':
|
|
$data = Tools::getValue('data');
|
|
$readcontent = (Tools::isSubmit('readcontent') ? (bool) Tools::getValue('readcontent') : true);
|
|
$this->display($this->module->getProductTemplateContent($data, $readcontent));
|
|
break;
|
|
|
|
case 'saveProductNumberPerRow':
|
|
$this->display($this->module->saveProductNumberPerRow((int) Tools::getValue('number')));
|
|
break;
|
|
|
|
case 'changeProductImageSize':
|
|
$this->display($this->module->changeProductImageSize(Tools::getValue('value')));
|
|
break;
|
|
|
|
case 'changeProductCurrency':
|
|
$this->display($this->module->changeProductCurrency((int) Tools::getValue('value')));
|
|
break;
|
|
|
|
case 'changeProductLanguage':
|
|
$this->display($this->module->changeProductLanguage((int) Tools::getValue('value')));
|
|
break;
|
|
case 'getProductsById':
|
|
$this->display($this->module->getProductsById(Tools::getValue('ids')));
|
|
break;
|
|
case 'getImagesOfProducts':
|
|
$this->display($this->module->getImagesOfProducts(Tools::getValue('ids'), (string) Tools::getValue('image_type')));
|
|
break;
|
|
case 'getImageOfProduct':
|
|
$this->display($this->module->getImageOfProduct(Tools::getValue('id'), (string) Tools::getValue('image_type')));
|
|
break;
|
|
case 'continueTaskAjax':
|
|
$this->display($this->module->continueTaskAjax((int) Tools::getValue('id')));
|
|
break;
|
|
case 'pauseTask':
|
|
$this->display($this->module->pauseTask((int) Tools::getValue('id')));
|
|
break;
|
|
case 'getCategoryTree':
|
|
$this->display($this->module->getCategoryTree());
|
|
break;
|
|
|
|
case 'syncNewsletters':
|
|
$id = ((int) Tools::getValue('id') ? (int) Tools::getValue('id') : null);
|
|
$limit = (int) Tools::getValue('limit');
|
|
$get_last_id = (bool) Tools::getValue('getLastId');
|
|
$this->display($this->module->syncNewsletters($id, $limit, $get_last_id));
|
|
break;
|
|
|
|
case 'startSendNewsletters':
|
|
$trigger = (int) Tools::getValue('trigger');
|
|
$this->display($this->module->startSendNewsletters($trigger));
|
|
break;
|
|
|
|
case 'connectionAvailable':
|
|
$this->display($this->module->connectionAvailable());
|
|
break;
|
|
|
|
case 'stopSendNewsletters':
|
|
$this->display($this->module->stopSendNewsletters());
|
|
break;
|
|
|
|
case 'pauseSendNewsletters':
|
|
$this->display($this->module->pauseSendNewsletters());
|
|
break;
|
|
|
|
case 'continueSendNewsletters':
|
|
$trigger = (int) Tools::getValue('trigger');
|
|
$this->display($this->module->continueSendNewsletters($trigger));
|
|
break;
|
|
|
|
case 'checkIfCampaignIsRunning':
|
|
$this->display($this->module->checkIfCampaignIsRunning());
|
|
break;
|
|
case 'showNewsletterHelp':
|
|
$this->display($this->module->showNewsletterHelp());
|
|
break;
|
|
case 'showProductHelp':
|
|
$this->display($this->module->showProductHelp());
|
|
break;
|
|
case 'forwardingFeatureActive':
|
|
$this->display($this->module->forwardingFeatureActive(Tools::getValue('value')));
|
|
break;
|
|
case 'chimpSyncUnsubscribed':
|
|
$this->display($this->module->chimpSyncUnsubscribed(Tools::getValue('value')));
|
|
break;
|
|
case 'sendEmbededImagesActive':
|
|
$this->display($this->module->sendEmbededImagesActive(Tools::getValue('value')));
|
|
break;
|
|
case 'sendEmailMimeText':
|
|
$this->display($this->module->sendEmailMimeText(Tools::getValue('value')));
|
|
break;
|
|
case 'subscribeByCategory':
|
|
$this->display($this->module->subscribeByCategory(Tools::getValue('value')));
|
|
break;
|
|
case 'subscribeByCListOfInterest':
|
|
$this->display($this->module->subscribeByCListOfInterest(Tools::getValue('value')));
|
|
break;
|
|
case 'subscribeByCAListOfInterest':
|
|
$this->display($this->module->subscribeByCAListOfInterest(Tools::getValue('value')));
|
|
break;
|
|
case 'devMode':
|
|
$this->display($this->module->devMode(Tools::getValue('value')));
|
|
break;
|
|
case 'displayCustomerAccountSettings':
|
|
$this->display($this->module->displayCustomerAccountSettings(Tools::getValue('value')));
|
|
break;
|
|
case 'sendNewsletterOnSubscribe':
|
|
$this->display($this->module->sendNewsletterOnSubscribe(Tools::getValue('value')));
|
|
break;
|
|
case 'getStatistics':
|
|
$this->display($this->module->getStatistics());
|
|
break;
|
|
case 'clearStatistics':
|
|
$this->display($this->module->clearStatistics());
|
|
break;
|
|
case 'getImages':
|
|
$this->display($this->module->getImages());
|
|
break;
|
|
case 'uploadImage':
|
|
$file = isset($_FILES['upload_image']) ? $_FILES['upload_image'] : [];
|
|
$width = Tools::getValue('width');
|
|
$this->display($this->module->uploadImage($file, $width));
|
|
break;
|
|
case 'getFilterByPurchaseContent':
|
|
$this->display($this->module->getFilterByPurchaseContent());
|
|
break;
|
|
case 'searchByPurchase':
|
|
$query = Tools::getValue('query');
|
|
$this->display($this->module->searchByPurchase($query));
|
|
break;
|
|
case 'getFilterByBirthdayContent':
|
|
$fbb_class = Tools::getValue('fbb_class');
|
|
$this->display($this->module->getFilterByBirthdayContent($fbb_class));
|
|
break;
|
|
case 'getRangeSelectionContent':
|
|
$this->display($this->module->getRangeSelectionContent());
|
|
break;
|
|
// ------------------------------------------------------------------------
|
|
case 'viewNewsletterTemplate':
|
|
$email = Configuration::get('PS_SHOP_EMAIL');
|
|
$this->display($this->module->getNewsletterContent($email));
|
|
break;
|
|
|
|
case 'getMaxTotalSpent':
|
|
$this->display($this->module->getMaxTotalSpent());
|
|
break;
|
|
|
|
case 'saveProductTemplate':
|
|
$name = Tools::getValue('saveProductTemplate');
|
|
$nb = Tools::getValue('numberPerRow');
|
|
$this->display($this->module->saveProductTemplate($name, $nb));
|
|
break;
|
|
|
|
case 'viewProductTemplate':
|
|
$this->display($this->module->getProductContent(true));
|
|
break;
|
|
|
|
case 'getProductContent':
|
|
$this->display($this->module->getProductContent());
|
|
break;
|
|
|
|
case 'clearExclusionEmails':
|
|
$this->display($this->module->clearExclusionEmails());
|
|
break;
|
|
|
|
case 'getProducts':
|
|
$id_product = (int) Tools::getValue('getProducts');
|
|
$this->display($this->module->getProducts($id_product), true);
|
|
break;
|
|
|
|
case 'prepareEmails':
|
|
$this->display($this->module->prepareEmails());
|
|
break;
|
|
|
|
case 'isSendNewsletterInProgress':
|
|
$this->display($this->module->isSendNewsletterInProgress());
|
|
break;
|
|
|
|
case 'addEmail':
|
|
$email = trim(Tools::getValue('addEmail'));
|
|
$this->display($this->module->addEmail($email));
|
|
break;
|
|
|
|
case 'leftMenuActive':
|
|
$bool = (int) Tools::getValue('leftMenuActive');
|
|
$this->display($this->module->leftMenuActive($bool));
|
|
break;
|
|
|
|
case 'viewActiveOnly':
|
|
$bool = (int) Tools::getValue('viewActiveOnly');
|
|
$this->display($this->module->viewActiveOnly($bool));
|
|
break;
|
|
|
|
case 'convertCssToInlineStyle':
|
|
$bool = (int) Tools::getValue('convertCssToInlineStyle');
|
|
$this->display($this->module->convertCssToInlineStyle($bool));
|
|
break;
|
|
|
|
case 'runMultimpleTasks':
|
|
$bool = (int) Tools::getValue('runMultimpleTasks');
|
|
$this->display($this->module->runMultimpleTasks($bool));
|
|
break;
|
|
|
|
case 'displayOnliActiveProducts':
|
|
$bool = (int) Tools::getValue('displayOnliActiveProducts');
|
|
$this->display($this->module->displayOnliActiveProducts($bool));
|
|
break;
|
|
|
|
case 'productFriendlyURL':
|
|
$bool = (int) Tools::getValue('productFriendlyURL');
|
|
$this->display($this->module->productFriendlyURL($bool));
|
|
break;
|
|
|
|
case 'debugMode':
|
|
$bool = (int) Tools::getValue('debugMode');
|
|
$this->display($this->module->debugMode($bool));
|
|
break;
|
|
|
|
case 'loadMinified':
|
|
$bool = (int) Tools::getValue('value');
|
|
$this->display($this->module->loadMinified($bool));
|
|
break;
|
|
|
|
case 'subscriptionSecureSubscribe':
|
|
$bool = (int) Tools::getValue('subscriptionSecureSubscribe');
|
|
$this->display($this->module->subscriptionSecureSubscribe($bool));
|
|
break;
|
|
|
|
case 'changeSubscriptionControllerTemplate':
|
|
$this->display($this->module->changeSubscriptionControllerTemplate());
|
|
break;
|
|
|
|
case 'getSubscriptionControllerTemplates':
|
|
$this->display($this->module->getSubscriptionControllerTemplates());
|
|
break;
|
|
|
|
case 'subscriptionControllerEnabled':
|
|
$bool = (int) Tools::getValue('value');
|
|
$this->display($this->module->subscriptionControllerEnabled($bool));
|
|
break;
|
|
|
|
case 'clearSubscribersTemp':
|
|
$this->display($this->module->clearSubscribersTemp());
|
|
break;
|
|
|
|
case 'clearLogFiles':
|
|
$this->display($this->module->clearLogFiles());
|
|
break;
|
|
|
|
case 'importEmailsFromBlockNewsletter':
|
|
$this->display($this->module->importEmailsFromBlockNewsletter());
|
|
break;
|
|
|
|
case 'newsletterproSubscriptionActive':
|
|
$bool = (int) Tools::getValue('newsletterproSubscriptionActive');
|
|
$hooks = Tools::getValue('hooks');
|
|
|
|
if (!is_array($hooks)) {
|
|
$hooks = [];
|
|
}
|
|
|
|
$this->display($this->module->newsletterproSubscriptionActive($bool, $hooks));
|
|
break;
|
|
|
|
case 'changeNewsletterTemplate':
|
|
$bool = trim(Tools::getValue('changeNewsletterTemplate'));
|
|
$this->display($this->module->changeNewsletterTemplate($bool));
|
|
break;
|
|
|
|
case 'changeProductTemplate':
|
|
$bool = trim(Tools::getValue('changeProductTemplate'));
|
|
$this->display($this->module->changeProductTemplate($bool));
|
|
break;
|
|
|
|
case 'changeProductImageSize':
|
|
$bool = trim(Tools::getValue('changeProductImageSize'));
|
|
$this->display($this->module->changeProductImageSize($bool));
|
|
break;
|
|
|
|
case 'changeProductCurrency':
|
|
$currency = trim(Tools::getValue('changeProductCurrency'));
|
|
$this->display($this->module->changeProductCurrency($currency));
|
|
break;
|
|
|
|
case 'changeProductLanguage':
|
|
$lang = (int) Tools::getValue('changeProductLanguage');
|
|
$this->display($this->module->changeProductLanguage($lang));
|
|
break;
|
|
|
|
case 'saveAsProductTemplate':
|
|
$content = Tools::getValue('content');
|
|
$npr = Tools::getValue('numberPerRow');
|
|
$save = trim(Tools::getValue('saveAsProductTemplate'));
|
|
$this->display($this->module->saveAsProductTemplate($save, $content, $npr));
|
|
break;
|
|
|
|
case 'getHistory':
|
|
$id_history = (int) Tools::getValue('getHistory');
|
|
$this->display($this->module->getHistory($id_history));
|
|
break;
|
|
|
|
case 'sleepNewsletter':
|
|
$seconds = (int) Tools::getValue('sleepNewsletter');
|
|
$this->display($this->module->sleepNewsletter($seconds));
|
|
break;
|
|
|
|
case 'search_emails':
|
|
$this->display($this->module->searchEmails());
|
|
break;
|
|
|
|
case 'saveProductNumberPerRow':
|
|
$npr = (int) Tools::getValue('saveProductNumberPerRow');
|
|
$this->display($this->module->saveProductNumberPerRow($npr));
|
|
break;
|
|
|
|
case 'sendTestEmail':
|
|
$email = trim(Tools::getValue('sendTestEmail'));
|
|
$smtp_id = (true == Tools::isSubmit('smtpId') ? Tools::getValue('smtpId') : null);
|
|
$template_name = (true == Tools::isSubmit('templateName') ? Tools::getValue('templateName') : null);
|
|
$send_method = (true == Tools::isSubmit('sendMethod') ? Tools::getValue('sendMethod') : null);
|
|
$id_lang = (true == Tools::isSubmit('idLang') ? Tools::getValue('idLang') : null);
|
|
$this->display(NewsletterProSendManager::getInstance()->sendTestNewsletter($email, $template_name, $smtp_id, $send_method, $id_lang));
|
|
break;
|
|
|
|
case 'clearSendHistoryDetails':
|
|
$this->display($this->module->clearSendHistoryDetails());
|
|
break;
|
|
|
|
case 'clearTaskHistoryDetails':
|
|
$this->display($this->module->clearTaskHistoryDetails());
|
|
break;
|
|
|
|
case 'sendMailTest':
|
|
$test = trim(Tools::getValue('sendMailTest'));
|
|
$id_smtp = (Tools::isSubmit('id_smtp') && (int) Tools::getValue('id_smtp') ? (int) Tools::getValue('id_smtp') : null);
|
|
$this->display(NewsletterProSendManager::getInstance()->sendMailTest($test, $id_smtp));
|
|
break;
|
|
|
|
case 'selectAllCustomers':
|
|
$this->display($this->module->selectAllCustomers());
|
|
break;
|
|
|
|
case 'displayProductImage':
|
|
$image = trim(Tools::getValue('displayProductImage'));
|
|
$this->display($this->module->displayProductImage($image));
|
|
break;
|
|
|
|
case 'searchProducts':
|
|
$products = trim(Tools::getValue('searchProducts'));
|
|
$this->display($this->module->searchProducts($products));
|
|
break;
|
|
|
|
case 'clearHistory':
|
|
$this->display($this->module->clearHistory());
|
|
break;
|
|
|
|
case 'saveSMTP':
|
|
$this->display($this->module->saveSMTP($_POST));
|
|
break;
|
|
|
|
case 'addSMTP':
|
|
$this->display($this->module->addSMTP($_POST));
|
|
break;
|
|
|
|
case 'getCountries':
|
|
$this->display($this->module->getCountries(), true);
|
|
break;
|
|
|
|
case 'searchCountries':
|
|
$value = Tools::getValue('value');
|
|
$this->display($this->module->searchCountries($value), true);
|
|
break;
|
|
|
|
case 'smtpActive':
|
|
$bool = Tools::getValue('smtpActive');
|
|
$this->display($this->module->smtpActive($bool));
|
|
break;
|
|
|
|
case 'updateGAnalyticsID':
|
|
$id = trim(Tools::getValue('updateGAnalyticsID'));
|
|
$this->display($this->module->updateGAnalyticsID($id));
|
|
break;
|
|
|
|
case 'activeGAnalytics':
|
|
$bool = Tools::getValue('activeGAnalytics');
|
|
$this->display($this->module->activeGAnalytics($bool));
|
|
break;
|
|
|
|
case 'universalAnaliytics':
|
|
$bool = Tools::getValue('universalAnaliytics');
|
|
$this->display($this->module->universalAnaliytics($bool));
|
|
break;
|
|
|
|
case 'activeCampaign':
|
|
$bool = Tools::getValue('activeCampaign');
|
|
$this->display($this->module->activeCampaign($bool));
|
|
break;
|
|
|
|
case 'makeDefaultParameteres':
|
|
$this->display($this->module->makeDefaultParameteres());
|
|
break;
|
|
|
|
case 'uploadCSV':
|
|
if (isset($_FILES['upload_csv'])) {
|
|
$this->display($this->module->uploadCSV($_FILES['upload_csv']));
|
|
}
|
|
break;
|
|
|
|
case 'deleteBouncedEmails':
|
|
$bounced_emails = isset($_FILES['bounced_emails']) ? $_FILES['bounced_emails'] : null;
|
|
$this->display($this->module->deleteBouncedEmails($bounced_emails));
|
|
break;
|
|
|
|
case 'addCsvEmailsToExclusion':
|
|
$csv = isset($_FILES['exclusion_emails_emails']) ? $_FILES['exclusion_emails_emails'] : null;
|
|
$this->display($this->module->addCsvEmailsToExclusion($csv));
|
|
break;
|
|
|
|
case 'deleteCSVByName':
|
|
$name = Tools::getValue('deleteCSVByName');
|
|
$this->display($this->module->deleteCSVByName($name));
|
|
break;
|
|
|
|
case 'loadCSV':
|
|
$csv = Tools::getValue('loadCSV');
|
|
$delimiter = Tools::getValue('delimiter');
|
|
$line = Tools::getValue('line');
|
|
$this->display($this->module->loadCSV($csv, $delimiter, $line));
|
|
break;
|
|
|
|
case 'importCSV':
|
|
$csv = Tools::getValue('importCSV');
|
|
$delimiter = Tools::getValue('delimiter');
|
|
$fields = Tools::getValue('fields');
|
|
$line = Tools::getValue('line');
|
|
$filter_name = Tools::getValue('filter_name');
|
|
$this->display($this->module->importCSV($csv, $delimiter, $fields, $line, $filter_name));
|
|
break;
|
|
|
|
case 'saveCampaign':
|
|
$this->display($this->module->saveCampaign($_POST));
|
|
break;
|
|
|
|
case 'getTaskTemplate':
|
|
$this->display($this->module->getTaskTemplate());
|
|
break;
|
|
|
|
case 'changeSMTP':
|
|
$id = (int) Tools::getValue('changeSMTP');
|
|
$this->display($this->module->changeSMTP($id));
|
|
break;
|
|
|
|
case 'deleteSMTP':
|
|
$tpl = (int) Tools::getValue('deleteSMTP');
|
|
$this->display($this->module->deleteSMTP($tpl));
|
|
break;
|
|
|
|
case 'updateTask':
|
|
$task = (int) Tools::getValue('updateTask');
|
|
$this->display($this->module->updateTask($task));
|
|
break;
|
|
|
|
case 'deleteTask':
|
|
$id_task = (int) Tools::getValue('deleteTask');
|
|
$this->display($this->module->deleteTask($id_task));
|
|
break;
|
|
|
|
case 'deleteSendHistory':
|
|
$id_history = (int) Tools::getValue('deleteSendHistory');
|
|
$this->display($this->module->deleteSendHistory($id_history));
|
|
break;
|
|
|
|
case 'getSubscriptionConsent':
|
|
$this->display($this->module->getSubscriptionConsent());
|
|
break;
|
|
|
|
case 'getSubscriptionConsentDetails':
|
|
$this->display($this->module->getSubscriptionConsentDetails(Tools::getValue('email')));
|
|
break;
|
|
|
|
case 'deleteSubscriptionConsent':
|
|
$this->display($this->module->deleteSubscriptionConsent(Tools::getValue('email')));
|
|
break;
|
|
|
|
case 'searchSubscriptionConsent':
|
|
$this->display($this->module->searchSubscriptionConsent(Tools::getValue('value')));
|
|
break;
|
|
|
|
case 'searchPrivacyData':
|
|
$this->display($this->module->searchPrivacyData(Tools::getValue('email')));
|
|
break;
|
|
|
|
case 'clearPrivacyData':
|
|
$this->display($this->module->clearPrivacyData(Tools::getValue('email')));
|
|
break;
|
|
|
|
case 'getTasks':
|
|
$this->display($this->module->getTasks());
|
|
break;
|
|
|
|
case 'addTask':
|
|
$task = Tools::getValue('addTask');
|
|
$this->display($this->module->addTask($task));
|
|
break;
|
|
|
|
case 'sendTaskAjax':
|
|
// don't need $this->display()
|
|
$task = (int) Tools::getValue('sendTaskAjax');
|
|
$this->module->sendTaskAjax($task);
|
|
break;
|
|
|
|
case 'getTasksInProgress':
|
|
$progress_ids = Tools::getValue('progressIds');
|
|
$this->display($this->module->getTasksInProgress($progress_ids));
|
|
break;
|
|
|
|
case 'getSendHistory':
|
|
$this->display($this->module->getSendHistory());
|
|
break;
|
|
|
|
case 'getForwardList':
|
|
$this->display($this->module->getForwardList());
|
|
break;
|
|
|
|
case 'getTasksHistory':
|
|
$this->display($this->module->getTasksHistory());
|
|
break;
|
|
|
|
case 'getUnsubscribedDetails':
|
|
$id_newsletter = (int) Tools::getValue('id_newsletter');
|
|
$this->display($this->module->getUnsubscribedDetails($id_newsletter));
|
|
break;
|
|
|
|
case 'getFwdUnsubscribedDetails':
|
|
$id_newsletter = (int) Tools::getValue('id_newsletter');
|
|
$this->display($this->module->getFwdUnsubscribedDetails($id_newsletter));
|
|
break;
|
|
|
|
case 'getTaskUnsubscribedDetails':
|
|
$id_newsletter = (int) Tools::getValue('id_newsletter');
|
|
$this->display($this->module->getTaskUnsubscribedDetails($id_newsletter));
|
|
break;
|
|
|
|
case 'getTaskFwdUnsubscribedDetails':
|
|
$id_newsletter = (int) Tools::getValue('id_newsletter');
|
|
$this->display($this->module->getTaskFwdUnsubscribedDetails($id_newsletter));
|
|
break;
|
|
|
|
case 'getForwarderDetails':
|
|
$email = Tools::getValue('email');
|
|
$this->display($this->module->getForwarderDetails($email));
|
|
break;
|
|
|
|
case 'getTasksHistoryDetail':
|
|
$detail = (int) Tools::getValue('getTasksHistoryDetail');
|
|
$this->display($this->module->getTasksHistoryDetail($detail));
|
|
break;
|
|
|
|
case 'getSendHistoryDetail':
|
|
$detail = (int) Tools::getValue('getSendHistoryDetail');
|
|
$this->display($this->module->getSendHistoryDetail($detail));
|
|
break;
|
|
|
|
case 'clearTaskHistory':
|
|
$this->display($this->module->clearTaskHistory());
|
|
break;
|
|
|
|
case 'clearSendHistory':
|
|
$this->display($this->module->clearSendHistory());
|
|
break;
|
|
|
|
case 'getAllSMTPJson':
|
|
$this->display($this->module->getAllSMTPJson());
|
|
break;
|
|
|
|
case 'renderTemplateHistory':
|
|
$id_history = (int) Tools::getValue('renderTemplateHistory');
|
|
$this->display($this->module->renderTemplateHistory($id_history));
|
|
break;
|
|
|
|
case 'ajaxCreateBackup':
|
|
$name = Tools::getValue('name');
|
|
$check_duplicate = Tools::isSubmit('check_duplicate') ? (bool) Tools::getValue('check_duplicate') : true;
|
|
$this->display($this->module->ajaxCreateBackup($name, $check_duplicate));
|
|
break;
|
|
|
|
case 'resendSendHistory':
|
|
$left_list = Tools::getValue('resendLeft');
|
|
$right_list = Tools::getValue('resendUndelivered');
|
|
$id = (int) Tools::getValue('id');
|
|
$this->display($this->module->resendSendHistory($id, $left_list, $right_list));
|
|
break;
|
|
|
|
case 'showLoadBackup':
|
|
$this->display($this->module->showLoadBackup());
|
|
break;
|
|
|
|
case 'ajaxGetBackup':
|
|
$this->display($this->module->ajaxGetBackup());
|
|
break;
|
|
|
|
case 'ajaxDeleteBackup':
|
|
$this->display($this->module->ajaxDeleteBackup(Tools::getValue('name')));
|
|
break;
|
|
|
|
case 'ajaxLoadBackup':
|
|
$this->display($this->module->ajaxLoadBackup(Tools::getValue('name')));
|
|
break;
|
|
}
|
|
exit;
|
|
}
|
|
|
|
public function processChimp($action)
|
|
{
|
|
if (!isset($this->module->chimp)) {
|
|
exit;
|
|
}
|
|
|
|
$chimp = &$this->module->chimp;
|
|
|
|
switch ($action) {
|
|
case 'pingChimp':
|
|
$this->display($chimp->pingChimp());
|
|
|
|
// no break
|
|
case 'installChimp':
|
|
$api_key = Tools::getValue('api_key');
|
|
$list_id = Tools::getValue('list_id');
|
|
$this->display($chimp->installChimp($api_key, $list_id));
|
|
|
|
// no break
|
|
case 'uninstallChimp':
|
|
$this->display($chimp->uninstallChimp());
|
|
|
|
// no break
|
|
case 'updateSyncCheckbox':
|
|
$name = Tools::getValue('name');
|
|
$value = (int) Tools::getValue('value');
|
|
$this->display($chimp->updateSyncCheckbox($name, $value));
|
|
|
|
// no break
|
|
case 'setSyncLists':
|
|
$data = Tools::getValue('data');
|
|
$this->display($chimp->setSyncLists($data));
|
|
|
|
// no break
|
|
case 'deleteChimpOrders':
|
|
$this->display($chimp->deleteChimpOrders());
|
|
|
|
// no break
|
|
case 'resetSyncOrderDate':
|
|
$this->display($chimp->resetSyncOrderDate());
|
|
|
|
// no break
|
|
case 'getSyncListsStatus':
|
|
$this->display($chimp->getSyncListsStatus());
|
|
|
|
// no break
|
|
case 'startSyncLists':
|
|
$this->display($chimp->startSyncLists());
|
|
|
|
// no break
|
|
case 'stopSync':
|
|
$this->display($chimp->stopSync());
|
|
|
|
// no break
|
|
case 'syncListsBack':
|
|
$start = Tools::getValue('start');
|
|
$limit = Tools::getValue('limit');
|
|
$this->display($chimp->syncListsBack($start, $limit));
|
|
|
|
// no break
|
|
case 'getAllTemplates':
|
|
$this->display($chimp->getAllTemplates());
|
|
|
|
// no break
|
|
case 'getTemplateSource':
|
|
$template_id = Tools::getValue('template_id');
|
|
$type = Tools::getValue('type');
|
|
$this->display($chimp->getTemplateSource($template_id, $type));
|
|
|
|
// no break
|
|
case 'importTemplate':
|
|
$name = Tools::getValue('name');
|
|
$content = Tools::getValue('content');
|
|
$override = (bool) Tools::getValue('override');
|
|
$this->display($chimp->importTemplate($name, $content, $override));
|
|
|
|
// no break
|
|
case 'exportTemplate':
|
|
$name = Tools::getValue('name');
|
|
$id_lang = (int) Tools::getValue('id_lang');
|
|
$filename = Tools::getValue('filename');
|
|
$override = (bool) Tools::getValue('override');
|
|
$this->display($chimp->exportTemplate($name, $id_lang, $filename, $override));
|
|
}
|
|
|
|
exit;
|
|
}
|
|
|
|
public function processCustomField($action)
|
|
{
|
|
$controller = NewsletterProSubscribersCustomFieldController::newInstance();
|
|
|
|
switch ($action) {
|
|
case 'addField':
|
|
$variable_name = Tools::getValue('variable_name');
|
|
$type = Tools::getValue('type');
|
|
$required = Tools::getValue('required');
|
|
$this->display($controller->addField($variable_name, $type, (int) $required), true);
|
|
|
|
// no break
|
|
case 'deleteField':
|
|
$id = Tools::getValue('id');
|
|
$this->display($controller->deleteField((int) $id), true);
|
|
|
|
// no break
|
|
case 'addValue':
|
|
$id = Tools::getValue('id');
|
|
$value = Tools::getValue('value');
|
|
$this->display($controller->addValue((int) $id, $value), true);
|
|
|
|
// no break
|
|
case 'removeValueByKey':
|
|
$id = Tools::getValue('id');
|
|
$key = Tools::getValue('key');
|
|
$this->display($controller->removeValueByKey((int) $id, $key), true);
|
|
|
|
// no break
|
|
case 'updateValue':
|
|
$id = Tools::getValue('id');
|
|
$key = Tools::getValue('key');
|
|
$value = Tools::getValue('value');
|
|
$this->display($controller->updateValue((int) $id, $key, $value), true);
|
|
|
|
// no break
|
|
case 'getValueByKey':
|
|
$id = Tools::getValue('id');
|
|
$key = Tools::getValue('key');
|
|
$this->display($controller->getValueByKey((int) $id, $key), true);
|
|
|
|
// no break
|
|
case 'getValuesList':
|
|
$id = Tools::getValue('id');
|
|
$id_lang = Tools::getValue('id_lang');
|
|
$this->display($controller->getValuesList((int) $id, $id_lang), true);
|
|
|
|
// no break
|
|
case 'getFieldsList':
|
|
$this->display($controller->getFieldsList(), true);
|
|
|
|
// no break
|
|
case 'changeFieldRequired':
|
|
$id = Tools::getValue('id');
|
|
$value = Tools::getValue('value');
|
|
$this->display($controller->changeFieldRequired((int) $id, (int) $value), true);
|
|
|
|
// no break
|
|
case 'saveShowColumns':
|
|
$columns = Tools::getValue('columns');
|
|
$this->display($controller->saveShowColumns($columns), true);
|
|
|
|
// no break
|
|
case 'getCustomColumns':
|
|
$this->display($controller->getCustomColumns(), true);
|
|
}
|
|
|
|
exit;
|
|
}
|
|
|
|
private function mapGetIdCategories($row)
|
|
{
|
|
return isset($row['id_category']) ? $row['id_category'] : false;
|
|
}
|
|
|
|
public function processFront($action)
|
|
{
|
|
switch ($action) {
|
|
case 'submitNewsletterProSubscribe':
|
|
$this->display($this->module->submitNewsletterProSubscribe());
|
|
|
|
// no break
|
|
case 'submitNewsletterProSubscribeCloseForever':
|
|
$this->display($this->module->submitNewsletterProSubscribeCloseForever());
|
|
|
|
// no break
|
|
case 'getHomeCategory':
|
|
$context = Context::getContext();
|
|
$tree = NewsletterProCategoryTree::newInstance((int) $context->customer->id);
|
|
$data = $tree->home($context->language->id, $context->shop->id);
|
|
$this->display(Tools::jsonEncode($data));
|
|
break;
|
|
case 'getCategoryChildrens':
|
|
$context = Context::getContext();
|
|
$tree = NewsletterProCategoryTree::newInstance((int) $context->customer->id);
|
|
$data = $tree->childrens(Tools::getValue('id_category'), $context->language->id, $context->shop->id);
|
|
$this->display(Tools::jsonEncode($data));
|
|
break;
|
|
}
|
|
|
|
if (Tools::isSubmit('getChildrenCategories') && Tools::isSubmit('id_category_parent')) {
|
|
if (method_exists('Category', 'getChildrenWithNbSelectedSubCat')) {
|
|
$children_categories_result = Category::getChildrenWithNbSelectedSubCat(Tools::getValue('id_category_parent'), Tools::getValue('selectedCat'), Context::getContext()->language->id, null, Tools::getValue('use_shop_context'));
|
|
|
|
$children_categories_ids = array_map([$this, 'mapGetIdCategories'], $children_categories_result);
|
|
// get only the active categories
|
|
$active_categories = Db::getInstance()->executeS(
|
|
'
|
|
SELECT `id_category`
|
|
FROM `'._DB_PREFIX_.'category`
|
|
WHERE `id_category` IN ('.pSQL(implode(',', $children_categories_ids)).') AND `active` = 1'
|
|
);
|
|
$active_categories_ids = array_map([$this, 'mapGetIdCategories'], $active_categories);
|
|
|
|
$children_categories = [];
|
|
foreach ($children_categories_result as $category) {
|
|
if (in_array($category['id_category'], $active_categories_ids)) {
|
|
$children_categories[] = $category;
|
|
}
|
|
}
|
|
} elseif (class_exists('NewsletterPro')) {
|
|
$children_categories = NewsletterPro::getChildrenWithNbSelectedSubCat(Tools::getValue('id_category_parent'), Tools::getValue('selectedCat'), Context::getContext()->language->id, null, Tools::getValue('use_shop_context'));
|
|
}
|
|
|
|
$this->display(Tools::jsonEncode($children_categories));
|
|
}
|
|
|
|
if (Tools::isSubmit('searchCategory')) {
|
|
$q = Tools::getValue('q');
|
|
$limit = Tools::getValue('limit');
|
|
$results = Db::getInstance()->executeS(
|
|
'SELECT c.`id_category`, cl.`name`
|
|
FROM `'._DB_PREFIX_.'category` c
|
|
LEFT JOIN `'._DB_PREFIX_.'category_lang` cl ON (c.`id_category` = cl.`id_category`'.NewsletterPro::addSqlRestrictionOnLang('cl').')
|
|
WHERE cl.`id_lang` = '.(int) $this->context->language->id.' AND c.`level_depth` <> 0
|
|
AND cl.`name` LIKE \'%'.pSQL($q).'%\'
|
|
GROUP BY c.id_category
|
|
ORDER BY c.`position`
|
|
LIMIT '.(int) $limit
|
|
);
|
|
|
|
if ($results) {
|
|
foreach ($results as $result) {
|
|
echo trim($result['name']).'|'.(int) $result['id_category']."\n";
|
|
}
|
|
}
|
|
}
|
|
|
|
if (Tools::isSubmit('getParentCategoriesId') && $id_category = Tools::getValue('id_category')) {
|
|
$category = new Category((int) $id_category);
|
|
$results = Db::getInstance()->executeS('SELECT `id_category` FROM `'._DB_PREFIX_.'category` c WHERE c.`nleft` < '.(int) $category->nleft.' AND c.`nright` > '.(int) $category->nright.'');
|
|
$output = [];
|
|
foreach ($results as $result) {
|
|
$output[] = $result;
|
|
}
|
|
|
|
$this->display(Tools::jsonEncode($output));
|
|
}
|
|
|
|
exit;
|
|
}
|
|
|
|
public function display($str, $json = false)
|
|
{
|
|
if ($json) {
|
|
@header('Content-Type: application/json');
|
|
}
|
|
|
|
echo $str;
|
|
exit;
|
|
}
|
|
}
|