Example #1
0
 /**
  * Manage Mailing List Task
  *
  * @return 	void
  */
 public function manageTask()
 {
     //get request vars
     $ids = Request::getVar('id', array());
     $id = isset($ids[0]) ? $ids[0] : null;
     //get request vars
     $this->view->id = $id;
     $this->view->filters['status'] = Request::getWord('status', 'active');
     $this->view->filters['sort'] = Request::getVar('sort', 'email ASC');
     //instantiate mailing list object
     $newsletterMailinglist = new MailList($this->database);
     $newsletterMailinglistEmail = new MailingListEmail($this->database);
     //load mailing list
     $this->view->list = $newsletterMailinglist->getLists($this->view->id);
     //load mailing list emails
     $this->view->list_emails = $newsletterMailinglist->getListEmails($this->view->id, null, $this->view->filters);
     //set errors if we have any
     if ($this->getError()) {
         $this->view->setError($this->getError());
     }
     //diplay list of mailing lists
     $this->view->setLayout('manage')->display();
 }
Example #2
0
 /**
  * Unsubscribe From Mailing Lists
  *
  * @return 	void
  */
 public function unsubscribeTask()
 {
     //set layout
     $this->view->setLayout('unsubscribe');
     //get request vars
     $email = urldecode(Request::getVar('e', ''));
     $token = Request::getVar('t', '');
     //parse token
     $recipient = Helper::parseMailingToken($token);
     //make sure mailing recipient email matches email param
     if ($email != $recipient->email) {
         App::redirect(Route::url('index.php?option=com_newsletter&task=subscribe'), Lang::txt('COM_NEWSLETTER_MAILINGLIST_UNSUBSCRIBE_LINK_ISSUE'), 'error');
         return;
     }
     //get newsletter mailing to get mailing list id mailing was sent to
     $newsletterMailing = new Mailing($this->database);
     $mailing = $newsletterMailing->getMailings($recipient->mid);
     //make sure we have a mailing object
     if (!is_object($mailing)) {
         App::redirect(Route::url('index.php?option=com_newsletter&task=subscribe'), Lang::txt('COM_NEWSLETTER_MAILINGLIST_UNSUBSCRIBE_NO_MAILING'), 'error');
         return;
     }
     //is the mailing list to the default hub mailing list?
     if ($mailing->lid == '-1') {
         $mailinglist = new stdClass();
         $mailinglist->id = '-1';
         $mailinglist->name = 'HUB Members';
         $mailinglist->description = Lang::txt('COM_NEWSLETTER_MAILINGLIST_UNSUBSCRIBE_DEFAULTLIST');
     } else {
         //load mailing list
         $newsletterMailinglist = new MailList($this->database);
         $mailinglist = $newsletterMailinglist->getLists($mailing->lid);
     }
     //check to make sure were not already unsubscribed
     $unsubscribedAlready = false;
     if ($mailing->lid == '-1') {
         $sql = "SELECT *\n\t\t\t\t\tFROM #__xprofiles as p\n\t\t\t\t\tWHERE p.email=" . $this->database->quote($recipient->email) . "\n\t\t\t\t\tAND p.mailPreferenceOption > " . $this->database->quote(0);
         $this->database->setQuery($sql);
         $profile = $this->database->loadObject();
         if (!is_object($profile) || $profile->uidNumber == '') {
             $unsubscribedAlready = true;
         }
     } else {
         //check to make sure email is on list
         $sql = "SELECT *\n\t\t\t\t\tFROM #__newsletter_mailinglist_emails as mle\n\t\t\t\t\tWHERE mle.mid=" . $this->database->quote($mailing->lid) . "\n\t\t\t\t\tAND mle.email=" . $this->database->quote($recipient->email) . "\n\t\t\t\t\tAND mle.status=" . $this->database->quote('active');
         $this->database->setQuery($sql);
         $list = $this->database->loadObject();
         if (!is_object($list) || $list->id == '') {
             $unsubscribedAlready = true;
         }
     }
     //are we unsubscribed already
     if ($unsubscribedAlready) {
         Notify::error(Lang::txt('COM_NEWSLETTER_MAILINGLIST_UNSUBSCRIBE_ALREADY_UNSUBSCRIBED', $mailinglist->name));
         if (User::isGuest()) {
             App::redirect(Route::url('index.php?option=com_newsletter'));
             return;
         }
         App::redirect(Route::url('index.php?option=com_newsletter&task=subscribe'));
         return;
     }
     //build title
     $this->_buildTitle();
     //build pathway
     $this->_buildPathway();
     //set vars for view
     $this->view->title = $this->_title;
     $this->view->mailinglist = $mailinglist;
     //output
     $this->view->display();
 }