예제 #1
0
     }
 }
 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();
예제 #4
0
 function addNumber($number)
 {
     if (!eZRobinsonListEntry::inList($number, eZRobinsonListEntry::MOBILE)) {
         $this->numbers[] = $this->numberClean($number);
     }
 }
예제 #5
0
         }
     }
 } 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')) {
예제 #6
0
 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();
 }