From: Steve Sutton Date: Fri, 7 Jun 2019 20:15:03 +0000 (-0400) Subject: Adding an email template wrapper. using foundation email X-Git-Url: http://cvs2.gaslightmedia.com/gitweb/index.cgi?a=commitdiff_plain;h=507fd4602603632709d0c756fb3c647daae033e4;p=WP-Plugins%2Fglm-member-db-messages.git Adding an email template wrapper. using foundation email I setup a responsive template for the emails. This is to be wrapped around the message using the template image and title. --- diff --git a/classes/data/dataEmailTemplates.php b/classes/data/dataEmailTemplates.php index 43b4fd3..a8f51cd 100644 --- a/classes/data/dataEmailTemplates.php +++ b/classes/data/dataEmailTemplates.php @@ -126,14 +126,20 @@ class GlmDataEmailTemplates extends GlmDataAbstract 'use' => 'a' ), - // Contacts - 'contents' => array ( - 'field' => 'contents', + // Footer + 'footer' => array ( + 'field' => 'footer', 'type' => 'text', - 'required' => true, + 'required' => false, 'use' => 'a' ), + // image + 'image' => array( + 'field' => 'image', + 'type' => 'image', + 'use' => 'a' + ), ); } diff --git a/index.php b/index.php index b244b59..e80fd81 100644 --- a/index.php +++ b/index.php @@ -44,7 +44,9 @@ if (!defined('ABSPATH')) { * version from this plugin. */ define('GLM_MEMBERS_MESSAGES_PLUGIN_VERSION', '0.0.1'); -define('GLM_MEMBERS_MESSAGES_PLUGIN_DB_VERSION', '0.0.3'); + +// DB Version +define('GLM_MEMBERS_MESSAGES_PLUGIN_DB_VERSION', '0.0.4'); // This is the minimum version of the GLM Members DB plugin require for this plugin. define('GLM_MEMBERS_MESSAGES_PLUGIN_MIN_MEMBERS_REQUIRED_VERSION', '2.8.0'); diff --git a/models/admin/ajax/newsletter.php b/models/admin/ajax/newsletter.php new file mode 100644 index 0000000..b7e1a7a --- /dev/null +++ b/models/admin/ajax/newsletter.php @@ -0,0 +1,129 @@ + + * @license PHP Version 3.0 {@link http://www.php.net/license/3_0.txt} + */ +class GlmMembersAdmin_ajax_newsletter extends GlmDataEmailMessages +{ + /** + * WordPress Database Object + * + * @var $wpdb + * @access public + */ + public $wpdb; + /** + * Plugin Configuration Data + * + * @var $config + * @access public + */ + public $config; + + /* + * Constructor + * + * This contructor sets up this model. At this time that only includes + * storing away the WordPress data object. + * + * @return object Class object + * + */ + public function __construct ( $wpdb, $config ) + { + + // Save WordPress Database object + $this->wpdb = $wpdb; + + // Save plugin configuration object + $this->config = $config; + + // Run constructor for members data class + parent::__construct( false, false ); + + } + + /** + * modelAction + * + * @param bool $actionData Action Data passed to the modelAction + * + * @access public + * @return void + */ + public function modelAction($actionData = false) + { + $view = 'newsletter'; + $emailContent = ''; + $Templates = new GlmDataEmailTemplates( $this->wpdb, $this->config ); + if ( isset( $_REQUEST['message_id'] ) && $messageId = filter_var( $_REQUEST['message_id'], FILTER_VALIDATE_INT ) ) { + $message = $this->getEntry( $messageId ); + $emailData = array( + 'member' => array( + 'name' => 'Test Member', + ), + 'contact' => array( + 'fname' => 'John', + 'lname' => 'Doe', + ), + ); + $smarty = new smartyTemplateSupport(); + require GLM_MEMBERS_PLUGIN_SETUP_PATH . '/standardTemplateParams.php'; + if ( is_array( $emailData ) && count( $emailData ) > 0 ) { + foreach ( $emailData as $k => $d ) { + $smarty->templateAssign( $k, $d ); + } + } + $emailContent = $smarty->template->fetch( 'eval:' . wpautop( $message['message_body'] ) ); + } else { + $emailContent = '

Message Content would go here!

'; + } + if ( isset( $_REQUEST['id'] ) && $id = filter_var( $_REQUEST['id'], FILTER_VALIDATE_INT ) ) { + $template = $Templates->getEntry( $id ); + } + $tData = array( + 'image' => $template['image'], + 'content' => $emailContent, + 'footer' => $template['footer'], + 'templateName' => $template['name'], + ); + + // Load Smarty Template support + $smarty = new smartyTemplateSupport(); + + $viewPath = GLM_MEMBERS_MESSAGES_PLUGIN_PATH . '/views'; + $smarty->template->setTemplateDir( $viewPath ); + + if ( is_array( $tData ) && count( $tData ) > 0 ) { + foreach ( $tData as $k => $d ) { + $smarty->templateAssign( $k, $d ); + } + } + + // Add standard parameters + require GLM_MEMBERS_PLUGIN_SETUP_PATH . '/standardTemplateParams.php'; + + $viewFile = 'email/messages/' . $view . '.html'; + + // Generate output from model data and view + $output = $smarty->template->fetch( $viewFile ); + echo $output; + exit; + } +} diff --git a/models/admin/messages/index.php b/models/admin/messages/index.php index e32aee3..0636441 100644 --- a/models/admin/messages/index.php +++ b/models/admin/messages/index.php @@ -99,9 +99,11 @@ class GlmMembersAdmin_messages_index extends GlmDataEmailMessages */ public function modelAction ( $actionData = false ) { - $view = 'index'; - $success = true; - $option = ''; + $view = 'index'; + $success = true; + $option = ''; + $option2 = false; + $viewPath = 'admin/messages/'; if ( isset( $_REQUEST['option'] ) ) { $option = $_REQUEST['option']; @@ -147,6 +149,15 @@ class GlmMembersAdmin_messages_index extends GlmDataEmailMessages if ( isset( $_REQUEST['filterMemberCity'] ) && $filterMemberCity = filter_var( $_REQUEST['filterMemberCity'], FILTER_VALIDATE_INT) ) { $whereParts[] = " T.id IN ( SELECT member FROM " . GLM_MEMBERS_PLUGIN_DB_PREFIX . "member_info WHERE city = " . $filterMemberCity . ")"; } + if ( isset( $_REQUEST['filterMemberCounty'] ) && $filterMemberCounty = filter_var( $_REQUEST['filterMemberCounty'], FILTER_VALIDATE_INT) ) { + $whereParts[] = " T.id IN ( SELECT member FROM " . GLM_MEMBERS_PLUGIN_DB_PREFIX . "member_info WHERE county = " . $filterMemberCounty . ")"; + } + if ( isset( $_REQUEST['filterMemberState'] ) && $filterMemberState = filter_var( $_REQUEST['filterMemberState'], FILTER_SANITIZE_STRING) ) { + $whereParts[] = " T.id IN ( SELECT member FROM " . GLM_MEMBERS_PLUGIN_DB_PREFIX . "member_info WHERE state = '" . $filterMemberState . "')"; + } + if ( isset( $_REQUEST['filterMemberZip'] ) && $filterMemberZip = filter_var( $_REQUEST['filterMemberZip'], FILTER_SANITIZE_STRING) ) { + $whereParts[] = " T.id IN ( SELECT member FROM " . GLM_MEMBERS_PLUGIN_DB_PREFIX . "member_info WHERE zip = '" . $filterMemberZip . "')"; + } if ( isset( $_REQUEST['filterMemberAccess'] ) && $filterAccess = filter_var( $_REQUEST['filterMemberAccess'], FILTER_VALIDATE_INT) ) { $whereParts[] = " T.access = ".$filterAccess; @@ -267,6 +278,23 @@ class GlmMembersAdmin_messages_index extends GlmDataEmailMessages } + // Setup Counties + $counties = array(); + if ( $this->config['settings']['enable_counties'] ) { + require_once GLM_MEMBERS_PLUGIN_CLASS_PATH . '/data/dataCounties.php'; + $Counties = new GlmDataCounties( $this->wpdb, $this->config ); + $counties = $Counties->getList( null, 'name' ); + } + // Setup Cities + $cities = array(); + require_once GLM_MEMBERS_PLUGIN_CLASS_PATH . '/data/dataCities.php'; + $Cities = new GlmDataCities( $this->wpdb, $this->config ); + $cities = $Cities->getList( null, 'name' ); + // Setup States + $states = $this->config['states']; + + // echo '
$_REQUEST: ' . print_r( $_REQUEST, true ) . '
'; + $tData = array( 'messages' => $messages, 'mTypeSelected' => $mTypeSelected, @@ -275,15 +303,47 @@ class GlmMembersAdmin_messages_index extends GlmDataEmailMessages 'searchResults' => $searchResults, 'accessTypes' => $this->config['access'], 'statusTypes' => $this->config['status'], + 'states' => $states, + 'cities' => $cities, + 'counties' => $counties, ); break; - case 'listTemplates': - $view = 'listTemplates'; - $Templates = new GlmDataEmailTemplates( $this->wpdb, $this->config ); - $templates = $Templates->getList(); + case 'preview': + $view = 'newsletterFrame'; + $viewPath = 'email/messages/'; + $emailContent = ''; + $messageId = false; + $Templates = new GlmDataEmailTemplates( $this->wpdb, $this->config ); + if ( isset( $_REQUEST['message_id'] ) && $messageId = filter_var( $_REQUEST['message_id'], FILTER_VALIDATE_INT ) ) { + $message = $this->getEntry( $messageId ); + // echo '
$message: ' . print_r( $message, true ) . '
'; + $emailData = array( + 'member' => array( + 'name' => 'Test Member', + ), + 'contact' => array( + 'fname' => 'John', + 'lname' => 'Doe', + ), + ); + $smarty = new smartyTemplateSupport(); + require GLM_MEMBERS_PLUGIN_SETUP_PATH . '/standardTemplateParams.php'; + if ( is_array( $emailData ) && count( $emailData ) > 0 ) { + foreach ( $emailData as $k => $d ) { + $smarty->templateAssign( $k, $d ); + } + } + $emailContent = $smarty->template->fetch( 'eval:' . wpautop( $message['message_body'] ) ); + } else { + $emailContent = '

Message Content would go here!

'; + } + if ( isset( $_REQUEST['id'] ) && $id = filter_var( $_REQUEST['id'], FILTER_VALIDATE_INT ) ) { + $template = $Templates->getEntry( $id ); + } $tData = array( - 'templates' => $templates, + 'template_id' => $id, + 'message_id' => $messageId, ); break; @@ -304,16 +364,24 @@ class GlmMembersAdmin_messages_index extends GlmDataEmailMessages break; case 'updateTemplate': - echo '
'.print_r($_REQUEST, true).'
'; + $templateData['thisOption'] = 'listTemplates'; + // echo '
'.print_r($_REQUEST, true).'
'; $Templates = new GlmDataEmailTemplates( $this->wpdb, $this->config ); if ( isset( $_REQUEST['id'] ) && $id = filter_var( $_REQUEST['id'], FILTER_VALIDATE_INT ) ) { - $message = $Templates->updateEntry( $id ); + $template = $Templates->updateEntry( $id ); + // echo '
$template: ' . print_r( $template, true ) . '
'; } else { - $message = $Templates->insertEntry(); + $template = $Templates->insertEntry(); } - break; - + case 'listTemplates': + $view = 'listTemplates'; + $Templates = new GlmDataEmailTemplates( $this->wpdb, $this->config ); + $templates = $Templates->getList(); + $tData = array( + 'templates' => $templates, + ); + break; case 'editHtmlEmail': $view = 'editHtmlEmail'; @@ -331,13 +399,15 @@ class GlmMembersAdmin_messages_index extends GlmDataEmailMessages break; case 'updateHtmlEmail': + // echo '
$_REQUEST: ' . print_r( $_REQUEST, true ) . '
'; + // echo '
$_FILES: ' . print_r( $_FILES, true ) . '
'; + $templateData['thisOption'] = 'list'; $_REQUEST['last_updated'] = date( 'Y-m-d H:i:s' ); if ( isset( $_REQUEST['id'] ) && $id = filter_var( $_REQUEST['id'], FILTER_VALIDATE_INT ) ) { $message = $this->updateEntry( $id ); } else { $message = $this->insertEntry(); } - break; case 'list': $view = 'list'; @@ -361,7 +431,7 @@ class GlmMembersAdmin_messages_index extends GlmDataEmailMessages 'status' => $success, 'menuItemRedirect' => false, 'modelRedirect' => false, - 'view' => 'admin/messages/' . $view . '.html', + 'view' => $viewPath . $view . '.html', 'data' => $templateData ); @@ -377,11 +447,7 @@ class GlmMembersAdmin_messages_index extends GlmDataEmailMessages */ public function sendHtmlMessages( $data, $messageId ) { - // echo '
$messageId: ' . print_r( $messageId, true ) . '
'; - // echo '
$data: ' . print_r( $data, true ) . '
'; $message = $this->getEntry( $messageId ); - // echo '
$message: ' . print_r( $message, true ) . '
'; - // exit; $fromEmail = $message['from_email']; $fromName = $message['from_name']; $replyToEmail = $message['reply_to_email']; @@ -389,8 +455,6 @@ class GlmMembersAdmin_messages_index extends GlmDataEmailMessages if ( $messageId && $message && is_array( $data ) && !empty( $data ) ) { foreach ( $data as $memData ) { - // echo '
$memData: ' . print_r( $memData, true ) . '
'; - // get member contact data require_once GLM_MEMBERS_CONTACTS_PLUGIN_CLASS_PATH . '/data/dataContacts.php'; $Contacts = new GlmDataContacts( $this->wpdb, $this->config ); $whereParts = array(); @@ -399,7 +463,6 @@ class GlmMembersAdmin_messages_index extends GlmDataEmailMessages $whereParts[] = "T.email like '%@%'"; $where = implode( " AND ", $whereParts ); $memberContacts = $Contacts->getSimplified( $where ); - // echo '
$memberContacts: ' . print_r( $memberContacts, true ) . '
'; if ( $memberContacts && !empty( $memberContacts ) ) { foreach ( $memberContacts as $contact ) { $emailData = array( @@ -411,7 +474,8 @@ class GlmMembersAdmin_messages_index extends GlmDataEmailMessages 'lname' => $contact['lname'], ) ); - $messageBody = $this->generateHTML( $emailData, $message['message_body'], $message['template_id']['value'] ); + $messageBody = $this->generateHTML( $emailData, wpautop( $message['message_body'] ), $message['template_id']['value'] ); + echo '
$messageBody: ' . print_r( $messageBody, true ) . '
'; // Add this to the email_queue $this->wpdb->insert( @@ -477,13 +541,27 @@ class GlmMembersAdmin_messages_index extends GlmDataEmailMessages } } - $contents = $smarty->template->fetch( 'eval:' . $view ); + $emailContent = $smarty->template->fetch( 'eval:' . $view ); $Templates = new GlmDataEmailTemplates( $this->wpdb, $this->config ); $template = $Templates->getEntry( $template ); + $tData = array( + 'image' => $template['image'], + 'content' => $emailContent, + 'footer' => $template['footer'], + 'templateName' => $template['name'], + ); + if ( is_array( $tData ) && count( $tData ) > 0 ) { + foreach ( $tData as $k => $d ) { + $smarty->templateAssign( $k, $d ); + } + } - $smarty->templateAssign( 'contents', $contents ); - $out = $smarty->template->fetch( 'eval:' . $template['contents'] ); + $viewPath = GLM_MEMBERS_MESSAGES_PLUGIN_PATH . '/views'; + $smarty->template->setTemplateDir( $viewPath ); + $viewFile = 'email/messages/newsletter.html'; + $out = $smarty->template->fetch( $viewFile ); + // $out = $smarty->template->fetch( 'eval:' . $template['contents'] ); return $out; diff --git a/setup/databaseScripts/create_database_V0.0.3.sql b/setup/databaseScripts/create_database_V0.0.3.sql deleted file mode 100644 index b60e3f0..0000000 --- a/setup/databaseScripts/create_database_V0.0.3.sql +++ /dev/null @@ -1,64 +0,0 @@ --- Gaslight Media Members Database --- File Created: 5/24/19 --- Database Version: 0.0.2 --- Database Creation Script - Messages Add-On --- --- To permit each query below to be executed separately, --- all queries must be separated by a line with four dashes - --- email_messages -CREATE TABLE {prefix}email_messages ( - id INT NOT NULL AUTO_INCREMENT, - template_id INT NOT NULL, - archived BOOLEAN DEFAULT false, - from_email TINYTEXT NOT NULL, - from_name TINYTEXT NULL, - reply_to_email TINYTEXT NULL, - subject TINYTEXT NOT NULL, - last_updated DATETIME NOT NULL, - message_body TEXT NOT NULL, - PRIMARY KEY (id) -); - ----- - --- Logs -CREATE TABLE {prefix}email_logs ( - id INT NOT NULL AUTO_INCREMENT, - message_id INT NOT NULL, - to_email TINYTEXT NOT NULL, - subject TINYTEXT NOT NULL, - from_email TINYTEXT NOT NULL, - reply_to_email TINYTEXT NULL, - message_body TEXT NOT NULL, - send_date DATETIME NOT NULL, - email_read BOOLEAN DEFAULT false, - read_date DATETIME NULL, - PRIMARY KEY (id) -); - ----- - --- Queue -CREATE TABLE {prefix}email_queue ( - id INT NOT NULL AUTO_INCREMENT, - message_id INT NOT NULL, - to_email TINYTEXT NOT NULL, - subject TINYTEXT NOT NULL, - from_email TINYTEXT NOT NULL, - reply_to_email TINYTEXT NULL, - message_body TEXT NOT NULL, - queue_date DATETIME NOT NULL, - processed BOOLEAN DEFAULT false, - PRIMARY KEY (id) -); - ----- - --- Template -CREATE TABLE {prefix}email_templates ( - id INT NOT NULL AUTO_INCREMENT, - name TEXT NOT NULL, - contents TEXT NOT NULL, - PRIMARY KEY (id) -); diff --git a/setup/databaseScripts/create_database_V0.0.4.sql b/setup/databaseScripts/create_database_V0.0.4.sql new file mode 100644 index 0000000..a1cd37a --- /dev/null +++ b/setup/databaseScripts/create_database_V0.0.4.sql @@ -0,0 +1,65 @@ +-- Gaslight Media Members Database +-- File Created: 5/24/19 +-- Database Version: 0.0.2 +-- Database Creation Script - Messages Add-On +-- +-- To permit each query below to be executed separately, +-- all queries must be separated by a line with four dashes + +-- email_messages +CREATE TABLE {prefix}email_messages ( + id INT NOT NULL AUTO_INCREMENT, + template_id INT NOT NULL, + archived BOOLEAN DEFAULT false, + from_email TINYTEXT NOT NULL, + from_name TINYTEXT NULL, + reply_to_email TINYTEXT NULL, + subject TINYTEXT NOT NULL, + last_updated DATETIME NOT NULL, + message_body TEXT NOT NULL, + PRIMARY KEY (id) +); + +---- + +-- Logs +CREATE TABLE {prefix}email_logs ( + id INT NOT NULL AUTO_INCREMENT, + message_id INT NOT NULL, + to_email TINYTEXT NOT NULL, + subject TINYTEXT NOT NULL, + from_email TINYTEXT NOT NULL, + reply_to_email TINYTEXT NULL, + message_body TEXT NOT NULL, + send_date DATETIME NOT NULL, + email_read BOOLEAN DEFAULT false, + read_date DATETIME NULL, + PRIMARY KEY (id) +); + +---- + +-- Queue +CREATE TABLE {prefix}email_queue ( + id INT NOT NULL AUTO_INCREMENT, + message_id INT NOT NULL, + to_email TINYTEXT NOT NULL, + subject TINYTEXT NOT NULL, + from_email TINYTEXT NOT NULL, + reply_to_email TINYTEXT NULL, + message_body TEXT NOT NULL, + queue_date DATETIME NOT NULL, + processed BOOLEAN DEFAULT false, + PRIMARY KEY (id) +); + +---- + +-- Template +CREATE TABLE {prefix}email_templates ( + id INT NOT NULL AUTO_INCREMENT, + name TEXT NOT NULL, + image TINYTEXT NULL, + footer TEXT NULL, + PRIMARY KEY (id) +); diff --git a/setup/databaseScripts/dbVersions.php b/setup/databaseScripts/dbVersions.php index e918016..fbd955e 100644 --- a/setup/databaseScripts/dbVersions.php +++ b/setup/databaseScripts/dbVersions.php @@ -17,5 +17,6 @@ $glmMembersMessagesDbVersions = array( '0.0.1' => array('version' => '0.0.1', 'tables' => 2, 'date' => '05/24/2019'), '0.0.2' => array('version' => '0.0.2', 'tables' => 3, 'date' => '05/30/2019'), '0.0.3' => array('version' => '0.0.3', 'tables' => 4, 'date' => '06/04/2019'), + '0.0.4' => array('version' => '0.0.4', 'tables' => 4, 'date' => '06/07/2019'), ); diff --git a/setup/databaseScripts/update_database_V0.0.4.sql b/setup/databaseScripts/update_database_V0.0.4.sql new file mode 100644 index 0000000..58ab04e --- /dev/null +++ b/setup/databaseScripts/update_database_V0.0.4.sql @@ -0,0 +1,15 @@ +-- Gaslight Media Members Database - Messages Add-On +-- File Created: 5/30/2019 +-- Database Version: 0.0.2 +-- Database Update From Previous Version Script +-- +-- To permit each query below to be executed separately, +-- all queries must be separated by a line with four dashses + +-- Chaneg contents to footer +ALTER TABLE {prefix}email_templates CHANGE COLUMN contents footer TEXT NULL; + +---- + +-- Add image to email_templates +ALTER TABLE {prefix}email_templates ADD COLUMN image TINYTEXT NULL; diff --git a/setup/validActions.php b/setup/validActions.php index 9775b61..c2e520e 100644 --- a/setup/validActions.php +++ b/setup/validActions.php @@ -59,6 +59,9 @@ $glmMembersMessagesAddOnValidActions = array( 'adminActions' => array( + 'ajax' => array( + 'newsletter' => GLM_MEMBERS_MESSAGES_PLUGIN_SLUG, + ), 'messages' => array( 'index' => GLM_MEMBERS_MESSAGES_PLUGIN_SLUG, 'sendMessagesEmails' => GLM_MEMBERS_MESSAGES_PLUGIN_SLUG, diff --git a/views/admin/messages/editTemplate.html b/views/admin/messages/editTemplate.html index 66771f1..c13c4e0 100644 --- a/views/admin/messages/editTemplate.html +++ b/views/admin/messages/editTemplate.html @@ -1,7 +1,7 @@

Html Email

{include file='admin/header.html'} -
+ {if !$newEntry} @@ -16,26 +16,52 @@ - Content: - + Header Image: + +
+
+ {if $template.fieldData.image} +
+
+
+ +
+
+
+
+ Delete Image
+ {$template.fieldData.image} +
+
+
+ {/if} +
New image:
+
+ {if $template.fieldFail.image}

{$template.fieldFail.image}

{/if} +
+
+ + + + Footer: + {if $template} - {$textAreaContent = $template.fieldData.contents} + {$textAreaContent = $template.fieldData.footer} {else} {$textAreaContent = ''} {/if} {wp_editor( $textAreaContent, - 'contents', + 'footer', json_decode('{ "media_buttons": true, "quicktags": false, - "textarea_name": "contents", + "textarea_name": "footer", "editor_height": 250 }', true) )} -

Place {literal}{$contents}{/literal} where you want the Email Message to be inserted to.

diff --git a/views/admin/messages/listMessagesTable.html b/views/admin/messages/listMessagesTable.html index 4a264ef..d98aa9e 100644 --- a/views/admin/messages/listMessagesTable.html +++ b/views/admin/messages/listMessagesTable.html @@ -6,6 +6,7 @@ Last Updated Last Sent Queued + Preview @@ -17,6 +18,7 @@ {$message.last_updated.timestamp|date_format:"%D %r"} {$message.sent|date_format:"%D %r"} {$message.stats|date_format:"%D %r"} + Preview Template {/foreach} {/if} diff --git a/views/admin/messages/listTemplates.html b/views/admin/messages/listTemplates.html index 663e9ab..0ec173c 100644 --- a/views/admin/messages/listTemplates.html +++ b/views/admin/messages/listTemplates.html @@ -8,6 +8,7 @@ ID Name + Preview @@ -16,6 +17,7 @@ {$template.id} {$template.name} + Preview Template {/foreach} {/if} diff --git a/views/admin/messages/search.html b/views/admin/messages/search.html index 6256514..ad98816 100644 --- a/views/admin/messages/search.html +++ b/views/admin/messages/search.html @@ -16,6 +16,33 @@ {if $smarty.request.filterMemberTypes} {/if} + {if $smarty.request.filterMemberName} + + {/if} + {if $smarty.request.filterMemberStatus} + + {/if} + {if $smarty.request.filterMemberCity} + + {/if} + {if $smarty.request.filterMemberCounty} + + {/if} + {if $smarty.request.filterMemberState} + + {/if} + {if $smarty.request.filterMemberZip} + + {/if} + {if $smarty.request.filterContactEmail} + + {/if} + {if $smarty.request.filterContactFirstName} + + {/if} + {if $smarty.request.filterContactLastName} + + {/if} @@ -95,22 +122,37 @@ - {* city need data for select *} - - - + + {if $settings.enable_counties} + + + {/if} - + -
diff --git a/views/email/messages/newsletter.html b/views/email/messages/newsletter.html new file mode 100644 index 0000000..c553915 --- /dev/null +++ b/views/email/messages/newsletter.html @@ -0,0 +1,51 @@ + + + + + + + + + My Newsletter Email Template Subject + {literal} + + {/literal} + + + +
Message
+ + + +
+
+ +
+ +
 
+ + + +
+
+

{$templateName}

+
+ +
+ +
 
+ + {$content} + +
 
+

{$footer}

+
+
+ +
+
+ +
                                                           
+ + + diff --git a/views/email/messages/newsletterFrame.html b/views/email/messages/newsletterFrame.html new file mode 100644 index 0000000..7fa6a6a --- /dev/null +++ b/views/email/messages/newsletterFrame.html @@ -0,0 +1,5 @@ +Go Back + +