/** * getSaveData() * overwrite FrontendModule::getSaveData */ public function getSaveData($mData) { $oFlash = new Flash($mData); $oFlash->checkForValue(self::DISPLAY_MODE, 'display_mode_required'); if ($mData['display_mode'] !== 'newsletter_unsubscribe') { $oFlash->checkForValue('subscriber_group_id', 'subscriber_group_required'); } $oFlash->finishReporting(); if ($oFlash->hasMessages()) { throw new ValidationException($oFlash); } return parent::getSaveData($mData); }
/** prepareForSending() * * @param array of mail_group values [int subscriber_group_id, string external_mail_group] * @param string SenderMail * @param string SenderName * * description: prepare batch processing * • validates send form * * @return int batch count */ public function prepareForSending($aMailGroups = null, $sSenderEmail = null, $sSenderName = null) { if (!$sSenderEmail) { $sSenderEmail = LinkUtil::getDomainHolderEmail('newsletter'); } $this->sSenderEmail = $sSenderEmail; if ($sSenderName !== $sSenderEmail) { $this->sSenderName = $sSenderName; } $this->aRecipients = self::getSubscribersBySubscriberGroupMembership($aMailGroups); FilterModule::getFilters()->handleMailGroupsRecipients($aMailGroups, array(&$this->aRecipients)); // Validate prepareForSending $sError = null; if ($aMailGroups === null) { $sError = 'mail_group_required'; } else { if (count($this->aRecipients) === 0) { $sError = 'no_recipients_available'; } } $oFlash = new Flash(); if ($sError) { $oFlash->addMessage($sError); } $oFlash->finishReporting(); if ($oFlash->hasMessages()) { throw new ValidationException($oFlash); } $this->aMailGroups = is_array($aMailGroups) ? $aMailGroups : array($aMailGroups); return ceil(count($this->aRecipients) / $this->iBatchSize); }