예제 #1
0
 /**
  * ADMIN STUFF
  *
  * @author Philipp Staender
  */
 function send()
 {
     if (!$this->isAjax()) {
         exit("<h2>send() only via ajax-request</h2>Security issue...");
     }
     $id = (int) Director::urlParam("ID");
     $count = (int) Director::urlParam("OtherID");
     if (!($id > 0 && $count > 0)) {
         exit('<h2>Syntax</h2>' . $this->URL() . '/send/$newsletter_campaign_id/$numbers_of_sendings_per_request/');
     }
     if ($camp = DataObject::get_by_id("NewsletterCampaign", $id)) {
         $newsletterCategory = DataObject::get_by_id("NewsletterCategory", $camp->NewsletterCategoryID);
         if ($recievers = DataObject::get("NewsletterReciever", "NewsletterID = {$id} AND Send = 0")) {
             //send emails
             $i = 0;
             //to each reciever
             foreach ($recievers as $r) {
                 if ($i < $count) {
                     //send only, if sended items of this session are smaller than given in the url
                     $content = NewsletterCampaign::getRenderedNewsletterContent($camp, $r);
                     if (DataObject::get("NewsletterBlacklist", "Email LIKE '" . $r->Email . "' AND NewsletterCategoryID = " . $camp->NewsletterCategoryID)) {
                         $r->Send = 2;
                         $r->write();
                         //do not send
                     } else {
                         $email = new Email($camp->sendFromEmail(), $r->Email, $camp->Title, $content);
                         if (NewsletterHolder::$emailBodyTemplate) {
                             $email->setTemplate(NewsletterHolder::$emailBodyTemplate);
                         }
                         if ($email->send()) {
                             $r->Send = 1;
                             $r->write();
                             $i++;
                         }
                     }
                 }
             }
             exit($i . "");
         }
     }
     return array();
 }
예제 #2
0
 function index()
 {
     exit(NewsletterCampaign::getRenderedNewsletterContent($this->dataRecord));
 }