示例#1
0
    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);
} elseif ($mode == 'campaigns') {
    list($campaigns, $search) = fn_get_campaigns($_REQUEST, Registry::get('settings.Appearance.admin_elements_per_page'));
    Registry::get('view')->assign('campaigns', $campaigns);
    Registry::get('view')->assign('search', $search);
    fn_newsletters_generate_sections('C');
} elseif ($mode == 'campaign_stats') {
    $campaign = db_get_row("SELECT c.*, d.* FROM ?:newsletter_campaigns AS c INNER JOIN ?:common_descriptions AS 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 AND d.lang_code = ?s", $_REQUEST['campaign_id'], DESCR_SL);
    $stats = db_get_array("SELECT n.*, d.*, SUM(e.clicks) AS clicks FROM ?:newsletters AS n INNER JOIN ?:newsletter_descriptions AS d ON n.newsletter_id=d.newsletter_id LEFT JOIN ?:newsletter_links AS e ON n.newsletter_id = e.newsletter_id AND e.campaign_id = n.campaign_id WHERE n.campaign_id=?i AND d.lang_code = ?s GROUP BY e.newsletter_id", $_REQUEST['campaign_id'], DESCR_SL);
    Registry::get('view')->assign('campaign', $campaign);
    Registry::get('view')->assign('campaign_stats', $stats);
}
function fn_delete_campaigns($campaign_ids)
{
    db_query("DELETE FROM ?:common_descriptions WHERE object_id IN (?n) AND object_holder = 'newsletter_campaigns'", $campaign_ids);
    db_query("DELETE FROM ?:newsletter_campaigns WHERE campaign_id IN (?n)", $campaign_ids);
    db_query("DELETE FROM ?:newsletter_links WHERE campaign_id IN (?n)", $campaign_ids);
    db_query("UPDATE ?:newsletters SET campaign_id = 0 WHERE campaign_id IN (?n)", $campaign_ids);
示例#2
0
    $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']);
    }
    return array(CONTROLLER_STATUS_REDIRECT, "newsletters.manage");
} elseif ($mode == 'delete_campaign') {
    if (!empty($_REQUEST['campaign_id'])) {