modified : email tester added
This commit is contained in:
parent
82f3de686a
commit
454d1cd527
3 changed files with 366 additions and 2 deletions
157
upload/admin_area/email_tester.php
Executable file
157
upload/admin_area/email_tester.php
Executable file
|
@ -0,0 +1,157 @@
|
|||
<?php
|
||||
require_once '../includes/admin_config.php';
|
||||
$userquery->admin_login_check();
|
||||
$userquery->login_check('web_config_access');
|
||||
|
||||
$pages->page_redir();
|
||||
|
||||
if( isset( $_POST[ 'start_test' ] ) ) {
|
||||
try {
|
||||
|
||||
$to_email = $_POST[ 'to_email' ];
|
||||
|
||||
if ( empty( $to_email ) ) {
|
||||
throw new Exception( 'Please provide a recipient email' );
|
||||
}
|
||||
|
||||
$to_email = filter_var( $to_email, FILTER_SANITIZE_EMAIL );
|
||||
$to_email = filter_var( $to_email, FILTER_VALIDATE_EMAIL );
|
||||
|
||||
if( $to_email === false ) {
|
||||
throw new Exception( 'Please provide a valid recipient email address' );
|
||||
}
|
||||
|
||||
$to_name = $_POST[ 'to_name' ];
|
||||
|
||||
if( empty( $to_name ) || !is_string( $to_name ) ) {
|
||||
$to_name = $to_email;
|
||||
}
|
||||
|
||||
$from_email = $_POST[ 'from_email' ];
|
||||
|
||||
if ( empty( $from_email ) ) {
|
||||
$from_email = SUPPORT_EMAIL;
|
||||
}
|
||||
|
||||
$from_email = filter_var( $from_email, FILTER_SANITIZE_EMAIL );
|
||||
$from_email = filter_var( $from_email, FILTER_VALIDATE_EMAIL );
|
||||
|
||||
if ( $from_email === false ) {
|
||||
throw new Exception( 'Please provide a valid sender email address' );
|
||||
}
|
||||
|
||||
$from_name = $_POST[ 'from_name' ];
|
||||
|
||||
if( empty( $from_name ) || !is_string( $from_name ) ) {
|
||||
$from_name = 'Tune.pk';
|
||||
}
|
||||
|
||||
$subject = $_POST[ 'subject' ];
|
||||
$subject = trim( $subject );
|
||||
|
||||
if ( empty( $subject ) ) {
|
||||
throw new Excpetion( 'Please provide test email subject' );
|
||||
}
|
||||
|
||||
$body = $_POST[ 'body' ];
|
||||
$body = trim( $body );
|
||||
|
||||
if ( empty( $body ) ) {
|
||||
throw new Excpetion( 'Please provide test email body' );
|
||||
}
|
||||
|
||||
$code = $_POST[ 'email_template' ];
|
||||
|
||||
if ( $code != -1 ) {
|
||||
$template = $cbemail->get_template( $code );
|
||||
|
||||
if( $template ) {
|
||||
$dv = $_POST[ 'dv' ];
|
||||
$variables = array();
|
||||
|
||||
if ( !empty( $dv ) ) {
|
||||
foreach( $dv as $key => $v ) {
|
||||
$variables[ $v[ 'name' ] ] = empty( $v[ 'value' ] ) ? $v[ 'name' ] : $v[ 'value' ];
|
||||
}
|
||||
}
|
||||
|
||||
$subject = $cbemail->replace( $template[ 'email_template_subject' ], $variables );
|
||||
$body = $cbemail->replace( $template[ 'email_template' ], $variables );
|
||||
}
|
||||
}
|
||||
|
||||
$mail = array(
|
||||
'to' => $to_email,
|
||||
'to_name' => $to_name,
|
||||
'from' => $from_email,
|
||||
'from_name' => $from_name,
|
||||
'subject' => $subject,
|
||||
'content' => $body
|
||||
);
|
||||
|
||||
$test = cbmail( $mail );
|
||||
|
||||
if ( $test == false ) {
|
||||
e( lang( sprintf( 'Unable to send email <strong>%s</strong>', $to_email ) ) );
|
||||
} else {
|
||||
e( lang( sprintf( 'Email successfully send to <strong>%s</strong>', $to_email ) ), 'm' );
|
||||
}
|
||||
|
||||
} catch( Exception $e ) {
|
||||
e( lang( $e->getMessage() ) );
|
||||
}
|
||||
}
|
||||
|
||||
$templates = $cbemail->get_templates();
|
||||
$list = array();
|
||||
$_templates = array();
|
||||
|
||||
$macros = array(
|
||||
'{website_title}' => TITLE,
|
||||
'{baseurl}' => BASEURL,
|
||||
'@baseurl' => BASEURL,
|
||||
'{website_url}' => BASEURL,
|
||||
'{date_format}' => cbdate(DATE_FORMAT),
|
||||
'{date}' => cbdate(),
|
||||
'{username}' => username(),
|
||||
'{userid}' => userid(),
|
||||
'{first_name}' => $userquery->udetails['first_name'],
|
||||
'{last_name}' => $userquery->udetails['last_name'],
|
||||
'{name}' => name( $userquery->udetails ),
|
||||
'{user}' => name( $userquery->udetails ),
|
||||
'{email}' => $userquery->udetails[ 'email' ],
|
||||
'{date_year}' => cbdate("Y"),
|
||||
'{date_month}' => cbdate("m"),
|
||||
'{date_day}' => cbdate("d"),
|
||||
'{now}' => NOW(),
|
||||
// '{ip_address}' => get_user_ip(),
|
||||
// '{ip}' => get_user_ip()
|
||||
);
|
||||
|
||||
if ( !empty( $templates ) ) {
|
||||
foreach( $templates as $template ) {
|
||||
$code = $template[ 'email_template_code' ];
|
||||
$list[ $code ] = $template[ 'email_template_name' ];
|
||||
|
||||
$HTML_template = BASEDIR.'/styles/global/v4/email_templates/'.$code.'.html';
|
||||
|
||||
if ( file_exists( $HTML_template ) ) {
|
||||
$body = file_get_contents( $HTML_template );
|
||||
} else {
|
||||
$body = $template[ 'email_template' ];
|
||||
}
|
||||
|
||||
$_templates[ $code ] = array(
|
||||
'subject' => $template[ 'email_template_subject' ],
|
||||
'body' => $body
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
assign( 'list', $list );
|
||||
assign( '_templates', $_templates );
|
||||
assign( 'macros', $macros );
|
||||
|
||||
subtitle("Email Tester");
|
||||
template_files('email_tester.html');
|
||||
display_it();
|
207
upload/admin_area/styles/cb_2014/layout/email_tester.html
Executable file
207
upload/admin_area/styles/cb_2014/layout/email_tester.html
Executable file
|
@ -0,0 +1,207 @@
|
|||
<style>
|
||||
|
||||
.cb-box .mid-roll-row {
|
||||
font-weight: 300;
|
||||
font-size: 14px;
|
||||
margin-bottom: 10px;
|
||||
}
|
||||
|
||||
.cb-box textarea, .cb-box input[type=text][id=subject], #dynamic-values input {
|
||||
font-family: monospace;
|
||||
}
|
||||
|
||||
.cb-box input[type=text].inline, .cb-box select.inline {
|
||||
width: 40px;
|
||||
border: none;
|
||||
text-align: center;
|
||||
border-bottom: 1px solid #ccc;
|
||||
background-color: transparent;
|
||||
border-radius: 0px !important;
|
||||
margin: 0px 4px;
|
||||
}
|
||||
|
||||
.cb-box select.inline {
|
||||
border-radius: 0px;
|
||||
width: auto;
|
||||
background-color: transparent;
|
||||
border: 1px solid #ccc;
|
||||
}
|
||||
|
||||
.cb-box hr {
|
||||
margin-top: 10px;
|
||||
margin-bottom: 10px;
|
||||
}
|
||||
|
||||
.cb-box .row .form-group > span.text-muted {
|
||||
font-size: 11px;
|
||||
text-transform: uppercase;
|
||||
}
|
||||
</style>
|
||||
|
||||
<div class="clearfix cb-box">
|
||||
<header class="clearfix cb-header">
|
||||
<h2>Email Tester</h2>
|
||||
</header>
|
||||
|
||||
<h4>Configurations</h4>
|
||||
<div class="btn-group">
|
||||
<a href="javascript:void(0)" class="btn btn-default">{lang('Mail type')}: <span class="badge">{config('mail_type')}</span></a>
|
||||
<a href="javascript:void(0)" class="btn btn-default">{lang('Host')}: <span class="badge">{config('smtp_host')}</span></a>
|
||||
<a href="javascript:void(0)" class="btn btn-default">{lang('Port')}: <span class="badge">{config('smtp_port')}</span></a>
|
||||
<a href="javascript:void(0)" class="btn btn-default">{lang('User')}: <span class="badge">{config('smtp_user')}</span></a>
|
||||
<a href="javascript:void(0)" class="btn btn-default">{lang('Password')}: <span class="badge">{config('smtp_pass')}</span></a>
|
||||
<a href="javascript:void(0)" class="btn btn-default">{lang('Auth')}: <span class="badge">{config('smtp_auth')}</span></a>
|
||||
</div>
|
||||
<hr />
|
||||
<form action="{queryString()}" method="post" id="test_email">
|
||||
<div class="form-group">
|
||||
<label for="to_name">To( Name )</label>
|
||||
<input type="text" name="to_name" id="to_name" class="form-control" />
|
||||
</div>
|
||||
|
||||
<div class="form-group">
|
||||
<label for="to_email">To( Email Address )</label>
|
||||
<input type="text" name="to_email" id="to_email" class="form-control" />
|
||||
</div>
|
||||
|
||||
<div class="form-group">
|
||||
<label for="from_name">From( Name )</label>
|
||||
<input type="text" name="from_name" id="from_name" class="form-control" placeholder="Default: Tune.pk" />
|
||||
</div>
|
||||
|
||||
<div class="form-group">
|
||||
<label for="from_email">From( Email Address )</label>
|
||||
<input type="text" name="from_email" id="from_email" class="form-control" placeholder="Default: {$smarty.const.SUPPORT_EMAIL}" />
|
||||
</div>
|
||||
|
||||
{if $list}
|
||||
<div class="form-group">
|
||||
<label for="email_template">Email Template</label>
|
||||
<select name="email_template" id="email_template" class="form-control chosen">
|
||||
<option value="-1" selected="selected">- none -</option>
|
||||
{foreach $list as $id => $name}
|
||||
<option value="{$id}">{$name}</option>
|
||||
{/foreach}
|
||||
</select>
|
||||
</div>
|
||||
{/if}
|
||||
|
||||
<div class="form-group">
|
||||
<label for="subject">Email Subject</label>
|
||||
<input type="text" name="subject" id="subject" class="form-control" />
|
||||
</div>
|
||||
|
||||
<div class="form-group">
|
||||
<label for="body">Email Body</label>
|
||||
<textarea name="body" id="body" class="form-control" cols="30" rows="10"></textarea>
|
||||
</div>
|
||||
|
||||
<div class="form-group" id="dynamic-values" style="display: none">
|
||||
<h4>Dynamic Values</h4>
|
||||
</div>
|
||||
|
||||
<div class="pull-right">
|
||||
<button class="btn btn-primary" type="submit" name="start_test" id="start_test">Test</button>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
|
||||
<div class="form-group clearfix" id="emaildv" style="display: none !important;">
|
||||
<input type="text" name="dvn[]" class="form-control pull-left" style="width: 49%" placeholder="macro" />
|
||||
<textarea name="dvv[]" id="" rows="2" class="form-control pull-right" style="width: 49%;" placeholder="value"></textarea>
|
||||
</div>
|
||||
|
||||
<!-- include chosen -->
|
||||
|
||||
|
||||
<script type="text/javascript">
|
||||
|
||||
/*var __macros = {json_encode($macros)},
|
||||
__templates = {json_encode($_templates)},
|
||||
arrayUnique = function(a) {
|
||||
return a.reduce(function(p, c) {
|
||||
if (p.indexOf(c) < 0) p.push(c);
|
||||
return p;
|
||||
}, []);
|
||||
};*/
|
||||
/*$( document ).ready(function(){
|
||||
$( '.chosen' ).chosen();
|
||||
|
||||
var onChange = function onChange( event ) {
|
||||
var _this = $( this ),
|
||||
subject = '',
|
||||
body = '';
|
||||
|
||||
{
|
||||
if( typeof __templates[ this.value ] !== 'undefined' ) {
|
||||
subject = __templates[ this.value ][ 'subject' ];
|
||||
body = __templates[ this.value ][ 'body' ];
|
||||
}
|
||||
}
|
||||
|
||||
//extract macros from body
|
||||
{literal}
|
||||
var expression = /\{([a-zA-Z0-9\_\-]*)\}/ig,
|
||||
{/literal}
|
||||
bodyMacros = body.match( expression );
|
||||
subjectMacros = subject.match( expression );
|
||||
|
||||
|
||||
if ( bodyMacros === null ) {
|
||||
bodyMacros = [];
|
||||
}
|
||||
|
||||
if ( subjectMacros === null ) {
|
||||
subjectMacros = [];
|
||||
}
|
||||
|
||||
dynamicMacros = bodyMacros.concat( subjectMacros );
|
||||
|
||||
console.info( subjectMacros );
|
||||
|
||||
if( dynamicMacros.length === 0 ) {
|
||||
$( '#dynamic-values' ).hide().find( '.form-group' ).remove();
|
||||
}
|
||||
|
||||
if ( dynamicMacros.length > 0 ) {
|
||||
|
||||
dynamicMacros = arrayUnique( dynamicMacros );
|
||||
|
||||
var container = $( '#dynamic-values' ),
|
||||
i;
|
||||
|
||||
container.find( '.form-group' ).remove();
|
||||
|
||||
for( i = 0; i < dynamicMacros.length; i++ ) {
|
||||
var clone = $( '#emaildv' ).clone(),
|
||||
_value = '';
|
||||
|
||||
container.append( clone );
|
||||
|
||||
var _dom = container.find( '#emaildv' );
|
||||
|
||||
_dom.attr( 'id', dynamicMacros[ i ] );
|
||||
_dom.attr( 'data-index', i );
|
||||
_dom.find( 'input[name*=dvn]' ).val( dynamicMacros[ i ] ).attr({
|
||||
'name':'dv['+i+'][name]',
|
||||
'readonly':'readonly'
|
||||
});
|
||||
|
||||
if ( typeof __macros[ dynamicMacros[ i ] ] !== 'undefined' ) {
|
||||
_value = __macros[ dynamicMacros[ i ] ];
|
||||
}
|
||||
|
||||
_dom.find( 'textarea[name*=dvv]' ).val( _value ).attr( 'name', 'dv['+i+'][value]' );
|
||||
_dom.show();
|
||||
}
|
||||
|
||||
$( '#dynamic-values' ).show()
|
||||
}
|
||||
|
||||
$( '#subject' ).val( subject );
|
||||
$( '#body' ).val( body );
|
||||
}
|
||||
|
||||
$( document ).on( 'change', '#email_template', onChange );
|
||||
});*/
|
||||
</script>
|
|
@ -45,11 +45,11 @@
|
|||
</li>
|
||||
|
||||
<li>
|
||||
<a href="groups_manager.php?active=no&search=yes">
|
||||
<a href="photo_manager.php?active=no&search=yes">
|
||||
<div class="clearfix">
|
||||
<span class="pull-left">
|
||||
<i class="btn btn-xs no-hover btn-info icon-group"></i>
|
||||
Approve Groups
|
||||
Approve Photos
|
||||
</span>
|
||||
<span class="badge badge-info pull-right">{get_groups active='no' count_only=true}</span>
|
||||
</div>
|
||||
|
|
Loading…
Add table
Reference in a new issue