}
$tData = array();
+ // Get a count of templates
+ $templateCount = $this->wpdb->get_var(
+ "SELECT count(*)
+ FROM " . GLM_MEMBERS_MESSAGES_PLUGIN_DB_PREFIX . "email_templates"
+ );
$templateData = array(
'newEntry' => false,
'thisOption' => $option,
'pluginAssetsUrl' => GLM_MEMBERS_MESSAGES_PLUGIN_BASE_URL . '/assets/',
+ 'templateCount' => $templateCount,
);
wp_enqueue_style( 'glmaFoundation', GLM_MEMBERS_PLUGIN_URL . '/css/glma-foundation.min.css' );
$template = $Templates->getEntry( $id );
}
$tData = array(
- 'template_id' => $id,
- 'message_id' => $messageId,
+ 'template_id' => $id,
+ 'message_id' => $messageId,
);
break;
break;
}
+ case 'deleteTemplate':
+ $view = 'list';
+ $Templates = new GlmDataEmailTemplates( $this->wpdb, $this->config );
+ if ( $option == 'deleteTemplate' && isset( $_REQUEST['id'] ) && $id = filter_var( $_REQUEST['id'], FILTER_VALIDATE_INT ) ) {
+ $Templates->deleteEntry( $id, true );
+ }
+
+
case 'listTemplates':
$view = 'listTemplates';
$Templates = new GlmDataEmailTemplates( $this->wpdb, $this->config );
$tData = array(
'message' => $message,
'newEntry' => $newEntry,
+ 'merge_tags' => array(
+ 'Member Name', '{$member.name}',
+ 'Contact First Name', '{$contact.fname}',
+ 'Contact Last Name', '{$contact.lname}',
+ 'Contact Address Line 1', '{$contact.addr1}',
+ 'Contact Address Line 2', '{$contact.addr2}',
+ 'Contact City', '{$contact.city}',
+ 'Contact State', '{$contact.state}',
+ 'Contact Zip', '{$contact.zip}',
+ 'Contact Office Phone', '{$contact.office_phone}',
+ 'Contact Home Phone', '{$contact.home_phone}',
+ 'Contact Mobile Phone', '{$contact.mobile_phone}',
+ )
);
break;
break;
}
+ case 'deleteMessage':
+ $view = 'list';
+ if ( $option == 'deleteMessage' && isset( $_REQUEST['id'] ) && $id = filter_var( $_REQUEST['id'], FILTER_VALIDATE_INT ) ) {
+ $this->deleteEntry( $id, true );
+ }
case 'list':
$view = 'list';
$templateData = array_merge( $templateData, $tData );
+
// Return status, suggested view, and data to controller
return array(
'status' => $success,
+{* Message Add Edit Form *}
{include file='admin/header.html'}
<h3>Html Email</h3>
+{* UI for Delete Dialog *}
+{if !$newEntry}
+ {assign var="itemName" value="Message"}
+ {assign var="deleteUrl" value="{$thisUrl}?page={$thisPage}&option=deleteMessage&id={$message.fieldData.id}"}
+ {include file='admin/ui/deleteDialog.html'}
+{/if}
+
<form action="{$thisUrl}?page={$thisPage}" method="post" style="max-width: 800px;">
<input type="hidden" name="option" value="updateHtmlEmail" />
{if !$newEntry}
<input type="hidden" name="id" value="{$message.fieldData.id}" />
{/if}
- <div class="grid-x grid-margin-x">
- <div class="cell small-12 medium-3">
- <label for="archived" class="text-right middle{if $message.fieldRequired.archived} glm-required{/if}">Archived</label>
- </div>
- <div class="cell small-12 medium-9">
- <input type="checkbox" id="archived" name="archived"{if $message.fieldData.archived.value} checked{/if}> Archived
- {if $message.fieldFail.archived}<span class="form-error is-visible">{$message.fieldFail.archived}</span>{/if}
- </div>
- </div>
+ {* This is for the rest of UI elements *}
+ {assign var="data" value=$message}
- <div class="grid-x grid-margin-x">
- <div class="cell small-12 medium-3">
- <label for="template_id" class="text-right middle{if $message.fieldRequired.template_id} glm-required{/if}">Template</label>
- </div>
- <div class="cell small-12 medium-9">
- <select id="template_id" name="template_id" required>
- <option value=""></option>
- {foreach from=$message.fieldData.template_id.list item=v}
- <option value="{$v.value}"{if $v.default} selected="selected"{/if}>{$v.name}</option>
- {/foreach}
- </select>
- {if $message.fieldFail.template_id}<span class="form-error is-visible">{$message.fieldFail.template_id}</span>{/if}
- </div>
- </div>
+ {assign var="field" value="archived"}
+ {assign var="fieldLabel" value="Archived:"}
+ {include file="admin/ui/f6-checkbox.html"}
- <div class="grid-x grid-margin-x">
- <div class="cell small-12 medium-3">
- <label for="from_name" class="text-right middle{if $message.fieldRequired.from_name} glm-required{/if}">From Name</label>
- </div>
- <div class="cell small-12 medium-9">
- <input type="text" id="from_name" name="from_name" value="{$message.fieldData.from_name|escape}" {if $message.fieldRequired.from_name}required{/if} />
- {if $message.fieldFail.from_name}<span class="form-error is-visible">{$message.fieldFail.from_name}</span>{/if}
- </div>
- </div>
+ {assign var="field" value="template_id"}
+ {assign var="fieldLabel" value="Template:"}
+ {include file="admin/ui/f6-select.html"}
- <div class="grid-x grid-margin-x">
- <div class="cell small-12 medium-3">
- <label for="from_email" class="text-right middle{if $message.fieldRequired.from_email} glm-required{/if}">From Email</label>
- </div>
- <div class="cell small-12 medium-9">
- <input type="email" id="from_email" name="from_email" value="{$message.fieldData.from_email|escape}" {if $message.fieldRequired.from_email}required{/if} />
- {if $message.fieldFail.from_email}<span class="form-error is-visible">{$message.fieldFail.from_email}</span>{/if}
- </div>
- </div>
+ {assign var="field" value="from_name"}
+ {assign var="fieldLabel" value="From Name:"}
+ {include file="admin/ui/f6-text.html"}
- <div class="grid-x grid-margin-x">
- <div class="cell small-12 medium-3">
- <label for="reply_to_email" class="text-right middle{if $message.fieldRequired.reply_to_email} glm-required{/if}">Reply To:</label>
- </div>
- <div class="cell small-12 medium-9">
- <input type="email" id="reply_to_email" name="reply_to_email" value="{$message.fieldData.reply_to_email|escape}" {if $message.fieldRequired.reply_to_email}required{/if} />
- {if $message.fieldFail.reply_to_email}<span class="form-error is-visible">{$message.fieldFail.reply_to_email}</span>{/if}
- </div>
- </div>
+ {assign var="field" value="from_email"}
+ {assign var="fieldLabel" value="From Email:"}
+ {include file="admin/ui/f6-text.html"}
- <div class="grid-x grid-margin-x">
- <div class="cell small-12 medium-3">
- <label for="subject" class="text-right middle{if $message.fieldRequired.subject} glm-required{/if}">Subject:</label>
- </div>
- <div class="cell small-12 medium-9">
- <input type="text" id="subject" name="subject" value="{$message.fieldData.subject|escape}" {if $message.fieldRequired.subject}required{/if} />
- {if $message.fieldFail.subject}<span class="form-error is-visible">{$message.fieldFail.subject}</span>{/if}
- </div>
- </div>
+ {assign var="field" value="reply_to_email"}
+ {assign var="fieldLabel" value="Reply To:"}
+ {include file="admin/ui/f6-text.html"}
+
+ {assign var="field" value="subject"}
+ {assign var="fieldLabel" value="Subject:"}
+ {include file="admin/ui/f6-text.html"}
+
+ {assign var="field" value="message_body"}
+ {assign var="fieldLabel" value="Message Content:"}
+ {include file="admin/ui/f6-editor.html"}
+
+ {assign var="tData" value=$merge_tags}
+
+ <strong>Merge Tags</strong>
+ <p>The "merge tags" listed below may be used in the email message to include certain information about the Member or Contact. Be sure to include the "{" and "}" and "$" characters exactly as shown.</p>
<div class="grid-x grid-margin-x">
- <div class="cell small-12 medium-3">
- <label for="message_body" class="text-right middle{if $message.fieldRequired.message_body} glm-required{/if}">Message Content:</label>
- </div>
- <div class="cell small-12 medium-9">
- {if $message}
- {$textAreaContent = $message.fieldData.message_body}
- {else}
- {$textAreaContent = ''}
- {/if}
- {wp_editor(
- $textAreaContent,
- 'message_body',
- json_decode('{
- "media_buttons": true,
- "quicktags": false,
- "textarea_name": "message_body",
- "editor_height": 250
- }', true)
- )}
- <br>
- {if $message.fieldFail.message_body}<span class="form-error is-visible">{$message.fieldFail.message_body}</span>{/if}
+ <div class="cell small-8">
+ {html_table loop=$tData cols=2 table_attr='border=0 style=width: 400px;' caption='Merge Tags Examples' td_attr=['align="left"','align="left"']}
</div>
</div>
- <table>
- <tr>
- <td colspan="2">
- <strong>Merge Tags</strong>
- <p>The "merge tags" listed below may be used in the email message to include certain information about the Member or Contact. Be sure to include the "{" and "}" and "$" characters exactly as shown.</p>
- <p>
- <table>
- <tr>
- <th>{literal}{$member.name}{/literal}</th>
- <td>Member Name</td>
- </tr>
- <tr>
- <th>{literal}{$contact.fname}{/literal}</th>
- <td>Contact First Name</td>
- </tr>
- <tr>
- <th>{literal}{$contact.lname}{/literal}</th>
- <td>Contact Last Name</td>
- </tr>
- <tr>
- <th>{literal}{$contact.addr1}{/literal}</th>
- <td>Contact Address Line 1</td>
- </tr>
- <tr>
- <th>{literal}{$contact.addr1}{/literal}</th>
- <td>Contact Address Line 1</td>
- </tr>
- <tr>
- <th>{literal}{$contact.city}{/literal}</th>
- <td>Contact City</td>
- </tr>
- <tr>
- <th>{literal}{$contact.state}{/literal}</th>
- <td>Contact State</td>
- </tr>
- <tr>
- <th>{literal}{$contact.zip}{/literal}</th>
- <td>Contact Zip</td>
- </tr>
- <tr>
- <th>{literal}{$contact.office_phone}{/literal}</th>
- <td>Contact Office Phone</td>
- </tr>
- <tr>
- <th>{literal}{$contact.home_phone}{/literal}</th>
- <td>Contact Home Phone</td>
- </tr>
- <tr>
- <th>{literal}{$contact.mobile_phone}{/literal}</th>
- <td>Contact Mobile Phone</td>
- </tr>
- </table>
- </p>
- </td>
- </tr>
- </table>
-
<div class="grid-x grid-margin-x">
<div class="cell small-12">
<input type="submit" class="button button-primary" value="Save" />
</form>
+
{include file='admin/footer.html'}
+{* Template Add Edit Form *}
{include file='admin/header.html'}
-<h2>Html Email</h2>
+<h3>Html Email</h3>
+
+{* UI for Delete Dialog *}
+{if !$newEntry && $templateCount > 1}
+ {assign var="itemName" value="Template"}
+ {assign var="deleteUrl" value="{$thisUrl}?page={$thisPage}&option=deleteTemplate&id={$template.fieldData.id}"}
+ {include file='admin/ui/deleteDialog.html'}
+{/if}
<form action="{$thisUrl}?page={$thisPage}" method="post" enctype="multipart/form-data">
<input type="hidden" name="option" value="updateTemplate" />
<input type="hidden" name="id" value="{$template.fieldData.id}" />
{/if}
- <div class="grid-x grid-margin-x">
- <div class="cell small-12 medium-3">
- <label for="name" class="text-right middle{if $template.fieldRequired.name} glm-required{/if}">Name:</label>
- </div>
- <div class="cell small-12 medium-9">
- <input type="text" id="name" name="name" value="{$template.fieldData.name|escape}" {if $template.fieldRequired.name}required{/if} />
- {if $template.fieldFail.name}<span class="form-error is-visible">{$template.fieldFail.name}</span>{/if}
- </div>
- </div>
+ {* This is for the rest of UI elements *}
+ {assign var="data" value=$template}
- <div class="grid-x grid-margin-x">
- <div class="cell small-12 medium-3">
- <label for="image" class="text-right middle{if $template.fieldRequired.image} glm-required{/if}">Header Image:</label>
- </div>
- <div class="cell small-12 medium-9">
- <div {if $template.fieldFail.image}class="glm-form-bad-input" data-tabid="glm-member-info-images"{/if}>
- {if $template.fieldData.image}
- <div class="glm-row">
- <div class="glm-small-12 glm-medium-6">
- <div class="glm-galleryImage" data-id="image">
- <img src="{$glmPluginMediaUrl}/images/small/{$template.fieldData.image}">
- </div>
- </div>
- <div class="glm-small-11 glm-medium-6 glm-right">
- <br>
- <input type="checkbox" name="image_delete"> Delete Image<br>
- <span>{$template.fieldData.image}</span>
- <br>
- </div>
- </div>
- {/if}
- <div class="glm-center"><b>New image:</b> <input type="file" name="image_new"></div>
- <div id="glm-galleryImageLarger_image" class="glm-imageDialog"><img src="{$glmPluginMediaUrl}/images/large/{$template.fieldData.image}"></div>
- {if $template.fieldFail.image}<p>{$template.fieldFail.image}</p>{/if}
- </div>
- </div>
- </div>
+ {assign var="field" value="name"}
+ {assign var="fieldLabel" value="Name:"}
+ {include file="admin/ui/f6-text.html"}
- <div class="grid-x grid-margin-x">
- <div class="cell small-12 medium-3">
- <label for="footer" class="text-right middle{if $template.fieldRequired.footer} glm-required{/if}">Name:</label>
- </div>
- <div class="cell small-12 medium-9">
- {if $template}
- {$textAreaContent = $template.fieldData.footer}
- {else}
- {$textAreaContent = ''}
- {/if}
- {wp_editor(
- $textAreaContent,
- 'footer',
- json_decode('{
- "media_buttons": true,
- "quicktags": false,
- "textarea_name": "footer",
- "editor_height": 250
- }', true)
- )}
- {if $template.fieldFail.footer}<span class="form-error is-visible">{$template.fieldFail.footer}</span>{/if}
- </div>
- </div>
+ {assign var="field" value="image"}
+ {assign var="fieldLabel" value="Header Image:"}
+ {include file="admin/ui/f6-image.html"}
+
+ {assign var="field" value="footer"}
+ {assign var="fieldLabel" value="Footer Content:"}
+ {include file="admin/ui/f6-editor.html"}
<div class="grid-x grid-margin-x">
<div class="cell small-12">