© Сделано на LiveStreet
Дизайн - ©2009 MODx RED Group
[!unisenderConnector? &listId=`ID рассылки куда подписываем` &apiKey=`ApiKeyUnisender` &tags=`список меток через запятую. передаются вместе с подписчиком чтобы идентифицировать где он подписался` &tplForm=`unisender`!]При нажатии «ОК» введённый емейл добавляется в базу.
Добавление происходит без перезагрузки страницы.
Перед добавлением происходит проверка на корректность емейла.
При удачном добавлении пользователю выводится соответствующее сообщение.
В админке реализуется модуль рассылки сообщений по базе подписчиков.
В модуле присутствует поле ввода темы сообщения, и редактор для ввода тела сообщения.
CREATE TABLE IF NOT EXISTS `nasklade` (
`idp` int(11) NOT NULL AUTO_INCREMENT,
`prodid` int(11) NOT NULL, #ключ документа
`uname` varchar(20) NOT NULL, #имя подписчика
`uemail` varchar(50) NOT NULL, #email подписчика
PRIMARY KEY (`idp`),
KEY `prodid` (`prodid`,`uemail`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=8 ;
defined('IN_MANAGER_MODE') or die();
$e = &$modx->Event;
if ($e->name == "OnDocFormSave"){
$id = $_POST['id'];
if($id) { //check Id
$field1 = $modx->getTemplateVar('invertory','',$id); //количество на складе
$field2 = $modx->getTemplateVar('miniweigt','',$id); //минимальное число товаров для заказа
if($field1 >= $field2){
global $modx;
$aTitle = $modx->getPageInfo($id,'','pagetitle'); //get pagetitle
$tblEmails= $modx->getFullTableName('nasklade');
$emails= $modx->db->select("SELECT idp, prodid, uname, uemail FROM $tblEmails WHERE prodid = '$id'");
if( $modx->db->getRecordCount( $emails ) >= 1 ) {
while( $rowmail = $modx->db->getRow( $emails ) ) {
$match=array("%X%","%N%");
$replace=array($aTitle['pagetitle'],$rowmail['uname']);
$message = str_replace($match, '"'. $replace. '" ', wordwrap($message, 100));
sendEmail($rowmail['uemail'], $subject, $message);
// if ($sendmail) {
$modx->db->delete($tblEmails, "idp = ".$rowmail['idp']."");
// }
}
}
}
}
}
// Send email
function sendEmail($to, $subject, $message) {
$headers ="MIME-Version: 1.0\n".
"Content-type: text/html; charset=utf-8\n".
"From: ".$_SERVER['SERVER_NAME']."<no-reply@{$_SERVER['HTTP_HOST']}>\n".
"X-Mailer: PHP/".phpversion();
$body = <<<EOD
$message
EOD;
$mail = mail($to, $subject, $body, $headers);
}
&subject=Email Subject;text;товар в наличии &email=Email Address;text; &message=Message (%X% will be replaced);textarea;Здравствуйте, %N%. Товар %X% появился на складе нашего магазина
