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(); }
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); } } }
} $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); }