private function build_form($request)
 {
     $id = $request->get_int('id', 0);
     $archive_exist = PersistenceContext::get_querier()->count(NewsletterSetup::$newsletter_table_archives, "WHERE id = '" . $id . "'") > 0;
     if (!$archive_exist) {
         $controller = new UserErrorController(LangLoader::get_message('error', 'status-messages-common'), $this->lang['error-archive-not-existed']);
         DispatchManager::redirect($controller);
     }
     $id_stream = PersistenceContext::get_querier()->get_column_value(NewsletterSetup::$newsletter_table_archives, 'stream_id', "WHERE id = '" . $id . "'");
     if (!NewsletterAuthorizationsService::id_stream($id_stream)->read_archives()) {
         NewsletterAuthorizationsService::get_errors()->read_archives();
     }
     $this->contents = NewsletterService::display_newsletter($id);
 }
 public function execute(HTTPRequestCustom $request)
 {
     $id = $request->get_int('id', 0);
     $id_stream = $request->get_int('id_stream', 0);
     if ($this->archive_exist($id) || $id_stream !== 0 && $id !== 0) {
         if (!NewsletterAuthorizationsService::id_stream($id_stream)->moderation_subscribers()) {
             NewsletterAuthorizationsService::get_errors()->moderation_archives();
         }
         NewsletterService::delete_archive($id);
         AppContext::get_response()->redirect($request->get_url_referrer() ? $request->get_url_referrer() : NewsletterUrlBuilder::archives($id_stream), LangLoader::get_message('newsletter.message.success.delete', 'common', 'newsletter'));
     } else {
         $controller = new UserErrorController(LangLoader::get_message('error', 'status-messages-common'), $this->lang['error-archive-not-existed']);
         DispatchManager::redirect($controller);
     }
 }
 public function get_data(HTMLForm $form, MemberExtendedField $member_extended_field)
 {
     $streams = array();
     foreach ($form->get_value($member_extended_field->get_field_name(), array()) as $field => $option) {
         $streams[] = $option->get_id();
     }
     if (is_array($streams)) {
         NewsletterService::update_subscriptions_member_registered($streams, $member_extended_field->get_user_id());
     }
     $field_name = $member_extended_field->get_field_name();
     $streams = $this->get_streams();
     if (!empty($streams)) {
         $array = array();
         foreach ($form->get_value($field_name) as $field => $option) {
             $array[] = $option->get_id();
         }
         return $this->serialise_value($array);
     }
     return '';
 }
 function send_html($mail_object, $message, $email_test = '')
 {
     global $_NEWSLETTER_CONFIG, $LANG, $Sql;
     $error_mailing_list = array();
     $message = stripslashes($message);
     $message = str_replace('"../', '"' . HOST . DIR . '/', $message);
     $message = NewsletterService::clean_html($message);
     $message = ContentSecondParser::export_html_text($message);
     if ($email_test == '') {
         $nbr = $Sql->count_table('newsletter', __LINE__, __FILE__);
         $Sql->query_inject("INSERT INTO " . PREFIX . "newsletter_arch (title,message,timestamp,type,nbr) VALUES('" . addslashes($mail_object) . "','" . addslashes($message) . "', '" . time() . "', 'html', '" . $nbr . "')", __LINE__, __FILE__);
         $mailing_list = array();
         $result = $Sql->query_while("SELECT id, mail \n\t\t\tFROM " . PREFIX . "newsletter \n\t\t\tORDER BY id", __LINE__, __FILE__);
         while ($row = $Sql->fetch_assoc($result)) {
             $mailing_list[] = array($row['id'], $row['mail']);
         }
         $Sql->query_close($result);
         $mail_sender = new Mail();
         $mail_sender->set_sender($_NEWSLETTER_CONFIG['sender_mail']);
         $mail_sender->set_mime(MIME_FORMAT_HTML);
         $mail_sender->set_object($mail_object);
         foreach ($mailing_list as $array_mail) {
             $mail_sender->set_recipients($array_mail[1]);
             $mail_sender->set_content(str_replace('[UNSUBSCRIBE_LINK]', '<br /><br /><a href="' . HOST . DIR . '/newsletter/newsletter.php?id=' . $array_mail[0] . '">' . $LANG['newsletter_unscubscribe_text'] . '</a><br /><br />', $message));
             if (!$mail_sender->send()) {
                 $error_mailing_list[] = $array_mail[1];
             }
         }
         return $error_mailing_list;
     } else {
         $mail_sender = new Mail();
         $mail_sender->set_sender($_NEWSLETTER_CONFIG['sender_mail']);
         $mail_sender->set_mime(MIME_FORMAT_HTML);
         $mail_sender->set_recipients($email_test);
         $mail_sender->set_content($message);
         $mail_sender->set_object($mail_object);
         $mail_sender->send();
         return true;
     }
 }
 private function build_form($request)
 {
     $field = $request->get_value('field', 'pseudo');
     $sort = $request->get_value('sort', 'top');
     $current_page = $request->get_int('page', 1);
     if (!NewsletterAuthorizationsService::id_stream($this->stream->get_id())->read_subscribers()) {
         NewsletterAuthorizationsService::get_errors()->read_subscribers();
     }
     $mode = $sort == 'top' ? 'ASC' : 'DESC';
     switch ($field) {
         case 'pseudo':
             $field_bdd = 'display_name';
             break;
         default:
             $field_bdd = 'display_name';
     }
     $subscribers_list = NewsletterService::list_subscribers_by_stream($this->stream->get_id());
     $nbr_subscribers = count($subscribers_list);
     $pagination = new ModulePagination($current_page, $nbr_subscribers, $this->nbr_subscribers_per_page);
     $pagination->set_url(NewsletterUrlBuilder::subscribers($this->stream->get_id(), $this->stream->get_rewrited_name(), $field, $sort, '%d'));
     if ($pagination->current_page_is_empty() && $current_page > 1) {
         $error_controller = PHPBoostErrors::unexisting_page();
         DispatchManager::redirect($error_controller);
     }
     $this->view->put_all(array('C_SUBSCRIBERS' => (int) $nbr_subscribers, 'C_SUBSCRIPTION' => NewsletterUrlBuilder::subscribe()->rel(), 'C_PAGINATION' => $pagination->has_several_pages(), 'SORT_PSEUDO_TOP' => NewsletterUrlBuilder::subscribers($this->stream->get_id(), $this->stream->get_rewrited_name(), 'pseudo', 'top', $current_page)->rel(), 'SORT_PSEUDO_BOTTOM' => NewsletterUrlBuilder::subscribers($this->stream->get_id(), $this->stream->get_rewrited_name(), 'pseudo', 'bottom', $current_page)->rel(), 'PAGINATION' => $pagination->display()));
     if (!empty($nbr_subscribers)) {
         $result = PersistenceContext::get_querier()->select("SELECT subscribers.id, subscribers.user_id, subscribers.mail, member.display_name, member.email\n\t\t\tFROM " . NewsletterSetup::$newsletter_table_subscribers . " subscribers\n\t\t\tLEFT JOIN " . DB_TABLE_MEMBER . " member ON subscribers.user_id = member.user_id\n\t\t\tWHERE subscribers.id IN :ids_list\n\t\t\tORDER BY " . $field_bdd . " " . $mode . "\n\t\t\tLIMIT :number_items_per_page OFFSET :display_from", array('ids_list' => array_keys($subscribers_list), 'number_items_per_page' => $pagination->get_number_items_per_page(), 'display_from' => $pagination->get_display_from()));
         while ($row = $result->fetch()) {
             $pseudo = $row['user_id'] > 0 ? '<a href="' . UserUrlBuilder::profile($row['user_id'])->rel() . '">' . $row['display_name'] . '</a>' : LangLoader::get_message('visitor', 'user-common');
             $mail = $row['user_id'] > 0 ? $row['email'] : $row['mail'];
             if (!empty($mail)) {
                 $this->view->assign_block_vars('subscribers_list', array('C_AUTH_MODO' => NewsletterAuthorizationsService::id_stream($this->stream->get_id())->moderation_subscribers(), 'C_EDIT' => $row['user_id'] == User::VISITOR_LEVEL, 'U_EDIT' => $row['user_id'] == User::VISITOR_LEVEL ? NewsletterUrlBuilder::edit_subscriber($row['id'])->rel() : '', 'U_DELETE' => NewsletterUrlBuilder::delete_subscriber($row['id'], $this->stream->get_id())->rel(), 'PSEUDO' => $pseudo, 'MAIL' => $mail));
             }
         }
         $result->dispose();
     }
 }
 private function save()
 {
     $delete_all_streams = $this->form->get_value('delete_all_streams');
     if ($delete_all_streams) {
         if (AppContext::get_current_user()->check_level(User::MEMBER_LEVEL)) {
             NewsletterService::unsubscriber_all_streams_member(AppContext::get_current_user()->get_id());
         } else {
             NewsletterService::unsubscriber_all_streams_visitor($this->form->get_value('mail'));
         }
     } else {
         $streams = array();
         foreach ($this->form->get_value('choice') as $field => $option) {
             $streams[] = $option->get_id();
         }
         if (AppContext::get_current_user()->check_level(User::MEMBER_LEVEL) && $streams !== '') {
             NewsletterService::update_subscriptions_member_registered($streams, AppContext::get_current_user()->get_id());
         } else {
             NewsletterService::update_subscriptions_visitor($streams, $this->form->get_value('mail'));
         }
     }
     NewsletterStreamsCache::invalidate();
 }
 protected function get_categories_manager()
 {
     return NewsletterService::get_streams_manager();
 }
 public function __construct()
 {
     parent::__construct(NewsletterService::get_streams_manager());
 }
 private function save()
 {
     $streams = array();
     foreach ($this->form->get_value('newsletter_choice') as $field => $option) {
         $streams[] = $option->get_id();
     }
     if (AppContext::get_current_user()->check_level(User::MEMBER_LEVEL)) {
         NewsletterService::update_subscriptions_member_registered($streams, AppContext::get_current_user()->get_id());
     } else {
         NewsletterService::update_subscriptions_visitor($streams, $this->form->get_value('mail'));
     }
 }
 public static function add_archive($stream_id, $subject, $contents, $language_type)
 {
     $columns = array('stream_id' => $stream_id, 'subject' => $subject, 'contents' => $contents, 'timestamp' => time(), 'language_type' => $language_type, 'nbr_subscribers' => count(NewsletterService::list_subscribers_by_stream($stream_id)));
     self::$db_querier->insert(NewsletterSetup::$newsletter_table_archives, $columns);
     NewsletterStreamsCache::invalidate();
 }
Example #11
0
 public function newsletterAction()
 {
     if ($this->_request->isPost()) {
         $uri = $this->_request->getPost('url');
         //         	echo '<pre>';
         // 			print_r($_POST);die;
         $serviceNewsletter = new NewsletterService();
         $data = array('nome' => $this->_request->getPost('nome'), 'email' => $this->_request->getPost('email'));
         $return = $serviceNewsletter->create($data);
         $html = new Zend_View();
         $html->setScriptPath(APPLICATION_PATH . '/modules/default/layouts/scripts/');
         $title = 'Newsletter | Resort Villa Hípica';
         $to = '*****@*****.**';
         $cc = '*****@*****.**';
         //     		$to = '*****@*****.**';
         //     		$cc = '*****@*****.**';
         $html->assign('title', $title);
         $html->assign('nome', $this->_request->getPost('nome'));
         $html->assign('email', $this->_request->getPost('email'));
         $mail = new Zend_Mail('utf-8');
         $bodyText = $html->render('newsletter.phtml');
         //     		$config = array('ssl' => 'tls',
         //     				'port' => 587,
         //     				'auth' => 'login',
         //     				'username' => '*****@*****.**',
         //     				'password' => 'villa@123');
         //     		$transport = new Zend_Mail_Transport_Smtp('127.0.0.1', $config);
         $mail->addTo($to);
         $mail->addCc($cc);
         $mail->setSubject($title);
         $mail->setFrom($this->_request->getPost('email'), $this->_request->getPost('nome'));
         $mail->setBodyHtml($bodyText);
         $send = $mail->send();
         if ($return > 0) {
             $this->_helper->flashMessenger->addMessage('true');
             $this->_redirect($uri);
         } else {
             $this->_helper->flashMessenger->addMessage('false');
             $this->_redirect($uri);
         }
     }
 }
Example #12
0
    }
    $nbr = $Sql->count_table("newsletter", __LINE__, __FILE__);
    $Template->assign_block_vars('write', array('TYPE' => $type, 'SUBSCRIBE_LINK' => $type == 'html' ? $LANG['newsletter_subscribe_link'] : '', 'NBR_SUBSCRIBERS' => $nbr, 'MESSAGE' => stripslashes($mail_contents), 'TITLE' => $mail_object, 'PREVIEW_BUTTON' => $type == 'bbcode' ? '<input value="' . $LANG['preview'] . '" onclick="XMLHttpRequest_preview();" class="submit" type="button">' : ''));
    $Template->assign_vars(array('L_WRITE_TYPE' => $LANG['newsletter_write_type'], 'L_TITLE' => $LANG['title'], 'L_MESSAGE' => $LANG['message'], 'L_SEND' => $LANG['newsletter_send'], 'L_NEWSLETTER_TEST' => $LANG['newsletter_test'], 'L_NBR_SUBSCRIBERS' => $LANG['newsletter_nbr_subscribers']));
    if ($type == 'bbcode') {
        $Template->assign_block_vars('write.bbcode_explain', array('L_WARNING' => $LANG['newsletter_bbcode_warning']));
    }
    if (empty($mail_object) && $send_test) {
        $Errorh->handler($LANG['require_title'], E_USER_WARNING);
    } elseif (empty($mail_contents) && $send_test) {
        $Errorh->handler($LANG['require_text'], E_USER_WARNING);
    } elseif ($send_test) {
        switch ($type) {
            case 'html':
                NewsletterService::send_html($mail_object, $mail_contents, $User->get_attribute('user_mail'));
                break;
            case 'bbcode':
                NewsletterService::send_bbcode($mail_object, $mail_contents, $User->get_attribute('user_mail'));
                break;
            default:
                NewsletterService::send_text($mail_object, $mail_contents, $User->get_attribute('user_mail'));
                break;
        }
        $Errorh->handler(sprintf($LANG['newsletter_test_sent'], $User->get_attribute('user_mail')), E_USER_NOTICE);
    }
} else {
    $Template->assign_block_vars('select_type', array('L_SELECT_TYPE' => $LANG['newsletter_select_type'], 'L_SELECT_TYPE_TEXT' => $LANG['newsletter_select_type_text'], 'L_SELECT_TYPE_EXPLAIN_TEXT' => $LANG['newsletter_select_type_text_explain'], 'L_SELECT_TYPE_BBCODE' => $LANG['select_type_bbcode'], 'L_SELECT_TYPE_EXPLAIN_BBCODE' => $LANG['newsletter_select_type_bbcode_explain'], 'L_SELECT_TYPE_HTML' => $LANG['select_type_html'], 'L_SELECT_TYPE_EXPLAIN_HTML' => $LANG['newsletter_select_type_html_explain'], 'L_NEXT' => $LANG['next']));
}
$Template->assign_vars(array('L_REQUIRE_TITLE' => $LANG['require_title'], 'L_REQUIRE_TEXT' => $LANG['require_text'], 'L_REQUIRE_MAIL' => $LANG['require_mail'], 'L_CONFIRM_DELETE' => addslashes($LANG['newsletter_confirm_delete_user']), 'L_MAIL' => $LANG['newsletter_email_address'], 'L_DELETE' => $LANG['delete']));
$Template->pparse('admin_newsletter');
require_once '../admin/admin_footer.php';
 public static function get_streams_manager()
 {
     if (self::$streams_manager === null) {
         $categories_items_parameters = new CategoriesItemsParameters();
         $categories_items_parameters->set_table_name_contains_items(NewsletterSetup::$newsletter_table_archives);
         self::$streams_manager = new CategoriesManager(NewsletterStreamsCache::load(), $categories_items_parameters);
         self::$streams_manager->get_categories_items_parameters()->set_field_name_id_category('stream_id');
     }
     return self::$streams_manager;
 }
 private function send_mail($type)
 {
     $streams = array();
     foreach ($this->form->get_value('newsletter_choice') as $field => $option) {
         $streams[] = $option->get_id();
     }
     NewsletterService::add_newsletter($streams, $this->form->get_value('title'), $this->form->get_value('contents'), $type);
 }