
//get the selected newsletter $doc = $modx->getDocument($id);
//get any template variable values for this doc
$tvs = $modx->getTemplateVarOutput('*', $id);
//replace template variables for proper output
$body = insert('content', $intro . $doc['content'], $template['content']);
$body = insert('longtitle', $doc['longtitle'], $body);
$body = insert('image', $tvs['image'], $body);$baspath= $this->config["base_path"] . "manager/includes";
$baspath= "/enter/your/full/server/path/to/manager/includes/folder/here";

For 1.0.2:<head> <script type="text/javascript" src="manager/media/script/mootools/mootools.js"></script> <script src="[(base_url)]assets/modules/temailer/js/temailer.js" type="text/javascript"></script> <base href="http://www.site.com/"></base> </head>
CREATE TABLE modx_temailinggroup ( groupname varchar(150) NOT NULL default '', emailid int(11) NOT NULL default '0', id int(11) NOT NULL auto_increment, PRIMARY KEY (id) ) ENGINE=MyISAM DEFAULT CHARSET=latin1;
`groupid` int(11) NOT NULL default '0'
<script type="text/javascript" src="./assets/modules/temailer/js/mootools.js"></script>
<script type="text/javascript" src="./assets/modules/temailer/js/temailer.js"></script>
<script type="text/javascript" src="./assets/modules/temailer/js/subscribe.js"></script>
<script type = "text/javascript" >
function te_subscribe()
{
//signup
new Ajax('assets/modules/temailer/subscribe.php?action=subscribe',
{
update: $('temailer_form'),
method: 'post',
postBody: 'name=' + $('temailer_name').value + '&email=' + $('temailer_email').value
}).request();
}
< /script>
<div id="temailer_form">
<h4>SIGN UP FOR EMAIL UPDATES</h4>
<input type="text" value="Friend" class="temailer input" id="temailer_name">
<input type="text" onfocus="if (this.value=='Type your email address here...') { this.value=''; }" value="Type your email address here..." class="temailer input" id="temailer_email">
<input type="button" onclick="emailCheck();" class="temailer button" value="Sign Up">
</div>
// contents of subscribe.js //
function emailCheck () {
var emailStr = $('temailer_email').value;
var checkTLD=1;
var knownDomsPat=/^(com|net|org|edu|int|mil|gov|arpa|biz|aero|name|coop|info|pro|museum)$/;
var emailPat=/^(.+)@(.+)$/;
var specialChars="\\(\\)><@,;:\\\\\\\"\\.\\[\\]";
var validChars="\[^\\s" + specialChars + "\]";
var quotedUser="(\"[^\"]*\")";
var ipDomainPat=/^\[(\d{1,3})\.(\d{1,3})\.(\d{1,3})\.(\d{1,3})\]$/;
var atom=validChars + '+';
var word="(" + atom + "|" + quotedUser + ")";
var userPat=new RegExp("^" + word + "(\\." + word + ")*$");
var domainPat=new RegExp("^" + atom + "(\\." + atom +")*$");
var matchArray=emailStr.match(emailPat);
if (matchArray==null) {
alert("Email address seems incorrect (check @ and .'s)");
return false;
}
var user=matchArray[1];
var domain=matchArray[2];
for (i=0; i<user.length; i++) {
if (user.charCodeAt(i)>127) {
alert("Ths username contains invalid characters.");
return false;
}
}
for (i=0; i<domain.length; i++) {
if (domain.charCodeAt(i)>127) {
alert("Ths domain name contains invalid characters.");
return false;
}
}
if (user.match(userPat)==null) {
alert("The username doesn't seem to be valid.");
return false;
}
var IPArray=domain.match(ipDomainPat);
if (IPArray!=null) {
// this is an IP address
for (var i=1;i<=4;i++) {
if (IPArray[i]>255) {
alert("Destination IP address is invalid!");
return false;
}
}
te_subscribe();
}
var atomPat=new RegExp("^" + atom + "$");
var domArr=domain.split(".");
var len=domArr.length;
for (i=0;i<len;i++) {
if (domArr[i].search(atomPat)==-1) {
alert("The domain name does not seem to be valid.");
return false;
}
}
if (checkTLD && domArr[domArr.length-1].length!=2 &&
domArr[domArr.length-1].search(knownDomsPat)==-1) {
alert("The address must end in a well-known domain or two letter " + "country.");
return false;
}
if (len<2) {
alert("This address is missing a hostname!");
return false;
}
// If we've gotten this far, everything's valid!
te_subscribe();
}