public function stopRestartNewsletter(&$context)
 {
     if (substr($_POST['action']['save'], 0, 12) == 'enm-restart:') {
         $vars = explode(":", $_POST['action']['save']);
         $field_id = $vars[1];
         $entry_id = $context['entry']->get('id');
         $data = $this->_getEntryData($field_id, $entry_id);
         if (!empty($data)) {
             try {
                 $newsletter = EmailNewsletterManager::create($data['newsletter_id']);
                 $array = array('template' => is_object($newsletter->getTemplate()) ? $newsletter->getTemplate()->getHandle() : NULL, 'sender' => is_object($newsletter->getSender()) ? $newsletter->getSender()->getHandle() : NULL, 'recipients' => implode(', ', $newsletter->getRecipientGroups(false, true)));
                 $news = EmailNewsletterManager::save($array);
                 $context['entry']->setData($field_id, array('author_id' => Administration::instance()->Author->get('id'), 'entry_id' => $entry_id, 'newsletter_id' => $news->getId()));
                 //$news->start();
             } catch (Exception $e) {
                 Administration::instance()->customError(__('Error restarting email newsletter'), __($e->getMessage()));
             }
         }
     }
     if (substr($_POST['action']['save'], 0, 9) == 'enm-stop:') {
         $vars = explode(":", $_POST['action']['save']);
         $field_id = $vars[1];
         $entry_id = $context['entry']->get('id');
         $data = $this->_getEntryData($field_id, $entry_id);
         if (!empty($data)) {
             try {
                 $newsletter = EmailNewsletterManager::create($data['newsletter_id']);
                 $newsletter->stop();
             } catch (Exception $e) {
                 Administration::instance()->customError(__('Error stopping email newsletter'), __($e->getMessage()));
             }
         }
     }
     if (substr($_POST['action']['save'], 0, 10) == 'enm-pause:') {
         $vars = explode(":", $_POST['action']['save']);
         $field_id = $vars[1];
         $entry_id = $context['entry']->get('id');
         $data = $this->_getEntryData($field_id, $entry_id);
         if (!empty($data)) {
             try {
                 $newsletter = EmailNewsletterManager::create($data['newsletter_id']);
                 $newsletter->pause();
             } catch (Exception $e) {
                 Administration::instance()->customError(__('Error pausing email newsletter'), __($e->getMessage()));
             }
         }
     }
 }
 /**
  * Prepares field values for database.
  */
 public function processRawFieldData($data, &$status, &$message = NULL, $simulate = false, $entry_id = NULL)
 {
     $status = self::__OK__;
     if (empty($data)) {
         return NULL;
     }
     $entry_data = array();
     if ($entry_id) {
         // grab existing entry data
         $entry_data = Symphony::Database()->fetchRow(0, sprintf("SELECT *\n\t\t\t\t\t FROM `tbl_entries_data_%d`\n\t\t\t\t\t WHERE `entry_id` = %d\n\t\t\t\t\t LIMIT 1", $this->get('id'), $entry_id));
     }
     if (!is_array($data['recipient_groups'])) {
         $data['recipient_groups'] = array();
     }
     // Prevent DOM hacking: When saving newsletter data, we __must__
     // check if properties are valid (i.e. configured in the section
     // editor); otherwise it would be super-simple to send with
     // unwanted or invalid properties;
     $template = NULL;
     if (in_array($data['template'], explode(',', $this->get('templates')))) {
         $template = $data['template'];
     }
     $sender = NULL;
     if (in_array($data['sender'], explode(',', $this->get('senders')))) {
         $sender = $data['sender'];
     }
     $recipient_groups = array();
     foreach ($data['recipient_groups'] as $group) {
         if (in_array($group, explode(',', $this->get('recipient_groups')))) {
             $recipient_groups[] = $group;
         }
     }
     // save
     $author_id = 0;
     if (Symphony::Engine() instanceof Administration) {
         $author_id = Administration::instance()->Author->get('id');
     } elseif (Symphony::Engine() instanceof Frontend && Symphony::ExtensionManager()->fetchStatus('members') == EXTENSION_ENABLED) {
         $Members = Symphony::ExtensionManager()->create('members');
         $author_id = $Members->getMemberDriver()->getMemberID();
     }
     $newsletter = EmailNewsletterManager::save(array('id' => $entry_data['newsletter_id'], 'template' => $template, 'recipients' => implode(', ', $recipient_groups), 'sender' => $sender, 'pseudo_root' => URL));
     $result = array('author_id' => $author_id, 'newsletter_id' => $newsletter->getId());
     return $result;
 }