fn_delete_subscribers($_REQUEST['subscriber_ids']); } if ($mode == 'delete') { if (!empty($_REQUEST['subscriber_id'])) { fn_delete_subscribers((array) $_REQUEST['subscriber_id']); } } return array(CONTROLLER_STATUS_OK, 'subscribers' . $suffix); } if ($mode == 'manage') { list($subscribers, $search) = fn_get_subscribers($_REQUEST, Registry::get('settings.Appearance.admin_elements_per_page')); foreach ($subscribers as &$subscriber) { if (!empty($subscriber['list_ids'])) { $subscriber['mailing_lists'] = array(); foreach (explode(',', $subscriber['list_ids']) as $list_id) { $subscriber['mailing_lists'][$list_id] = fn_get_mailing_list_data($list_id, DESCR_SL); // get additional user-specific data for each mailing list (like lang_code) $_where = array('list_id' => $list_id, 'subscriber_id' => $subscriber['subscriber_id']); $subscriber_list_data = db_get_row("SELECT * FROM ?:user_mailing_lists WHERE ?w", $_where); $subscriber['mailing_lists'][$list_id] = array_merge($subscriber['mailing_lists'][$list_id], $subscriber_list_data); $subscriber['lang_code'] = $subscriber['mailing_lists'][$list_id]['lang_code']; } unset($subscriber['list_ids']); } } $mailing_lists = db_get_hash_array("SELECT m.list_id, d.object, ?:newsletters.newsletter_id as register_autoresponder FROM ?:mailing_lists AS m INNER JOIN ?:common_descriptions AS d ON m.list_id=d.object_id LEFT JOIN ?:newsletters ON m.register_autoresponder = ?:newsletters.newsletter_id AND ?:newsletters.status = 'A' WHERE d.object_holder='mailing_lists' AND d.lang_code = ?s", 'list_id', DESCR_SL); Tygh::$app['view']->assign('mailing_lists', $mailing_lists); Tygh::$app['view']->assign('subscribers', $subscribers); Tygh::$app['view']->assign('search', $search); fn_newsletters_generate_sections('subscribers'); }
function fn_send_confirmation_email($subscriber_id, $list_id, $email, $lang_code = CART_LANGUAGE) { $list = fn_get_mailing_list_data($list_id); if ($list['register_autoresponder']) { $autoresponder = fn_get_newsletter_data($list['register_autoresponder']); $body = $autoresponder['body_html']; $body = fn_render_newsletter($body, array('list_id' => $list_id, 'subscriber_id' => $subscriber_id, 'email' => $email)); if (AREA == 'A') { fn_echo(__('sending_email_to', array('[email]' => $email)) . '<br />'); } fn_send_newsletter($email, $list, $autoresponder['newsletter'], $body, array(), $lang_code, $list['reply_to']); } }
} } $_data = $list_data; $_data['object_id'] = $k; $_data['object_holder'] = 'mailing_lists'; $_data['object'] = $_data['name']; $_where = array('object_id' => $k, 'object_holder' => 'mailing_lists', 'lang_code' => DESCR_SL); db_query("UPDATE ?:common_descriptions SET ?u WHERE ?w", $_data, $_where); } } return array(CONTROLLER_STATUS_OK, "mailing_lists.manage"); } if ($mode == 'update') { fn_add_breadcrumb(fn_get_lang_var('newsletters'), "newsletters.manage"); $view->assign('autoresponders', fn_get_newsletters(array('type' => NEWSLETTER_TYPE_AUTORESPONDER, 'only_available' => false), DESCR_SL)); $view->assign('mailing_list', fn_get_mailing_list_data($_REQUEST['list_id'], DESCR_SL)); } elseif ($mode == 'delete') { if (!empty($_REQUEST['list_id'])) { db_query("DELETE FROM ?:common_descriptions WHERE object_id = ?i AND object_holder='mailing_lists'", $_REQUEST['list_id']); db_query("DELETE FROM ?:mailing_lists WHERE list_id = ?i", $_REQUEST['list_id']); db_query("DELETE FROM ?:user_mailing_lists WHERE list_id = ?i", $_REQUEST['list_id']); $_mailing_lists = fn_get_mailing_lists(array('only_available' => false, 'limit' => $limit), DESCR_SL); if (empty($_mailing_lists)) { $view->display('addons/news_and_emails/views/mailing_lists/manage.tpl'); } } exit; } elseif ($mode == 'manage') { $total_pages = db_get_field("SELECT COUNT(*) FROM ?:mailing_lists"); $limit = fn_paginate(@$_REQUEST['page'], $total_pages, Registry::get('settings.Appearance.admin_elements_per_page')); $mailing_lists = fn_get_mailing_lists(array('only_available' => false, 'limit' => $limit), DESCR_SL);
db_query("DELETE FROM ?:common_descriptions WHERE object_id = ?i AND object_holder = 'mailing_lists'", $_REQUEST['list_id']); db_query("DELETE FROM ?:mailing_lists WHERE list_id = ?i", $_REQUEST['list_id']); db_query("DELETE FROM ?:user_mailing_lists WHERE list_id = ?i", $_REQUEST['list_id']); list($_mailing_lists) = fn_get_mailing_lists(array('only_available' => false), 0, DESCR_SL); if (empty($_mailing_lists)) { Registry::get('view')->display('addons/news_and_emails/views/mailing_lists/manage.tpl'); } } exit; } return array(CONTROLLER_STATUS_OK, 'mailing_lists.manage'); } if ($mode == 'update') { list($autoresponders) = fn_get_newsletters(array('type' => NEWSLETTER_TYPE_AUTORESPONDER, 'only_available' => false), 0, DESCR_SL); Registry::get('view')->assign('autoresponders', $autoresponders); Registry::get('view')->assign('mailing_list', fn_get_mailing_list_data($_REQUEST['list_id'], DESCR_SL)); } elseif ($mode == 'manage') { $params = $_REQUEST; $params['only_available'] = false; list($mailing_lists) = fn_get_mailing_lists($params, 0, DESCR_SL); $subscribers = db_get_hash_array("SELECT * FROM ?:subscribers", 'subscriber_id'); foreach ($mailing_lists as &$list) { $list['subscribers_num'] = db_get_field("SELECT COUNT(*) FROM ?:user_mailing_lists WHERE list_id = ?i", $list['list_id']); } list($autoresponders) = fn_get_newsletters(array('type' => NEWSLETTER_TYPE_AUTORESPONDER, 'only_available' => false), 0, DESCR_SL); Registry::get('view')->assign('mailing_lists', $mailing_lists); Registry::get('view')->assign('autoresponders', $autoresponders); Registry::get('view')->assign('subscribers', $subscribers); fn_newsletters_generate_sections('mailing_lists'); } function fn_update_mailing_list($mailing_list_data, $list_id, $lang_code = DESCR_SL)
function fn_send_confirmation_email($subscriber_id, $list_id, $email, $format = NEWSLETTER_FORMAT_TXT, $lang_code = CART_LANGUAGE) { static $msg; if (empty($msg)) { $msg = fn_get_lang_var('sending_email_to'); } $list = fn_get_mailing_list_data($list_id); if ($list['register_autoresponder']) { $autoresponder = fn_get_newsletter_data($list['register_autoresponder']); if ($format == NEWSLETTER_FORMAT_TXT) { $body = $autoresponder['body_txt']; } else { $body = $autoresponder['body_html']; } $body = fn_render_newsletter($body, array('list_id' => $list_id, 'subscriber_id' => $subscriber_id, 'email' => $email)); if (AREA == 'A') { fn_echo(str_replace('[email]', $email, $msg) . '<br />'); } fn_send_newsletter($email, $list, $autoresponder['newsletter'], $body, array(), $lang_code, $list['reply_to'], $format == NEWSLETTER_FORMAT_HTML); } }
db_query("DELETE FROM ?:common_descriptions WHERE object_id = ?i AND object_holder = 'mailing_lists'", $_REQUEST['list_id']); db_query("DELETE FROM ?:mailing_lists WHERE list_id = ?i", $_REQUEST['list_id']); db_query("DELETE FROM ?:user_mailing_lists WHERE list_id = ?i", $_REQUEST['list_id']); list($_mailing_lists) = fn_get_mailing_lists(array('only_available' => false), 0, DESCR_SL); if (empty($_mailing_lists)) { Tygh::$app['view']->display('addons/news_and_emails/views/mailing_lists/manage.tpl'); } } exit; } return array(CONTROLLER_STATUS_OK, 'mailing_lists.manage'); } if ($mode == 'update') { list($autoresponders) = fn_get_newsletters(array('type' => NEWSLETTER_TYPE_AUTORESPONDER, 'only_available' => false), 0, DESCR_SL); Tygh::$app['view']->assign('autoresponders', $autoresponders); Tygh::$app['view']->assign('mailing_list', fn_get_mailing_list_data($_REQUEST['list_id'], DESCR_SL)); } elseif ($mode == 'manage') { $params = $_REQUEST; $params['only_available'] = false; list($mailing_lists) = fn_get_mailing_lists($params, 0, DESCR_SL); $subscribers = db_get_hash_array("SELECT * FROM ?:subscribers", 'subscriber_id'); foreach ($mailing_lists as &$list) { $list['subscribers_num'] = db_get_field("SELECT COUNT(*) FROM ?:user_mailing_lists WHERE list_id = ?i", $list['list_id']); } list($autoresponders) = fn_get_newsletters(array('type' => NEWSLETTER_TYPE_AUTORESPONDER, 'only_available' => false), 0, DESCR_SL); Tygh::$app['view']->assign('mailing_lists', $mailing_lists); Tygh::$app['view']->assign('autoresponders', $autoresponders); Tygh::$app['view']->assign('subscribers', $subscribers); fn_newsletters_generate_sections('mailing_lists'); } function fn_update_mailing_list($mailing_list_data, $list_id, $lang_code = DESCR_SL)