Оnправка формы без formit
Всем привет. Извините за дурацкий вопрос.
На сайте нужно отправлять простейшую форму, ставить FormIt не хочется просто так :) Хочется сделать по своему. Без MODx отправил бы постом на файл скрипта типа такого
Подскажите пожалуйста, как сделать сниппет в идеологии MODX что бы отправить данные из формы этому сниппету?
На сайте нужно отправлять простейшую форму, ставить FormIt не хочется просто так :) Хочется сделать по своему. Без MODx отправил бы постом на файл скрипта типа такого
<?php
if((isset($_POST['phone'])&&$_POST['phone']!="")){
$to = 'email@gmail.com';
$subject = 'Заявка с сайта';
$message = '
<html>
<head>
<title>Заказ с сайта</title>
</head>
<body>
<p>Имя: '.$_POST['name'].'</p>
<p>Телефон: '.$_POST['phone'].'</p>
</body>
</html>';
$headers = "Content-type: text/html; charset=utf-8 \r\n";
$headers .= "From: Отправитель <no-reply@site.ru>\r\n";
mail($to, $subject, $message, $headers);
}
?>
Могу сделать сниппет такой, потом ресурс, и отправлять на ресурс, но это ведь вообще не правильно в MODx.Подскажите пожалуйста, как сделать сниппет в идеологии MODX что бы отправить данные из формы этому сниппету?
Комментарии: 3
Да всё также, как и на простом php. Вызываешь сниппет с этим скриптом на той же странице, где и форма. Саму форму отправляешь постом на текущею страницу.
<form action="" method="POST">
Страница после чего перезагружается и сниппет отрабатывает.
У MODX есть настройки почты. Например, в системных настройках есть раздел SMTP — если его заполнить, почта будет отправляться через SMTP.
Если ты хочешь учитывать системные настройки, можно воспользоваться таким скриптом: https://ilyaut.ru/reposts/sending-mail-through-modmail/
Если ты хочешь учитывать системные настройки, можно воспользоваться таким скриптом: https://ilyaut.ru/reposts/sending-mail-through-modmail/
Ну если хочется аж тру MODX идеологию, то rtfm.modx.com/revolution/2.x/developing-in-modx/advanced-development/modx-services/modmail
$message = $modx->getChunk('myEmailTemplate');
$modx->getService('mail', 'mail.modPHPMailer');
$modx->mail->set(modMail::MAIL_BODY,$message);
$modx->mail->set(modMail::MAIL_FROM,'me@example.org');
$modx->mail->set(modMail::MAIL_FROM_NAME,'Johnny Tester');
$modx->mail->set(modMail::MAIL_SUBJECT,'Check out my new email template!');
$modx->mail->address('to','user@example.com');
$modx->mail->address('reply-to','me@xexample.org');
$modx->mail->setHTML(true);
if (!$modx->mail->send()) {
$modx->log(modX::LOG_LEVEL_ERROR,'An error occurred while trying to send the email: '.$modx->mail->mailer->ErrorInfo);
}
$modx->mail->reset();
Не знаю, актуально ли еще это. Все отправляю через mail() или smtp.
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.