Новости Joomla

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

pH43

  • Захожу иногда
  • 335
  • 8 / 1
Super Simple Contact Form
« : 23.02.2018, 16:30:48 »
Всегда модуль работал стабильно, но на хостинге от вебнеймс условие - при отправке с сайта поле формы from должно содержать емейл типа ...@доменмоегосайта.ru

В связи с этим вопрос, может кто сталкивался, что делать, куда дописать кусок с from и в скрипт и в каком виде? Пробовал в default.php добавить поле $from="...@доменмоегосайта.ru" - не сработало, либо где-то еще надо было прописать...
« Последнее редактирование: 25.02.2018, 13:44:31 от pH43 »
*

NewUsers

  • Живу я здесь
  • 2307
  • 215 / 0
  • +375 (25) 627-16-99 (WhatsApp, Telegram)
Re: Super Simple Contact Form
« Ответ #1 : 23.02.2018, 16:58:41 »
Не понятно в чем проблема?
Занимаюсь создание расширений для Joomla 3.10.x и 4.2.x | Доработка и настройка сайтов. Занимаюсь создание Интернет магазинов с нуля на собственном компоненте + оптимизация загрузки страницы (после предоставляю техподдержку).
Работа с DOM деревом на PHP
*

Ilhom666

  • Завсегдатай
  • 1384
  • 184 / 0
Re: Super Simple Contact Form
« Ответ #2 : 23.02.2018, 19:53:32 »
так этот модуль стандартную систему отправки почты Joomla использует?
*

beliyadm

  • Легенда
  • 9758
  • 1664 / 66
  • Севастополь, Россия
Re: Super Simple Contact Form
« Ответ #3 : 23.02.2018, 22:18:58 »
но на хостинге от вебнеймс условие - при отправке с сайта поле формы from должно содержать емейл типа ...@доменмоегосайта.ru
Бред какой, а если я через SMTP отправляю от стороннего сервера? Тоже мой домен должен быть указан? Ерунда какая-то
Все истины, которые я хочу вам изложить, — бесстыдная ложь. Сделать всё хорошо
TLG: @Beliyadm
*

pH43

  • Захожу иногда
  • 335
  • 8 / 1
Re: Super Simple Contact Form
« Ответ #4 : 24.02.2018, 13:16:29 »
Бред какой, а если я через SMTP отправляю от стороннего сервера? Тоже мой домен должен быть указан? Ерунда какая-то

Может и бред, но требуют.
А, например, на хостинге beget схожее условие по сути, просто там автозаменой сам хостинг это делает, видимо и в отправителе подставляется noreply@unverified.beget.ru в любом случае.

Вебнеймс сам ничего в отправителя не вставляет и требует, чтобы поле from содержало ваш доменный ящик, существующий на хостинге. В связи с этими  мучения)

По факту в дефолт куда-то надо пихнуть поле from:


Код
<?php

defined('_JEXEC') or die;

JHtml::_('jquery.framework');

JHtml::script(JURI::base() . 'modules/mod_super_simple_contact_form/assets/js/jquery.validate.min.js');
JHtml::stylesheet(JURI::base() . 'modules/mod_super_simple_contact_form/assets/css/contact-form-style.css');

$captcha_on = $params->get('captcha');
$captcha_pub = $params->get('public_captcha_key');
$captcha_pri = $params->get('private_captcha_key');

$myemail = $params->get('myemail');
$pop_up = $params->get('pop_up');

$reply = $params->get('reply');
$emailfrom = $params->get('emailfrom');

$textreply = $params->get('textreply');
$subjectreply = $params->get('subjectreply');
$namesender = $params->get('namesender');

$input_name = $params->get('input_name');
$input_phone = $params->get('input_phone');
$input_message = $params->get('input_message');

$additional_information = $params->get('additional_information');



if ($captcha_on == 'true') {
JHtml::script('https://www.google.com/recaptcha/api.js');
}



?>



<div id="wrap">
<?php
    if(isset($_POST['submitcontactform'])) {   

    if ($captcha_on == 'true') {
        if(isset($_POST['g-recaptcha-response'])){
          $captcha=$_POST['g-recaptcha-response'];
        }
        if(!$captcha){
          echo '<h4 class="error">'.$params->get('error_message_captcha').'</h4>';
          echo '<a href="" id="refreshPage">'.$params->get('error_message_captcha_try').'</a>';
          die;
        }
        $response=file_get_contents("https://www.google.com/recaptcha/api/siteverify?secret=".$captcha_pri."&response=".$captcha."&remoteip=".$_SERVER['REMOTE_ADDR']);
        if($response.success==false)
        {
          die;
        } else
        {
          echo '';
        }
       

    }
       
// Clean up the input values
foreach($_POST as $key => $value) {
    if(ini_get('magic_quotes_gpc'))
        $_POST[$key] = stripslashes($_POST[$key]);
   
    $_POST[$key] = htmlspecialchars(strip_tags($_POST[$key]));
}

// reference
$name = $_POST["name"];
$phone = $_POST["phone"];
$email = $_POST["email"];
$c_message = $_POST["message"];

$message_theme = $params->get('message_theme');

// Send the email
$to = "$myemail";

$subject = "$message_theme";

$message  = '<html><body>';
$message .= "<table>";
if (!empty($name)) {
$message .= "<tr>";
    $message .= "<td>";
        $message .= "<strong>" . "$input_name" . "</strong>" . ":";
    $message .= "</td>";
    $message .= "<td style='padding-left:12px;'>";
        $message .= "$name";
    $message .= "</td>";
$message .= "</tr>";
}
if (!empty($phone)) {
$message .= "<tr>";
    $message .= "<td>";
        $message .= "<strong>" . "$input_phone" . "</strong>" . ":";
    $message .= "</td>";
    $message .= "<td style='padding-left:12px;'>";
        $message .= "$phone";
    $message .= "</td>";
$message .= "</tr>";
}
if (!empty($c_message)) {
$message .= "<tr>";
    $message .= "<td  colspan='2'>";
        $message .= "<strong>" . "$input_message" . "</strong>" . ":";
    $message .= "</td>";
$message .= "</tr></table><table>";
$message .= "<tr>";
$message .= "<td><p>";
    $message .= "$c_message";
$message .= "</p></td></tr>";
}
$message .= "</table><br><br>";
if ($additional_information == 'true') {
$message .= "<p style='font-size: 10px; color: #666;'>";
$message .= "IP: " . $_SERVER['REMOTE_ADDR'] . "<br>";
$message .= $_SERVER['HTTP_USER_AGENT'] . "<br>";
$message .= $_SERVER['HTTP_REFERER'];
$message .= "<p>";
}

$message .= '</body></html>';

$headers  = "MIME-Version: 1.0\r\n";
$headers .= "Content-type: text/html; charset=UTF-8\r\n";
$headers .= "From: $name <$email>\r\n";

mail($to, $subject, $message, $headers);

if ($reply == 'true') {

    $to = "$email";

    $subject = "$subjectreply";

    $message  = '<html><body>';
    $message .= "$textreply";
    $message .= '</body></html>';

    $headers  = "MIME-Version: 1.0\r\n";
    $headers .= "Content-type: text/html; charset=UTF-8\r\n";
    $headers .= "From: $namesender <$emailfrom>\r\n";

    mail($to, $subject, $message, $headers);
}


die("<h4 class='success'>" . $params->get('success_message_h') . "</h4><span class='success'>" . $params->get('success_message_p') . "</span>");

}

?>

<?php if ($pop_up == 'true') { ?>
    <button class="fadePopup<?php echo $module->id ?> fadePopup"><?php echo $params->get('button_name'); ?></button>
    <div class="mypopup a<?php echo $module->id ?>">
    <div class="mypopup-overlay"></div>
    <div class="mypopup-wrapper">
    <a class="mypopup-close a<?php echo $module->id ?>"></a>
    <div class="mypopup-content box shadow">
<?php } ?>

<div id='formContainer'>
       
            <form id="formBody<?php echo $module->id ?>" class='formBody FlowupLabels' method="POST" action="" name="submit">

                <div id='formHeader'>
                    <p><?php echo $params->get('text_before'); ?></p>
                </div>

                    <?php if ($params->get('use_name') == 'true') { ?>
                            <div class='fl_wrap'>
                                <label class="fl_label" for="name"><?php echo $params->get('input_name'); ?></label>
                                <input class="fl_input" type="text" id="name" name="name" />
                            </div>
                    <?php } else {echo '';} ?>

                    <?php if ($params->get('use_phone') == 'true') { ?>
                            <div class='fl_wrap'>
                                <input class="fl_input" type="text" id="phone" name="phone" />
                                <label class="fl_label" for="phone"><?php echo $params->get('input_phone'); ?></label>
                            </div>
                    <?php } else {echo '';} ?>

                    <?php if ($params->get('use_email') == 'true') { ?>
                            <div class='fl_wrap'>
                                <input class="fl_input" type="text" id="email" name="email" onkeydown="return check(event);"/>
                                <label class="fl_label" for="email"><?php echo $params->get('input_email'); ?></label>
                            </div>
                    <?php } else {echo '';} ?>

                    <?php if ($params->get('use_message') == 'true') { ?>
                            <div class='fl_wrap fl_wrap_textarea'>
                            <textarea class="fl_input" id="message" name="message" rows="5" cols="20" /></textarea>
                            <label class="fl_label" for="message"><?php echo $params->get('input_message'); ?></label>
                            </div>
                    <?php } else {echo '';} ?>
                            <?php if ($captcha_on == 'true') { ?>
                               <div class="g-recaptcha" data-sitekey="<?php echo $captcha_pub; ?>"></div>
                            <?php } ?>
                            <input class='rf_submit' type="submit" value="<?php echo $params->get('message_button'); ?>" id="send<?php echo $module->id ?>" name="submitcontactform" />


                        <div id='formHeader'>
                            <p><?php echo $params->get('text_after'); ?></p>
                        </div>
                   
            </form>
        <div id="response<?php echo $module->id ?>"></div>


        <!-- Why it doesn't work in firefox -->

        <script>
        function check(event)
        {
            if (event.keyCode==32)
            {
                return false;
            }
        }

        <?php if ($captcha_on == 'true') { ?>
            jQuery('#refreshPage').click(function() {
                location.reload();
            });
        <?php } ?>

        </script>
</div>

<?php if ($pop_up == 'true') { ?>
    </div>
    </div>
    </div>   
<?php } ?>

</div>


<?php if ($pop_up == 'true') { ?>
<script type="text/javascript">
    jQuery(function() {
        var body = jQuery('body'),
            popup = jQuery('.mypopup.a<?php echo $module->id ?>');

        jQuery('.fadePopup<?php echo $module->id ?>').click(function() {
          body.addClass('popup-active');
          popup.fadeIn();
        });

        jQuery('.mypopup-close.a<?php echo $module->id ?>').add('.mypopup-overlay').click(function() {
          body.removeClass('popup-active');
          popup.fadeOut();
        });

    });
</script>
<?php } ?>

        <script type="text/javascript">
            jQuery(function() {
                // Validate the contact form
              jQuery('#formBody<?php echo $module->id ?>').validate({
                // Specify what the errors should look like
                // when they are dynamically added to the form
                errorElement: "p",
                wrapper: "",
                errorPlacement: function(error, element) {
                    error.insertBefore( element.parent() );
                    error.wrap("<span class='error'></span>");
                    jQuery("").insertBefore(error);
                },
               
                // Add requirements to each of the fields
                rules: {
                    <?php if ($params->get('use_name') == 'true') { ?>
                    name: {
                        required: <?php echo $params->get('valid_message_name'); ?>,
                        minlength: <?php echo $params->get('valid_message_name_num'); ?>
                    },
                    <?php } else {echo '';} ?>
                    <?php if ($params->get('use_phone') == 'true') { ?>
                    phone: {
                        required: <?php echo $params->get('valid_message_phone'); ?>,
                        minlength: <?php echo $params->get('valid_message_phone_num'); ?>
                    },
                    <?php } else {echo '';} ?>
                    <?php if ($params->get('use_email') == 'true') { ?>
                    email: {
                        required: <?php echo $params->get('valid_message_email_req'); ?>,
                        email: <?php echo $params->get('valid_message_email'); ?>
                    },
                    <?php } else {echo '';} ?>
                    <?php if ($params->get('use_message') == 'true') { ?>
                    message: {
                        required: <?php echo $params->get('valid_message_message'); ?>,
                        minlength: <?php echo $params->get('valid_message_message_num'); ?>
                    }
                    <?php } else {echo '';} ?>
                },
               
                // Specify what error messages to display
                // when the user does something horrid
                messages: {
                    name: {
                        required: "<?php echo $params->get('error_message_name'); ?>",
                        minlength: jQuery.format("<?php echo $params->get('error_valid_message_num'); ?>")
                    },
                    phone: {
                        required: "<?php echo $params->get('error_message_phone'); ?>",
                        minlength: jQuery.format("<?php echo $params->get('error_valid_message_num'); ?>")
                    },
                    email: {
                        required: "<?php echo $params->get('error_message_email'); ?>",
                        email: "<?php echo $params->get('error_valid_message_email'); ?>"
                    },
                    message: {
                        required: "<?php echo $params->get('error_message_message'); ?>",
                        minlength: jQuery.format("<?php echo $params->get('error_valid_message_num'); ?>")
                    }
                },
               
                // Use Ajax to send everything to processForm.php
                submitHandler: function(form) {
                    jQuery("#send<?php echo $module->id ?>").attr("value", "<?php echo $params->get('message_button_sending'); ?>");
                    jQuery(form).ajaxSubmit({
                        success: function(responseText, statusText, xhr, $form) {
                            jQuery(form).slideUp("fast");
                            jQuery("#response<?php echo $module->id ?>").html(responseText).hide().slideDown("fast");
                        }
                    });
                    return false;
                }
              });
            });
        </script>

<script type="text/javascript" src="<?php echo JURI::base() . '/modules/mod_super_simple_contact_form/assets/js/jquery.form.js'; ?>"></script>









« Последнее редактирование: 24.02.2018, 13:28:41 от pH43 »
*

beliyadm

  • Легенда
  • 9758
  • 1664 / 66
  • Севастополь, Россия
Re: Super Simple Contact Form
« Ответ #5 : 24.02.2018, 14:00:17 »
А, например, на хостинге beget схожее условие по сути, просто там автозаменой сам хостинг это делает, видимо и в отправителе подставляется noreply@unverified.beget.ru в любом случае.
Куча сайтов на бегете, нет такого, на одних работает отправка smtp через Яндекс привязанный, на других родной smtp бегета - без разницы
Все истины, которые я хочу вам изложить, — бесстыдная ложь. Сделать всё хорошо
TLG: @Beliyadm
*

pH43

  • Захожу иногда
  • 335
  • 8 / 1
Re: Super Simple Contact Form
« Ответ #6 : 24.02.2018, 15:20:40 »
Возможно, это от скрипта формы связи зависит уже, но с бегета приходят так письма, как описал выше.

Настроил на джумле SMPT, отправил через админку стандартное проверочное сообщение - дошло без проблем. А через модуль Super Simple Contact Form не приходят сообщения (для поверки протестировал на др. хостинге - всё хорошо работает и через модуль).

При отправке форма Super Simple Contact Form указывает поле "From UnKnOwN@localhost" Вот походу это и надо заменить на ...@доменмоегосайта.ru, но не найду, где это генерируется в модуле.
« Последнее редактирование: 24.02.2018, 15:56:32 от pH43 »
*

rkron

  • Захожу иногда
  • 316
  • 7 / 0
Re: Super Simple Contact Form
« Ответ #7 : 24.02.2018, 16:10:40 »
Возможно, это от скрипта формы связи зависит уже, но с бегета приходят так письма, как описал выше.

Настроил на Joomla SMPT, отправил через админку стандартное проверочное сообщение - дошло без проблем. А через модуль Super Simple Contact Form не приходят сообщения (для поверки протестировал на др. хостинге - всё хорошо работает и через модуль).

При отправке форма Super Simple Contact Form указывает поле "From UnKnOwN@localhost" Вот походу это и надо заменить на ...@доменмоегосайта.ru, но не найду, где это генерируется в модуле.
Если тест работает, то это проблемы в самой форме. Без кода сложно узнать что у вас не так. Проверьте отправку писем с админа. Может быть почта не настроена. Многие хостеры требуют отправку только с указанием домена для избежания рассылки спама.
*

pH43

  • Захожу иногда
  • 335
  • 8 / 1
Re: Super Simple Contact Form
« Ответ #8 : 25.02.2018, 13:20:25 »
Без кода сложно узнать что у вас не так. 

Код чуть выше мной был выложен, там действительно нет поля $from и куда его вставить, не знаю...
Уточнял у хостера, с каким отправителем письма уходят сейчас из формы, техподдержка сказала, что с таким: "From UnKnOwN@localhost"

Проверьте отправку писем с админа. Может быть почта не настроена.

Не совсем понял, о чем вы?
*

rkron

  • Захожу иногда
  • 316
  • 7 / 0
Re: Super Simple Contact Form
« Ответ #9 : 25.02.2018, 14:10:25 »
Код чуть выше мной был выложен, там действительно нет поля $from и куда его вставить, не знаю...
Уточнял у хостера, с каким отправителем письма уходят сейчас из формы, техподдержка сказала, что с таким: "From UnKnOwN@localhost"

Не совсем понял, о чем вы?

О том что сервер должен быть отстроен на отправку писем с вашего домена. Заходите в общие настройки-сервер-нстройка почты. Выбираете способ отправки. В самом низу кнопочка - отправить тестовое сообщение. Это в Joomla. На сервере должна быть подключена отправка с домена.  Отправьте тест будет видно, где дальше искать.
*

pH43

  • Захожу иногда
  • 335
  • 8 / 1
Re: Super Simple Contact Form
« Ответ #10 : 26.02.2018, 10:28:22 »
Цитировать
Выбираете способ отправки. В самом низу кнопочка - отправить тестовое сообщение. Это в Joomla.

Если способ отправки стоит SMPT, то (как уже писал выше) всё отлично работает, тестовое сообщение отправляется, в графе "От:" стоит указанная в админке в графе "E-mail сайта" почта.

Если стоит способ отправки "PHP mail", то при попытке отправки тестового сообщения выдаются ошибки:

"Внимание
Could not instantiate mail function."

"Ошибка
Не удалось отправить тестовое сообщение."
*

rkron

  • Захожу иногда
  • 316
  • 7 / 0
Re: Super Simple Contact Form
« Ответ #11 : 26.02.2018, 11:47:16 »
Если способ отправки стоит SMPT, то (как уже писал выше) всё отлично работает, тестовое сообщение отправляется, в графе "От:" стоит указанная в админке в графе "E-mail сайта" почта.

Если стоит способ отправки "PHP mail", то при попытке отправки тестового сообщения выдаются ошибки:

"Внимание
Could not instantiate mail function."

"Ошибка
Не удалось отправить тестовое сообщение."
Это на сервере нужно смотреть
*

pH43

  • Захожу иногда
  • 335
  • 8 / 1
Re: Super Simple Contact Form
« Ответ #12 : 26.02.2018, 12:24:11 »
Да, на сервере есть правило: в целях снижения поступления неавторизованной почты (спама) на наших серверах установлена принудительная авторизация при отправке (SMTP). Нужно переписывать модуль, чтобы почта была авторизованной и прописать $from ?
*

khan-alex

  • Давно я тут
  • 647
  • 30 / 1
Re: Super Simple Contact Form
« Ответ #13 : 26.02.2018, 12:42:01 »
На некоторых хостингах блокируется PHP mailer записью в файле: libraries/vendor/phpmailer/phpmailer/class.phpmailer.php
Примерно на 700-ой строке удалите $params
было:
Цитировать
$result = @mail($to, $subject, $body, $header, $params);
Стало:
Цитировать
$result = @mail($to, $subject, $body, $header);
или закомментируйте всю строчку.
*

pH43

  • Захожу иногда
  • 335
  • 8 / 1
Re: Super Simple Contact Form
« Ответ #14 : 26.02.2018, 12:55:56 »
На некоторых хостингах блокируется PHP mailer записью в файле: libraries/vendor/phpmailer/phpmailer/class.phpmailer.php
Примерно на 700-ой строке удалите $params

К сожалению, не решило проблему, ничего не изменилось..
*

khan-alex

  • Давно я тут
  • 647
  • 30 / 1
Re: Super Simple Contact Form
« Ответ #15 : 26.02.2018, 13:02:41 »
К сожалению, не решило проблему, ничего не изменилось..
Т.е. тестовое сообщение из блока настройки при php mail показало ошибку?
*

pH43

  • Захожу иногда
  • 335
  • 8 / 1
Re: Super Simple Contact Form
« Ответ #16 : 26.02.2018, 13:22:32 »
Т.е. тестовое сообщение из блока настройки при php mail показало ошибку?

Да, пробовал удалить  $params и даже просто заменял  $params = sprintf('-f%s', $this->Sender); на $params = ''; (по сути то же самое), но ошибка та же выдается, если при php mail тестовое сообщение попытаться отправить. Хорошо уходит только через SMTP
*

rkron

  • Захожу иногда
  • 316
  • 7 / 0
Re: Super Simple Contact Form
« Ответ #17 : 26.02.2018, 14:15:26 »
Да, на сервере есть правило: в целях снижения поступления неавторизованной почты (спама) на наших серверах установлена принудительная авторизация при отправке (SMTP). Нужно переписывать модуль, чтобы почта была авторизованной и прописать $from ?
Почта идет от домена? Прописываете почту на сервере и спокойно отправляете
*

rkron

  • Захожу иногда
  • 316
  • 7 / 0
Re: Super Simple Contact Form
« Ответ #18 : 26.02.2018, 14:17:50 »
На некоторых хостингах блокируется PHP mailer записью в файле: libraries/vendor/phpmailer/phpmailer/class.phpmailer.php
Примерно на 700-ой строке удалите $params
было: Стало:или закомментируйте всю строчку.
Резать ядро бессмысленно. При следующем обновлении все слетит. (реконструкция компонента так же ни к чему)
*

khan-alex

  • Давно я тут
  • 647
  • 30 / 1
Re: Super Simple Contact Form
« Ответ #19 : 26.02.2018, 14:49:41 »
А сам то хостер какой выход из ситуации предлагает? Или в тех поддержку не обращались?
*

khan-alex

  • Давно я тут
  • 647
  • 30 / 1
Re: Super Simple Contact Form
« Ответ #20 : 26.02.2018, 14:51:56 »
Резать ядро бессмысленно. При следующем обновлении все слетит. (реконструкция компонента так же ни к чему)
Это понятно, но как разовый выход из положения имхо вполне приемлемо
*

rkron

  • Захожу иногда
  • 316
  • 7 / 0
Re: Super Simple Contact Form
« Ответ #21 : 26.02.2018, 14:59:37 »
Покупаете  компонент, вся остальная настройка бесплатно
*

pH43

  • Захожу иногда
  • 335
  • 8 / 1
Re: Super Simple Contact Form
« Ответ #22 : 27.02.2018, 13:16:30 »
Почта идет от домена? Прописываете почту на сервере и спокойно отправляете

Уже создавал ящик на хостинге, но техподдержка говорит, что поле from при отправке вот такое "From UnKnOwN@localhost"
Техподдержка самая отвратительная у текущего хостера, отвечают раз в несколько дней, звонки не помогают.

 
Покупаете  компонент, вся остальная настройка бесплатно

Много и бесплатных модулей, не в этом суть, просто думал, что есть возможность именно этот заставить отправлять поле from хотя бы с прописанным вручную в коде нужным ящиком.
*

rkron

  • Захожу иногда
  • 316
  • 7 / 0
Re: Super Simple Contact Form
« Ответ #23 : 27.02.2018, 13:35:48 »
Уже создавал ящик на хостинге, но техподдержка говорит, что поле from при отправке вот такое "From UnKnOwN@localhost"
Техподдержка самая отвратительная у текущего хостера, отвечают раз в несколько дней, звонки не помогают.

 
Много и бесплатных модулей, не в этом суть, просто думал, что есть возможность именно этот заставить отправлять поле from хотя бы с прописанным вручную в коде нужным ящиком.
Что то тех поддержка мудрит. Скиньте доступ, я посмотрю.
*

pH43

  • Захожу иногда
  • 335
  • 8 / 1
Re: Super Simple Contact Form
« Ответ #24 : 02.03.2018, 19:36:28 »
Не стал изобретать велосипед и просто установил модуль SimpleForm2 для joomla3
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Radical Form - бесплатная ajax форма обратной связи, которая не ломает дизайн

Автор Progreccor

Ответов: 312
Просмотров: 41532
Последний ответ 13.04.2024, 14:54:26
от tigra-uki
AJAX Web-Factor Form - простая форма обратной связи для Joomla 3+

Автор orsy

Ответов: 75
Просмотров: 16643
Последний ответ 17.07.2021, 10:01:40
от Biss
Fox contact поле телефон по маске

Автор pshik

Ответов: 1
Просмотров: 3047
Последний ответ 28.11.2020, 00:03:47
от WEBBY Master
По поводу Fox Contact

Автор Stasweb

Ответов: 2
Просмотров: 3070
Последний ответ 26.09.2020, 05:31:29
от Cedars
Шаблон письма Fox Contact

Автор BestFreelancer

Ответов: 5
Просмотров: 5781
Последний ответ 16.08.2019, 15:11:49
от Gorilla