function newsletters_user_register(&$pObject) { if (!empty($_REQUEST['newsletter_optin'])) { // hidden flag to indicate at least one newsletter was displayed require_once NEWSLETTERS_PKG_PATH . 'BitNewsletter.php'; require_once NEWSLETTERS_PKG_PATH . 'BitNewsletterMailer.php'; if (!empty($_REQUEST['unsub_all'])) { $subHash['unsubscribe_all'] = 'y'; } else { $newsletter = new BitNewsletter(); $pParamHash = array(); $newsletters = $newsletter->getList($pParamHash); foreach (array_keys($newsletters) as $nlContentId) { if (empty($_REQUEST['nl_content_id']) || !in_array($nlContentId, $_REQUEST['nl_content_id'])) { $subHash['unsub_content'][] = $nlContentId; $subHash['unsubscribe_all'] = NULL; } } } if (!empty($subHash)) { $subHash['sub_lookup'] = array('user_id' => $pObject->mUserId); BitNewsletterMailer::storeSubscriptions($subHash); } } }
$subHash['unsubscribe_all'] = 'y'; $subHash['unsub_content'] = array_keys($newsletters); } else { $subHash['unsubscribe_all'] = NULL; foreach (array_keys($newsletters) as $nlContentId) { if (empty($_REQUEST['nl_content_id']) || !in_array($nlContentId, $_REQUEST['nl_content_id'])) { $subHash['unsub_content'][] = $nlContentId; } } } if (BitNewsletterMailer::storeSubscriptions($subHash)) { $feedback['success'] = tra("Your subscriptions were updated."); } else { $feedback['error'] = tra("Subscriptions were not updated."); } $unsubs = BitNewsletterMailer::getUnsubscriptions($lookup); } if (isset($_REQUEST["subscribe"]) && !empty($_REQUEST["email"])) { $gBitSystem->verifyPermission('p_newsletters_subscribe'); $feedback['success'] = tra("Thanks for your subscription. You will receive an email soon to confirm your subscription. No newsletters will be sent to you until the subscription is confirmed."); if (!$gBitUser->hasPermission('p_subscribe_email')) { $_REQUEST["email"] = $gBitUser->mInfo['email']; } // Now subscribe the email address to the newsletter $gContent->subscribe($_REQUEST["email"], TRUE, TRUE); } foreach ($unsubs as $sub) { if (!empty($sub['unsubscribe_all'])) { $subInfo['unsubscribe_all'] = TRUE; break; }
$_REQUEST['edit'] = $gContent->mInfo['data']; // $_REQUEST["preview"] = 1; } $gBitSmarty->assign('preview', 'n'); $gBitSmarty->assign('presend', 'n'); $gBitSmarty->assign('emited', 'n'); $validated = !empty($_REQUEST["validated"]) ? TRUE : FALSE; if ($gContent->isValid() && isset($_REQUEST['preview']) && isset($_REQUEST['send_group'])) { $recipients = $gContent->getRecipients($_REQUEST['send_group'], $validated, !empty($_REQUEST['test_mode'])); $gBitSmarty->assignByRef('recipientList', $recipients); $gBitSmarty->assign('validated', $validated); $gBitSmarty->assign('sending', TRUE); } elseif ($gContent->isValid() && isset($_REQUEST["send"])) { if ($emails = $gContent->getRecipients($_REQUEST['send_group'], $validated, !empty($_REQUEST['test_mode']))) { global $gBitNewsletterMailer; $gBitNewsletterMailer = new BitNewsletterMailer(); $queueCount = $gBitNewsletterMailer->queueRecipients($gContent->mContentId, $gContent->mNewsletter->mContentId, $emails, !empty($_REQUEST['test_mode'])); $feedback['success'] = $queueCount . ' ' . tra('emails were queued to be sent:') . ' ' . $gContent->getTitle(); $gContent->mEditionId = NULL; } else { $feedback['error'] = tra('No emails were queued.'); } } if ($gContent->isValid()) { $groupListHash = array(); $groups = $gBitUser->getAllGroups($groupListHash); $groups['send_subs']['group_name'] = 'Send to subscribers'; $gBitSmarty->assignByRef('groupList', $groups); } else { $listHash = array(); $editions = $gContent->getList($listHash);
<?php if (!empty($_REQUEST['batch_command']) && $_REQUEST['batch_command'] == 'send' && !empty($_REQUEST['queue_id'])) { $_REQUEST['uri_mode'] = TRUE; } require_once '../../kernel/setup_inc.php'; $gBitSystem->verifyPermission('p_mail_admin'); $gBitSystem->verifyPermission('newsletters'); require_once NEWSLETTERS_PKG_PATH . 'BitNewsletterMailer.php'; global $gBitNewsletterMailer; $gBitNewsletterMailer = new BitNewsletterMailer(); if (!empty($_REQUEST['batch_command']) && !empty($_REQUEST['queue_id'])) { if ($_REQUEST['batch_command'] == 'delete') { foreach ($_REQUEST['queue_id'] as $qId) { $gBitNewsletterMailer->expungeQueueRow($qId); } } elseif ($_REQUEST['batch_command'] == 'send' && !empty($_REQUEST['queue_id'])) { foreach ($_REQUEST['queue_id'] as $queueId) { $gBitNewsletterMailer->sendQueue($queueId); } } } if (empty($_REQUEST['batch_command']) || $_REQUEST['batch_command'] != 'send') { $listHash = array(); $queue = $gBitNewsletterMailer->getQueue($listHash); $gBitSmarty->assignByRef('queue', $queue); $gBitSystem->display('bitpackage:newsletters/mail_queue.tpl', NULL, array('display_mode' => 'admin')); }
<?php global $gShellScript; $gShellScript = TRUE; $_REQUEST['uri_mode'] = TRUE; /** * required setup */ if (!empty($argc)) { $_SERVER["SERVER_NAME"] = ''; // reduce feedback for command line to keep log noise way down define('BIT_PHP_ERROR_REPORTING', E_ALL ^ E_NOTICE ^ E_WARNING); } require_once '../../kernel/setup_inc.php'; if ($gBitSystem->isPackageActive('newsletters')) { require_once NEWSLETTERS_PKG_PATH . 'BitNewsletterMailer.php'; global $gBitNewsletterMailer; $gBitNewsletterMailer = new BitNewsletterMailer(); $gBitNewsletterMailer->tendQueue(); }
/** * Copyright (c) 2005 bitweaver.org * All Rights Reserved. See below for details and a complete list of authors. * Licensed under the GNU LESSER GENERAL PUBLIC LICENSE. See http://www.gnu.org/copyleft/lesser.html for details * * created 2005/12/10 * * @package newsletters * @author spider <*****@*****.**> */ /** * Initialization */ require_once '../kernel/setup_inc.php'; include_once NEWSLETTERS_PKG_PATH . 'BitNewsletterMailer.php'; if (isset($_REQUEST["sub"]) || $gBitUser->isRegistered()) { if (isset($_REQUEST["sub"]) && strlen($_REQUEST["sub"]) == 32 && ($subInfo = BitNewsletterMailer::lookupSubscription(array('url_code' => $_REQUEST["sub"])))) { BitNewsletterMailer::trackMail($subInfo['url_code']); } } // open the file in a binary mode $trackImage = $gBitSystem->getConfig('newsletter_tracking_image', NEWSLETTERS_PKG_PATH . 'images/track.gif'); if ($fp = fopen($trackImage, 'rb')) { // send the right headers header("Content-Type: image/png"); header("Content-Length: " . filesize($trackImage)); // dump the picture and stop the script fpassthru($fp); } exit;