Skip to main content
Site identity, navigation, etc.
Log in
Username
Password
I forgot my password
CapsLock is on.
Log in
Stay in SSL mode
Navigation and related functionality and content
Related content
View template: tiki-send_newsletters.tpl
Edit CSS
Template listing
{$showBoxCheck} {if $nlId} {$titleurl="tiki-send_newsletters.php?nlId=$nlId"} {else} {$titleurl="tiki-send_newsletters.php"} {/if} {title help="Newsletters" url=$titleurl}{tr}Send Newsletters{/tr}{/title} {if $tiki_p_admin_newsletters eq "y"} <div class="t_navbar mb-3"> <a role="link" href="tiki-newsletters.php" class="btn btn-link me-2" title="{tr}List{/tr}">{icon name="list"} {tr}List Newsletters{/tr}</a> {if $nlId} <a role="link" href="tiki-admin_newsletters.php?nlId={$nlId}" class="btn btn-link me-2" title="{tr}Admin Newsletters{/tr}">{icon name="cog"} {tr}Admin Newsletters{/tr}</a> {else} <a role="link" href="tiki-admin_newsletters.php" class="btn btn-link" title="{tr}Admin Newsletters{/tr}">{icon name="cog"} {tr}Admin Newsletters{/tr}</a> {/if} </div> {/if} {if $mailto_link} {remarksbox type=info title="External Client"} {tr}You can also send newsletters using an external client:{/tr} <a href="{$mailto_link|escape}">{tr}Compose{/tr}</a> {/remarksbox} {/if} {if $emited eq 'y'} {remarksbox type="note" title="{tr}Notice{/tr}" icon="lock"} {tr _0=$sent}The newsletter was sent to %0 email addresses{/tr} {/remarksbox} {if $errors} {remarksbox type='warning' title="{tr}Errors{/tr}" icon='error'} <div class="table-responsive"> <table class="table table-striped table-hover"> <tr> <th>{tr}User{/tr}</th> <th>{tr}Email{/tr}</th> <th>{tr}Message{/tr}</th> </tr> {section loop=$errors name=ix} <tr> <td>{$errors[ix].user|escape}</td> <td>{$errors[ix].email|escape}</td> <td>{$errors[ix].msg|escape}</td> </tr> {/section} </table> </div> {/remarksbox} {/if} {/if} {if $presend eq 'y'} <div id="confirmArea"> {remarksbox type='note' title="{tr}Please Confirm{/tr}"} <b>{tr}This newsletter will be sent to {$subscribers} email addresses.{/tr}</b> <br> {if $prefs.newsletter_throttle eq 'y'}{tr}Sending will be throttled with a batch size of {$prefs.newsletter_batch_size} and a pause period of {$prefs.newsletter_pause_length} seconds.{/tr}<br>{/if} {tr}Reply to:{/tr} {if empty($replyto) AND empty($sendfrom)}{$prefs.sender_email|escape} ({tr}default{/tr})<br>{elseif !empty($replyto) AND !empty($sendfrom)}{$replyto|escape}<br>{elseif !empty($sendfrom)}{$sendfrom|escape}<br>{else}{$replyto|escape}<br>{/if} {tr}Send from:{/tr} {if empty($sendfrom)}{$prefs.sender_email|escape} ({tr}default{/tr})<br>{else}{$sendfrom|escape}<br>{/if} {/remarksbox} <p> <form method="post" action="tiki-send_newsletters.php" target="resultIframe" id='confirmForm'> {ticket} <input type="hidden" name="nlId" value="{$nlId|escape}"> <input type="hidden" name="sendingUniqId" value="{$sendingUniqId|escape}"> <input type="hidden" name="editionId" value="{$info.editionId}"> <input type="hidden" name="subject" value="{$subject|escape}"> <input type="hidden" name="data" value="{$data|escape}"> <input type="hidden" name="dataparsed" value="{$dataparsed|escape}"> <input type="hidden" name="cookietab" value="3"> <input type="hidden" name="datatxt" value="{$info.datatxt|escape}"> <input type="hidden" name="replyto" value="{$replyto|escape}"> <input type="hidden" name="sendfrom" value="{$sendfrom|escape}"> <input type="hidden" name="wysiwyg" value="{$info.wysiwyg|escape}"> <input type="hidden" name="is_html" value="{$info.is_html|escape}"> <input type="submit" class="btn btn-primary" name="send" value="{tr}Send{/tr}" onclick="document.getElementById('confirmArea').style.display = 'none'; document.getElementById('sendingArea').style.display = 'block';"> <input type="submit" class="btn btn-primary" onclick="window.history.back();" name="cancel" value="{tr}Cancel{/tr}"> {foreach from=$info.files item=newsletterfile key=fileid} <input type='hidden' name='newsletterfile[{$fileid}]' value='{$newsletterfile.id}'> {/foreach} </form> </p> {if $subscribers gt 0} <h3>{tr}Recipients{/tr} <a id="flipperrecipients" href="javascript:flipWithSign('recipients')">[+]</a></h3> <div id="recipients" class="cbox" style="display:none; max-height: 250px; overflow: auto;"> <div class="table-responsive"> <table class="table"> <tr> <th>{tr}Email{/tr}</th> <th>{tr}Validated{/tr}</th> <th>{tr}Is user{/tr}</th> </tr> {foreach from=$subscribers_list item=sub key=ix} <tr> <td>{$sub.email|escape}</td> <td>{$sub.valid}</td> <td>{$sub.isUser}</td> </tr> {/foreach} </table> </div> </div> {/if} <h2>{tr}Preview{/tr}</h2> <h3>{tr}Subject{/tr}</h3> <div class="cbox wikitext">{$subject|escape}</div> <h3>{tr}HTML version{/tr}</h3> <div class="cbox wikitext">{$previewdata}</div> {if $allowTxt eq 'y'} <h3>{tr}Text version{/tr}</h3> {if !empty($info.datatxt)}<div class="cbox wikitext" >{$info.datatxt|escape|nl2br}</div>{/if} {if $txt}<div class="cbox wikitext">{$txt|escape|nl2br}</div>{/if} {/if} <h3>{tr}Files{/tr}</h3> <div class="cbox wikitext"> {if $info.files|@count gt 0} <ul> {foreach from=$info.files item=newsletterfile key=fileid} <li> {$newsletterfile.name|escape} ({$newsletterfile.type|escape}, {$newsletterfile.size|escape} {tr}bytes{/tr}) </li> {/foreach} </ul> {else} {tr}None{/tr} {/if} </div> </div> <div id="sendingArea" style="display:none"> <h3>{tr}Sending Newsletter{/tr} ...</h3> <h5> ... {if $prefs.newsletter_throttle eq 'y'}throttled {/if}{tr}sending to {$subscribers} addresses{/tr}</h5> {if $replyto ne ''}<h5> ... {tr}with the 'Reply To' email set to: {$replyto}{/tr}</h5>{/if} {if $sendfrom ne ''}<h5> ... {tr}with the 'Send From' email set to: {$sendfrom}{/tr}</h5>{/if} <div id="confirmed"></div> <iframe id="resultIframe" name="resultIframe" frameborder="0" style="width: 600px; height: 400px"></iframe> {jq} $('#resultIframe').on('load', function () { var root = this.contentDocument.documentElement, iframe = this; $('#confirmed').append($('.confirmation', root)); $('.throttle', root).each(function () { var url = 'tiki-send_newsletters.php?resume=' + $(this).data('edition') + '&replyto=' + $(this).data('replyto') + '&sendfrom=' + $(this).data('sendfrom') + '&ticket=' + $(this).data('ticket'); setTimeout(function () { $(iframe).attr('src', url); }, parseInt($(this).data('rate'), 10) * 1000); }); }); {/jq} </div> {else} {if $preview eq 'y'} <h2>{tr}Preview{/tr}</h2> <h3>{tr}Subject{/tr}</h3> <div class="cbox wikitext">{$info.subject|escape}</div> <h3> {tr}HTML version{/tr} <span style="font-size: 50% !important;">{icon name='copy' title='|{tr}Copy the preview html{/tr}' class='tips copy-html'}</span> </h3> {jq} $('.copy-html').tiki('copy')(() => $(".preview-html").html(), function() { $(this).animate({opacity: .5}, 200, function () { $(this).animate({opacity: 1}, 500); }); }); {/jq} <div class="cbox wikitext preview-html">{$previewdata}</div> {if $allowTxt eq 'y'} <h3>{tr}Text version{/tr}</h3> {if !empty($info.datatxt)}<div class="cbox wikitext" >{$info.datatxt|escape|nl2br}</div>{/if} {if $txt}<div class="cbox wikitext">{$txt|escape|nl2br}</div>{/if} {/if} <h3>{tr}Files{/tr}</h3> <ul> {foreach from=$info.files item=newsletterfile key=fileid} <li> {$newsletterfile.name|escape} ({$newsletterfile.type|escape}, {$newsletterfile.size|escape} {tr}bytes{/tr}) </li> {/foreach} </ul> {/if} {tabset name='tabs_send_newsletters'} {tab name="{tr}Edit{/tr}"} {* --- tab with editor --- *} <h2>{tr}Prepare a newsletter to be sent{/tr}</h2> <form action="tiki-send_newsletters.php" method="post" id='editpageform' enctype='multipart/form-data'> {ticket} <input type="hidden" name="editionId" value="{$info.editionId}"> <div class="mb-3 row"> <label class="col-form-label col-sm-2">{tr}Subject:{/tr}</label> <div class="col-sm-10"> <input type="text" maxlength="250" id="subject" name="subject" value="{$info.subject|escape}" class="form-control"> </div> </div> <div class="mb-3 row"> <label class="col-form-label col-sm-2">{tr}Newsletter:{/tr}</label> <div class="col-sm-10"> <select name="nlId" id="nlId" onchange="checkNewsletterTxtArea(this.selectedIndex);" class="form-select"> {section loop=$newsletters name=ix} <option value="{$newsletters[ix].nlId|escape}" {if $newsletters[ix].nlId eq $nlId}selected="selected"{/if}> {$newsletters[ix].name|escape} </option> {/section} </select> </div> </div> {if $tiki_p_use_content_templates eq 'y'} <div class="mb-3 d-flex flex-row flex-wrap align-items-center"> <label class="col-form-label col-sm-2">{tr}Apply content template{/tr}</label> <div class="col-sm-7"> <select name="templateId" onchange="javascript:needToConfirm=false;document.getElementById('editpageform').submit();" class="form-control"> <option value="0">{tr}none{/tr}</option> {section name=ix loop=$templates} <option value="{$templates[ix].templateId|escape}" {if $templateId eq $templates[ix].templateId}selected="selected"{/if}> {$templates[ix].name|escape} </option> {/section} </select> </div> <div class="col-sm-3"> {button _text="{tr}Admin templates{/tr}" href='tiki-admin_content_templates.php' _target='blank'} </div> </div> {/if} {if $tpls} <div class="mb-3 row"> <label class="col-form-label col-sm-2">{tr}Apply template{/tr}</label> <div class="col-sm-10"> <select id="usedTpl"name="usedTpl" class="form-control"> <option value="">{tr}none{/tr}</option> {section name=ix loop=$tpls} <option value="{$tpls[ix]|escape}" {if $usedTpl eq $tpls[ix]}selected="selected"{/if}>{$tpls[ix]}</option> {/section} </select> </div> </div> {/if} <div class="mb-3 row"> <label class="col-form-label col-sm-2">{tr}Data HTML:{/tr}</label> </div> <div class="mb-3 row"> <div class="col-sm-12"> {textarea class="form-control" name='data' id='editwiki' _preview=$prefs.ajax_edit_previews}{$info.data}{/textarea} </div> </div> <div class="mb-3 d-flex flex-row flex-wrap align-items-center"> <label class="col-form-label col-sm-2">{tr}Must be wiki parsed:{/tr}</label> <div class="col-sm-3"> <div class="form-check"> <label class="form-check-label"> <input type="checkbox" name="wikiparse" class="form-check-input" {if empty($info.wikiparse) or $info.wikiparse eq 'y'} checked="checked"{/if}> {tr}Wiki Parsed{/tr} </label> </div> </div> <div class="col-sm-3"> <div class="form-check"> <label class="form-check-label"> <input type="checkbox" name="is_html" class="form-check-input" {if !empty($info.is_html)} checked="checked"{/if}> {tr}Is HTML{/tr} </label> </div> </div> </div> <div class="mb-3 row" id="txtcol1"{if $allowTxt eq 'n'} style="display:none;"{/if}> <label class="col-form-label col-sm-2">{tr}Data Txt:{/tr}</label> <div class="col-sm-10"> <textarea id='editwikitxt' name="datatxt" rows="20" cols="80" class="form-control">{$info.datatxt|escape}</textarea> </div> </div> <div class="mb-3 row" id="clipcol1"{if $allowArticleClip eq 'n'} style="display:none;"{/if}> <label class="col-form-label col-sm-2">{tr}Article Clip (read only):{/tr}</label> <div class="col-sm-10"> <input type="submit" name="clipArticles" value="{tr}Clip Now{/tr}" class="wikiaction tips btn btn-primary" title="{tr}Clip Articles{/tr}" onclick="needToConfirm=false"> </div> </div> <div class="mb-3 row" id="clipcol2"{if $allowArticleClip eq 'n'} style="display:none;"{/if}> <label class="col-form-label col-sm-2"></label> <div class="col-sm-10"> {tr}To include the article clipping into your newsletter, cut and paste it into the contents.{/tr} <br>{tr}If autoclipping is enabled, you can also enter "~~~articleclip~~~" which will be replaced with the latest clip when sending.{/tr} {if !empty($articleClip)} {remarksbox type="warning" title="{tr}Notice{/tr}"} {tr}Be careful not to paste articles that must not be seen by the recipients{/tr} {/remarksbox} {/if} <textarea id='articlecliptxt' class="form-control" name="articleClip" rows="20" cols="80" readonly="readonly">{$articleClip}</textarea> </div> </div> <div class="mb-3 row"> <label class="col-form-label col-sm-2">{tr}Attached Files:{/tr}</label> <div class="col-sm-10"> <div style='display: none' id='newsletterfileshack'></div> <div id="newsletterfiles"> {foreach from=$info.files item=newsletterfile key=fileid} <div id='newsletterfileid_{$fileid}'> <a href="javascript:remove_newsletter_file('{$fileid}');" class="btn btn-primary">{tr}remove{/tr}</a> {$newsletterfile.name|escape} ({$newsletterfile.type|escape}, {$newsletterfile.size|escape} {tr}octets{/tr}) <input type='hidden' name='newsletterfile[{$fileid}]' value='{$newsletterfile.id}'> </div> {/foreach} </div> <p><a class="btn btn-primary" href="javascript:add_newsletter_file();">{tr}To add a file, click here{/tr}</a></p> </div> </div> <div class="mb-3 row"> <label class="col-form-label col-sm-2">{tr}Reply To Email{/tr}</label> <div class="col-sm-10"> <input type="email" name="replyto" id="replyto" value="{$replyto|escape}" class="form-control"> <div class="form-text"> {tr}if not:{/tr} {$prefs.sender_email|escape|default:"<em>{tr}Sender email not set{/tr}</em>"} </div> </div> </div> <div class="mb-3 row"> <label class="col-form-label col-sm-2">{tr}Send From Email{/tr}</label> <div class="col-sm-10"> <input type="email" name="sendfrom" id="sendfrom" value="{$sendfrom|escape}" class="form-control"> <div class="form-text"> {tr}if not:{/tr} {$prefs.sender_email|escape|default:"<em>{tr}Sender email not set{/tr}</em>"} </div> </div> </div> <div class="mb-3 row"> <label class="col-form-label col-sm-2"></label> <div class="col-sm-10"> <input type="submit" name="preview" value="{tr}Preview{/tr}" class="wikiaction tips btn btn-primary" title="{tr}Send Newsletters{/tr}|{tr}Preview your changes.{/tr}" onclick="needToConfirm=false;" > <input type="submit" name="save_only" value="{tr}Save as Draft{/tr}" class="wikiaction tips btn btn-primary" title="{tr}Send Newsletters{/tr}|{tr}Save your changes.{/tr}" onclick="needToConfirm=false;" > <input type="submit" name="save" value="{tr}Send Newsletter{/tr}" class="wikiaction tips btn btn-primary" title="{tr}Send Newsletters{/tr}|{tr}Save any changes and send to all subscribers.{/tr}" onclick="needToConfirm=false" > </div> </div> </form> {/tab} {assign var=name value="{tr _0=$cant_drafts}Drafts (%0){/tr}"} {tab name=$name} {* --- tab with drafts --- *} {assign var=channels value=$drafts} {assign var=view_editions value='n'} {assign var=offset value=$dr_offset} {assign var=next_offset value=$dr_next_offset} {assign var=prev_offset value=$dr_prev_offset} {assign var=actual_page value=$dr_actual_page} {assign var=cant_pages value=$dr_cant_pages} {assign var=cur value='dr'} {assign var=bak value='ed'} {assign var=sort_mode value=$dr_sort_mode} {assign var=sort_mode_bak value=$ed_sort_mode} {assign var=offset value=$dr_offset} {assign var=offset_bak value=$ed_offset} {assign var=find value=$dr_find} {assign var=find_bak value=$ed_find} {assign var=tab value=2} <h2>{$name}</h2> {include file='sent_newsletters.tpl'} {/tab} {assign var=name value="{tr _0=$cant_editions}Sent Editions (%0){/tr}"} {tab name=$name} {* --- tab with editions --- *} {assign var=channels value=$editions} {assign var=view_editions value='y'} {assign var=offset value=$ed_offset} {assign var=next_offset value=$ed_next_offset} {assign var=prev_offset value=$ed_prev_offset} {assign var=actual_page value=$ed_actual_page} {assign var=cant_pages value=$ed_cant_pages} {assign var=cur value='ed'} {assign var=bak value='dr'} {assign var=sort_mode value=$ed_sort_mode} {assign var=sort_mode_bak value=$dr_sort_mode} {assign var=offset value=$ed_offset} {assign var=offset_bak value=$dr_offset} {assign var=find value=$ed_find} {assign var=find_bak value=$dr_find} {assign var=tab value=3} <h2>{$name}</h2> {include file='sent_newsletters.tpl'} {/tab} {/tabset} {/if} {jq notonready=true} var newsletterfileid={{$info.files|@count}}; function add_newsletter_file() { document.getElementById('newsletterfileshack').innerHTML='<div id="newsletterfileid_'+newsletterfileid+'" class="mb-3 d-flex flex-row flex-wrap align-items-center"><input type="file" name="newsletterfile['+newsletterfileid+']"><a href="javascript:remove_newsletter_file('+newsletterfileid+');" class="btn btn-primary">{tr}remove{/tr}</a></div>'; document.getElementById('newsletterfiles').appendChild(document.getElementById('newsletterfileid_'+newsletterfileid)); newsletterfileid++; } function remove_newsletter_file(id) { document.getElementById('newsletterfiles').removeChild(document.getElementById('newsletterfileid_'+id)); } {/jq}
Related content
Most Popular Tags
adze
american woods
axe
broadleaf
broadleaf aspen
broadleafs
community
conifers
dendrology
eco friendly
education
froe
glossary
green
green woodworking
hammer
hard wood
hard woods
hardwoods
hickory
history
how to
joinery
literature
machinery
material processing
media
merchants
mortise
people
plane
poplar
safety
shaker
shave
society
soft woods
spokeshave
sustainable
template
tenon
terminology
tools
wood
works