示例#1
0
 /**
  *
  * @return void
  */
 public function postProcess()
 {
     if ($this->_action & CRM_Core_Action::DELETE) {
         CRM_Mailing_BAO_Mailing::del($this->_mailingId);
     } elseif ($this->_action & CRM_Core_Action::DISABLE) {
         CRM_Mailing_BAO_MailingJob::cancel($this->_mailingId);
     } elseif ($this->_action & CRM_Core_Action::RENEW) {
         //set is_archived to 1
         CRM_Core_DAO::setFieldValue('CRM_Mailing_DAO_Mailing', $this->_mailingId, 'is_archived', TRUE);
     }
 }
示例#2
0
 /**
  * Run this page (figure out the action needed and perform it).
  */
 public function run()
 {
     $this->preProcess();
     $newArgs = func_get_args();
     // since we want only first function argument
     $newArgs = $newArgs[0];
     if (isset($_GET['runJobs']) || CRM_Utils_Array::value('2', $newArgs) == 'queue') {
         $mailerJobSize = Civi::settings()->get('mailerJobSize');
         CRM_Mailing_BAO_MailingJob::runJobs_pre($mailerJobSize);
         CRM_Mailing_BAO_MailingJob::runJobs();
         CRM_Mailing_BAO_MailingJob::runJobs_post();
     }
     $this->_sortByCharacter = CRM_Utils_Request::retrieve('sortByCharacter', 'String', $this);
     // CRM-11920 all should set sortByCharacter to null, not empty string
     if (strtolower($this->_sortByCharacter) == 'all' || !empty($_POST)) {
         $this->_sortByCharacter = NULL;
         $this->set('sortByCharacter', NULL);
     }
     if (CRM_Utils_Array::value(3, $newArgs) == 'unscheduled') {
         $this->_unscheduled = TRUE;
     }
     $this->set('unscheduled', $this->_unscheduled);
     if (CRM_Utils_Array::value(3, $newArgs) == 'archived') {
         $this->_archived = TRUE;
     }
     $this->set('archived', $this->_archived);
     if (CRM_Utils_Array::value(3, $newArgs) == 'scheduled') {
         $this->_scheduled = TRUE;
     }
     $this->set('scheduled', $this->_scheduled);
     $this->_createdId = CRM_Utils_Request::retrieve('cid', 'Positive', $this, FALSE, 0);
     if ($this->_createdId) {
         $this->set('createdId', $this->_createdId);
     }
     if ($this->_sms) {
         $this->set('sms', $this->_sms);
     }
     $session = CRM_Core_Session::singleton();
     $context = $session->readUserContext();
     if ($this->_action & CRM_Core_Action::DISABLE) {
         if (CRM_Utils_Request::retrieve('confirmed', 'Boolean', $this)) {
             CRM_Mailing_BAO_MailingJob::cancel($this->_mailingId);
             CRM_Utils_System::redirect($context);
         } else {
             $controller = new CRM_Core_Controller_Simple('CRM_Mailing_Form_Browse', ts('Cancel Mailing'), $this->_action);
             $controller->setEmbedded(TRUE);
             $controller->run();
         }
     } elseif ($this->_action & CRM_Core_Action::DELETE) {
         if (CRM_Utils_Request::retrieve('confirmed', 'Boolean', $this)) {
             // check for action permissions.
             if (!CRM_Core_Permission::checkActionPermission('CiviMail', $this->_action)) {
                 CRM_Core_Error::fatal(ts('You do not have permission to access this page.'));
             }
             CRM_Mailing_BAO_Mailing::del($this->_mailingId);
             CRM_Utils_System::redirect($context);
         } else {
             $controller = new CRM_Core_Controller_Simple('CRM_Mailing_Form_Browse', ts('Delete Mailing'), $this->_action);
             $controller->setEmbedded(TRUE);
             $controller->run();
         }
     } elseif ($this->_action & CRM_Core_Action::RENEW) {
         // archive this mailing, CRM-3752.
         if (CRM_Utils_Request::retrieve('confirmed', 'Boolean', $this)) {
             // set is_archived to 1
             CRM_Core_DAO::setFieldValue('CRM_Mailing_DAO_Mailing', $this->_mailingId, 'is_archived', TRUE);
             CRM_Utils_System::redirect($context);
         } else {
             $controller = new CRM_Core_Controller_Simple('CRM_Mailing_Form_Browse', ts('Archive Mailing'), $this->_action);
             $controller->setEmbedded(TRUE);
             $controller->run();
         }
     }
     $selector = new CRM_Mailing_Selector_Browse();
     $selector->setParent($this);
     $controller = new CRM_Core_Selector_Controller($selector, $this->get(CRM_Utils_Pager::PAGE_ID), $this->get(CRM_Utils_Sort::SORT_ID) . $this->get(CRM_Utils_Sort::SORT_DIRECTION), CRM_Core_Action::VIEW, $this, CRM_Core_Selector_Controller::TEMPLATE);
     $controller->setEmbedded(TRUE);
     $controller->run();
     // hack to display results as per search
     $rows = $controller->getRows($controller);
     $this->assign('rows', $rows);
     $urlParams = 'reset=1';
     $urlString = 'civicrm/mailing/browse';
     if ($this->get('sms')) {
         $urlParams .= '&sms=1';
     }
     if (CRM_Utils_Array::value(3, $newArgs) == 'unscheduled') {
         $urlString .= '/unscheduled';
         $urlParams .= '&scheduled=false';
         $this->assign('unscheduled', TRUE);
     } elseif (CRM_Utils_Array::value(3, $newArgs) == 'archived') {
         $urlString .= '/archived';
         $this->assign('archived', TRUE);
     } elseif (CRM_Utils_Array::value(3, $newArgs) == 'scheduled') {
         $urlString .= '/scheduled';
         $urlParams .= '&scheduled=true';
     }
     if ($this->get('sms')) {
         CRM_Utils_System::setTitle(ts('Find Mass SMS'));
     }
     $crmRowCount = CRM_Utils_Request::retrieve('crmRowCount', 'Integer', CRM_Core_DAO::$_nullObject);
     $crmPID = CRM_Utils_Request::retrieve('crmPID', 'Integer', CRM_Core_DAO::$_nullObject);
     if ($crmRowCount || $crmPID) {
         $urlParams .= '&force=1';
         $urlParams .= $crmRowCount ? '&crmRowCount=' . $crmRowCount : '';
         $urlParams .= $crmPID ? '&crmPID=' . $crmPID : '';
     }
     $crmSID = CRM_Utils_Request::retrieve('crmSID', 'Integer', CRM_Core_DAO::$_nullObject);
     if ($crmSID) {
         $urlParams .= '&crmSID=' . $crmSID;
     }
     $session = CRM_Core_Session::singleton();
     $url = CRM_Utils_System::url($urlString, $urlParams);
     $session->pushUserContext($url);
     // CRM-6862 -run form cotroller after
     // selector, since it erase $_POST
     $this->search();
     return parent::run();
 }
 /**
  * Cancel mailing jobs for a CiviCRM mailing with the provided ID
  *
  * @param int $crmMailingId CiviCRM mailing ID
  */
 protected static function cancelMailingJobs($crmMailingId)
 {
     CRM_Mailing_BAO_MailingJob::cancel($crmMailingId);
 }