0 Пользователей и 1 Гость просматривают эту тему.
  • 1 Ответов
  • 814 Просмотров
*

Dark19

  • Новичок
  • 4
  • 0 / 0
Модуль Обратная связь
« : 09.10.2014, 19:11:19 »
Здравствуйте, перед мною стояла задача размещения 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>
« Последнее редактирование: 09.10.2014, 19:19:23 от Dark19 »
*

aspidy

  • Завсегдатай
  • 1009
  • 55 / 1
  • Миграция joomla 1.0-1.5-2.5
Re: Модуль Обратная связь
« Ответ #1 : 10.10.2014, 07:42:08 »
В стандартном компоненте это не предусмотрено. Подойдет любой продвинутый компонент обратной связи. Например RSForm или ChronoForms
Мелкий ремонт. skype poisk-plus
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Не выводится модуль в материале {loadposition acc1}

Автор InFighter

Ответов: 15
Просмотров: 12248
Последний ответ 02.07.2018, 10:04:42
от Юльчик
Периодически пропадает модуль "HTML-код" с главной страницы (Joomla! 2.5.24)

Автор fave

Ответов: 1
Просмотров: 633
Последний ответ 19.02.2018, 17:32:31
от arma
Модуль игнорирующий перезагрузку страницы

Автор Den85

Ответов: 7
Просмотров: 534
Последний ответ 28.01.2018, 18:39:04
от dmitry_stas
Модуль/код вывода в конце статьи

Автор DDAANN

Ответов: 0
Просмотров: 315
Последний ответ 20.09.2017, 10:20:48
от DDAANN
Не отображается модуль HTML-текст

Автор Inngrid

Ответов: 8
Просмотров: 931
Последний ответ 18.08.2017, 10:58:36
от lexxbry