Здравствуйте, перед мною стояла задача размещения 2 форм обратной связи с разными полями на одной странице, но я не нашел подходящего готового модуля и решил создать его сам вписав сразу в него свой дизайн. У меня все получилось, все работает, но есть один недочет: данный модуль отправляет два одинаковых письма на почту(я так подозреваю это потому, что в админке нужно создавать 2 модуля для вывода 2 форм и давать одной номер один, а второй 2 в меню модуля). Как сделать, чтобы приходило только одно письмо? Или может посоветуете уже какой-то готовый модуль, чтобы можно было на одной странице разместить 2 разные формы обратной связи и не сложно было вписать свой дизайн в него.
Вот код самого модуля:
<?php
//Если форма отправлена
$doc = JFactory::getDocument();
if(isset($_POST['1'])) {
$number = 1;
$subject = "Швидкий зв'язок";
//Проверка Поля ИМЯ
if(trim($_POST['name']) == '') {
$hasError = true;
} else {
$name = trim($_POST['name']);
}
//Проверка правильности ввода EMAIL
if(trim($_POST['email']) == '') {
$hasError = true;
} else if (!eregi("^[A-Z0-9._%-]+@[A-Z0-9._%-]+\.[A-Z]{2,4}$", trim($_POST['email']))) {
$hasError = true;
} else {
$email = trim($_POST['email']);
}
if(trim($_POST['name']) == '') {
$hasError = true;
} else {
$name = trim($_POST['name']);
}
$tel = trim($_POST['tel']);
$company = trim($_POST['company']);
//Проверка наличия ТЕКСТА сообщения
if(trim($_POST['message']) == '') {
$hasError = true;
} else {
if(function_exists('stripslashes')) {
$message = stripslashes(trim($_POST['message']));
} else {
$message = trim($_POST['message']);
}
}
//Если ошибок нет, отправить email
if(!isset($hasError)) {
$emailTo = $params->get('mail'); //Сюда введите Ваш email
$body = "Ім'я: $name \n\nE-mail: $email \n\nКомпанія: $company \n\nТелефон: $tel \n\nПовідомлення:\n $message";
$headers = 'Повідомлення для <'.$emailTo.'>' . "\r\n" . 'від: ' . $email;
mail($emailTo, $subject, $body, $headers);
$emailSent = true;
}
}
elseif(isset($_POST['2'])) {
$number = 2;
$subject = "Заявка на послугу бізнес-консультація";
//Проверка Поля ИМЯ
if(trim($_POST['name']) == '') {
$hasError = true;
} else {
$name = trim($_POST['name']);
}
//Проверка правильности ввода EMAIL
if(trim($_POST['email']) == '') {
$hasError = true;
} else if (!eregi("^[A-Z0-9._%-]+@[A-Z0-9._%-]+\.[A-Z]{2,4}$", trim($_POST['email']))) {
$hasError = true;
} else {
$email = trim($_POST['email']);
}
$tel = trim($_POST['tel']);
$company = trim($_POST['company']);
//Если ошибок нет, отправить email
if(!isset($hasError)) {
$emailTo = $params->get('mail'); //Сюда введите Ваш email
$body = "Ім'я: $name \n\nE-mail: $email \n\nТелефон: $tel";
$headers = 'Повідомлення для <'.$emailTo.'>' . "\r\n" . 'від: ' . $email;
mail($emailTo, $subject, $body, $headers);
$emailSent = true;
}
}
require jModuleHelper::getLayoutPath('mod_pbforms',$params->get('layout','default'));
?>
а вот код шаблона default:
<?php
defined('_JEXEC') or die;?>
<div class="feedback">
<?php
if($params->get('number') == 1) {
if($number == 1){
if(isset($hasError)) {
<p class="error">Перевірте правильність заповнення полів.</p>
<?php } ?>
<?php if(isset($emailSent) && $emailSent == true) {
<p><strong>Лист успішно відправлений!</strong></p>
<?php }
}
?>
<h2>Швидкий зв'язок</h2>
<form method="post" name="form1">
<p>Ім'я<span>*</span></p>
<input type="text" name="name" placeholder="Ім'я" required=""/>
<p>Компанія</p>
<input type="text" name="company" placeholder="Компанія" />
<p>E-mail<span>*</span></p>
<input type="email" name="email" placeholder="E-mail" required=""/>
<p>Телефон</p>
<input type="tel" name="tel" placeholder="Телефон"/>
<p>Текст повідомлення<span>*</span></p>
<textarea name="message" placeholder="Текст повідомлення" required=""></textarea>
<button type="submit" name="1">Відправити</button>
</form>
<?php }
if($params->get('number') == 2){
if($number == 2){
if(isset($hasError)) {
<p class="error">Перевірте правильність заповнення полів.</p>
<?php } ?>
<?php if(isset($emailSent) && $emailSent == true) {
<p><strong>Заявка успішно відправлена!</strong></p>
<?php }
}?>
<h2>Заявка на послугу<br/>бізнес-консультація</h2>
<form method="post" name="form2">
<img src="<?php echo JUri::base();?>templates/<?php echo $doc->template;?>/img/free.png" alt=""/>
<b>Перша консультація<br/> безкоштовна!</b>
<p>Ім'я<span>*</span></p>
<input type="text" name="name" placeholder="Ім'я" required=""/>
<p>E-mail<span>*</span></p>
<input type="email" name="email" placeholder="E-mail" required=""/>
<p>Телефон</p>
<input type="tel" name="tel" placeholder="Телефон"/>
<button type="submit" name="2">Відправити</button>
</form>
<?php }?></div>