Esempio n. 1
0
    // newsletter creation page
} elseif ($mode == 'preview_popup') {
    Registry::get('view')->display('addons/newsletters/views/newsletters/components/preview_popup.tpl');
    exit;
    // newsletter manage page
} elseif ($mode == 'manage') {
    // do we list newsletters or templates or autoresponders?
    $newsletter_type = !empty($_REQUEST['type']) ? $_REQUEST['type'] : NEWSLETTER_TYPE_NEWSLETTER;
    // Use pagination for a newsletters
    $params = array('type' => $newsletter_type, 'only_available' => false);
    $items_per_page = 0;
    if ($newsletter_type == NEWSLETTER_TYPE_NEWSLETTER) {
        $params = fn_array_merge($params, $_REQUEST);
        $items_per_page = Registry::get('settings.Appearance.admin_elements_per_page');
    }
    list($newsletters, $search) = fn_get_newsletters($params, $items_per_page, DESCR_SL);
    list($mailing_lists) = fn_get_mailing_lists();
    foreach ($newsletters as $newsletter_id => $data) {
        if (!empty($data['mailing_lists'])) {
            $lists = array();
            foreach ($data['mailing_lists'] as $mailing_list_id) {
                $lists[] = $mailing_lists[$mailing_list_id]['object'];
            }
            $newsletters[$newsletter_id]['mailing_list_names'] = implode(', ', $lists);
        }
    }
    Registry::get('view')->assign('newsletter_type', $newsletter_type);
    Registry::get('view')->assign('mailing_lists', $mailing_lists);
    Registry::get('view')->assign('newsletters', $newsletters);
    Registry::get('view')->assign('search', $search);
    fn_newsletters_generate_sections($newsletter_type);
Esempio n. 2
0
    }
    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)
{
    if (empty($list_id)) {
        $list_id = db_query("INSERT INTO ?:mailing_lists ?e", $mailing_list_data);
        $_data = $mailing_list_data;
        $_data['object_id'] = $list_id;
        $_data['object_holder'] = 'mailing_lists';
        $_data['object'] = $_data['name'];
        foreach (fn_get_translation_languages() as $_data['lang_code'] => $v) {
            db_query("REPLACE INTO ?:common_descriptions ?e", $_data);
Esempio n. 3
0
    }
    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);
    $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={$list['list_id']}");
    }
    $view->assign('mailing_lists', $mailing_lists);
    $view->assign('autoresponders', fn_get_newsletters(array('type' => NEWSLETTER_TYPE_AUTORESPONDER, 'only_available' => false), DESCR_SL));
    $view->assign('subscribers', $subscribers);
}
/** /Body **/
Esempio n. 4
0
    $view->assign('mailing_lists', fn_get_mailing_lists(array('only_available' => false)));
    // newsletter creation page
} elseif ($mode == 'preview_popup') {
    $view->display('addons/news_and_emails/views/newsletters/components/preview_popup.tpl');
    exit;
    // newsletter manage page
} elseif ($mode == 'manage') {
    // do we list newsletters or templates or autoresponders?
    $newsletter_type = !empty($_REQUEST['type']) ? $_REQUEST['type'] : NEWSLETTER_TYPE_NEWSLETTER;
    // Use pagination for a newsletters
    $params = array();
    if ($newsletter_type == NEWSLETTER_TYPE_NEWSLETTER) {
        $params = array('paginate' => true, 'page' => empty($_REQUEST['page']) ? 1 : $_REQUEST['page']);
    }
    $view->assign('newsletter_type', $newsletter_type);
    $view->assign('newsletters', fn_get_newsletters(fn_array_merge(array('type' => $newsletter_type, 'only_available' => false), $params), DESCR_SL));
    fn_newsletters_generate_sections($newsletter_type);
} elseif ($mode == 'campaigns') {
    list($campaigns, $search) = fn_get_campaigns($_REQUEST);
    $view->assign('campaigns', $campaigns);
    $view->assign('search', $search);
    fn_newsletters_generate_sections('C');
} elseif ($mode == 'campaign_stats') {
    $campaign = db_get_row("SELECT c.*, d.* FROM ?:newsletter_campaigns c INNER JOIN ?:common_descriptions d ON c.campaign_id=d.object_id LEFT JOIN ?:newsletters ON c.campaign_id=?:newsletters.campaign_id WHERE d.object_holder='newsletter_campaigns' AND c.campaign_id = ?i", $_REQUEST['campaign_id']);
    $stats = db_get_array("SELECT n.*, d.*, SUM(e.clicks) as clicks FROM ?:newsletters n INNER JOIN ?:newsletter_descriptions d ON n.newsletter_id=d.newsletter_id LEFT JOIN ?:newsletter_links e ON n.newsletter_id = e.newsletter_id AND e.campaign_id = n.campaign_id WHERE n.campaign_id=?i GROUP BY e.newsletter_id", $_REQUEST['campaign_id']);
    $view->assign('campaign', $campaign);
    $view->assign('campaign_stats', $stats);
} elseif ($mode == 'delete') {
    if (!empty($_REQUEST['newsletter_id'])) {
        fn_delete_newsletter($_REQUEST['newsletter_id']);
    }