} } if ($http->hasPostVariable('RobinsonlistEntry_Mobile')) { if ($http->postVariable('RobinsonlistEntry_Mobile') != "") { $empty_input = false; if ($http->hasPostVariable('AddButton')) { if (!eZRobinsonListEntry::inList($http->postVariable('RobinsonlistEntry_Mobile'), eZRobinsonListEntry::MOBILE)) { eZRobinsonListEntry::create($http->postVariable('RobinsonlistEntry_Mobile'), eZRobinsonListEntry::MOBILE, eZRobinsonListEntry::IMPORT_LOCAL); $done = true; } else { $warning = ezpI18n::tr('eznewsletter/robinson_user', 'Entered mobile phone number is already in the list.'); $done = true; } } else { if ($http->hasPostVariable('RemoveButton')) { if (eZRobinsonListEntry::inList($http->postVariable('RobinsonlistEntry_Mobile'), eZRobinsonListEntry::MOBILE, eZRobinsonListEntry::IMPORT_LOCAL)) { eZRobinsonListEntry::removeByValue($http->postVariable('RobinsonlistEntry_Mobile'), eZRobinsonListEntry::MOBILE, eZRobinsonListEntry::IMPORT_LOCAL); $done = true; } else { $warning = ezpI18n::tr('eznewsletter/robinson_user', 'Entered mobile phone number is not in the list.'); $done = true; } } } } } if (!$done && $warning == "") { $warning = ezpI18n::tr('eznewsletter/robinson_user', 'An error occured, no updates were made.'); } if ($done && $warning == "") { $warning = ezpI18n::tr('eznewsletter/robinson_user', 'Updates complete.');
static function create($value = '', $type = self::EMAIL, $global = self::IMPORT_LOCAL) { if (!eZRobinsonListEntry::inList($value)) { $rows = array('value' => $value, 'type' => $type, 'global' => $global); $entry = new eZRobinsonListEntry($rows); $entry->store(); return $entry; } else { return null; } }
} else { $labelMap = array(); foreach (array_keys($data) as $label) { $mapName = 'LabelMap_' . $label; if ($http->hasPostVariable($mapName)) { if ($http->postVariable($mapName) != '0') { $labelMap[$http->postVariable($mapName)] = $label; } } } if ($http->hasPostVariable('RowNum')) { $subscriptionListID = $subscriptionList->attribute('id'); foreach ($http->postVariable('RowNum') as $rowIndex) { if ($data[$labelMap['email']][$rowIndex] != "") { if (!eZSubscription::fetchByEmailSubscriptionListID($data[$labelMap['email']][$rowIndex], $subscriptionListID)) { if (!eZRobinsonListEntry::inList($data[$labelMap['email']][$rowIndex])) { $subscription = eZSubscription::create($subscriptionListID, $data[$labelMap['firstname']][$rowIndex], $data[$labelMap['name']][$rowIndex], $data[$labelMap['mobile']][$rowIndex], $data[$labelMap['email']][$rowIndex]); $subscription->setAttribute('status', eZSubscription::StatusApproved); $subscription->publish(); } } } } } $http->removeSessionVariable('CSVData'); return $Module->redirectToView('subscription_list', array($subscriptionList->attribute('url_alias'))); } } } } $data = array();
function addNumber($number) { if (!eZRobinsonListEntry::inList($number, eZRobinsonListEntry::MOBILE)) { $this->numbers[] = $this->numberClean($number); } }
} } } else { $password = false; if ($subscriptionList->attribute('require_password')) { if ($http->postVariable('Password1') != 'password' && $http->postVariable('Password1') === $http->postVariable('Password2') && strlen(trim($http->postVariable('Password1'))) > 0) { $password = $http->postVariable('Password1'); } else { $warning = ezi18n('eznewsletter/register_subscription', 'Passwords did not match.'); } } $firstname = $http->postVariable('Firstname'); $name = $http->postVariable('Name'); $email = $http->postVariable('Email'); $mobile = $http->postVariable('Mobile'); if (!eZRobinsonListEntry::inList($http->postVariable('Email')) && !eZRobinsonListEntry::inList($http->postVariable('Mobile'))) { if (!$firstname) { $warning = ezi18n('eznewsletter/register_subscription', 'You must enter a first name.'); } if (!$name) { $warning = ezi18n('eznewsletter/register_subscription', 'You must enter a last name.'); } if (!eZMail::validate($email)) { $warning = ezi18n('eznewsletter/register_subscription', 'You must provide a valid email address.'); } if (!$warning) { $subscription = $subscriptionList->registerSubscription($firstname, $name, $mobile, $email, $password); if (!$subscription) { $warning = ezi18n('eznewsletter/register_subscription', 'You\'re already a registered subscriber'); } else { if ($http->hasPostVariable('OutputFormat')) {
function buildSendList() { $mailsettings = eZINI::instance('bounce.ini'); $bounceCountStop = $mailsettings->variable('BounceSettings', 'BounceCount') ? $mailsettings->variable('BounceSettings', 'BounceCount') : 2; $db = eZDB::instance(); $db->begin(); $sql = "SELECT email, SUM(bounce_count) FROM ezsubscription GROUP BY email HAVING SUM(bounce_count) >=" . $bounceCountStop; $bouncedRecipients = $db->arrayQuery($sql); $bounceEmails = array(); foreach ($bouncedRecipients as $bounce) { if (!in_array($bounce['email'], $bounceEmails)) { $bounceEmails[] = $bounce['email']; } } $newsletterType = $this->attribute('newsletter_type'); foreach ($newsletterType->attribute('subscription_list') as $newsletterSubscriptionLink) { $offset = 0; $subscriptionList = $newsletterSubscriptionLink->attribute('subscription_object'); while ($subscriptionArray = $subscriptionList->fetchSubscriptionArray($offset, eZNewsletter::MaxSubscriptionFetchLimit, true, eZSubscription::VersionStatusPublished, array(array(eZSubscription::StatusApproved, eZSubscription::StatusConfirmed)))) { foreach ($subscriptionArray as $subscription) { if (!eZRobinsonListEntry::inList($subscription->attribute('email'), eZRobinsonListEntry::EMAIL)) { if (in_array($subscription->attribute('email'), $bounceEmails)) { //This recipient is in the bounce register, we set mailing on hold eZSendNewsletterItem::create($this->attribute('id'), $subscription->attribute('id'), eZSendNewsletterItem::SendStatusOnHold); } else { if (eZMail::validate($subscription->attribute('email'))) { eZSendNewsletterItem::create($this->attribute('id'), $subscription->attribute('id')); echo "."; } else { echo "Invalid email address: <" . $subscription->attribute('email') . ">" . "\n"; } } } else { echo "Ignoring <" . $subscription->attribute('email') . "> (in robinsonlist)" . "\n"; } } $offset += eZNewsletter::MaxSubscriptionFetchLimit; } } $db->commit(); }