76

Re: Форма обратной связи без плагинов

Я все нашел, спасибо. В любом случае, этот проект, мне кажется, самой удобной из форм на GS. Особенно то, что можно делать сколько угодно полей, форматировать их как нравится.
Сейчас пробую создать несколько копий папок assets (assets-1, assets-2), чтоб прописать на разных языцях "Ваше письмо отправлено".
В футере в пути добавил  добавил <?php get_theme_url(); ?>/assets-1/form/js/form-submit.js">
и в самой форме <form action=".../assets-1/form/.... method="POST">.
Пока не выходит. Со всех языков теперь работает assets-1.
Просто assets нет.
Почему теперь первый путь не работает, а только второй? Или так вообще не выйдет?

Поделиться

77

Re: Форма обратной связи без плагинов

Никак не получается настроить отправку по smtp.
Сама форма здесь: http://cooperation.uz/contacts/
Но, подозреваю, что проблема может быть в неправильном подключении, так как при отправке не передаются следующие параметры:

Notice: Undefined index: Recipient in /var/www/vhosts/cooperation.uz/httpdocs/theme/cooperation/assets/form/email-send.php on line 32

Notice: Undefined index: Message in /var/www/vhosts/cooperation.uz/httpdocs/theme/cooperation/assets/form/email-send.php on line 135

Хотя, вроде все делал по инструкции и в коде видно, что параметр адреса получателя сохраняется из плагина CustomSettings

Поделиться

78

Re: Форма обратной связи без плагинов

Приветствую!

У вас ошибка в

<form id="feedback-form" action="http://cooperation.uz/theme/cooperation/assets/form/email-send.php".....

здесь нужно прописать путь до папки не включая название файла!
Внимательно посмотрите на мой шаблон из архива, там прописано:

<form id="feedback-form" action="<?php get_theme_url(); ?>/assets/form/".....

Удачи вам!
И отпишитесь как все получилось. wink

Поблагодарить за помощь можно через Яндекс!

Поделиться

79

Re: Форма обратной связи без плагинов

да, я и так пробовал - но тогда при отправке выдает ошибку, что файл не найден

Поделиться

80 (2016-04-04 15:17:42 отредактировано pavlexx)

Re: Форма обратной связи без плагинов

Ну а файл то у вас лежит по указанному пути?

У вас на сайте указан путь

http://cooperation.uz/theme/cooperation/assets/form/email-send.php

а вы, в сообщении, приводите ошибки по такому пути

/var/www/vhosts/cooperation.uz/httpdocs/theme/cooperation/assets/form/email-send.php

Думаю ошибка кроется совсем не в форме!

И путь в форме нужно указывать именно так, без имени файла:

<form id="feedback-form" action="<?php get_theme_url(); ?>/assets/form/".....

Имя файла у меня подставляется в скрипте и оно фиксированное!

Еще увидел ошибку:
обязательно нужно прописывать для формы класс ajax-form, чтобы форма обрабатывалась скриптом, в противном случае скрипт будет игнорировать форму!

В общем, почитайте еще раз этот пост!

Поблагодарить за помощь можно через Яндекс!

Поделиться

81

Re: Форма обратной связи без плагинов

Да, действительно - забыл указать этот и другие классы и правильно прописать Name во всех полях. Теперь сделал все как в вашем шаблоне (только у вас еще подключаются скрипты из папки "/assets/js/", а в крайнем архиве формы ее нет. Остальные пути все правильные.

Заработал валидатор! И параметры передаются, так как ошибок нет (и в логах сайта - тоже нет). Это плюс. Но ничего не происходит при отправке формы - это минус (( просто все поля становятся зелеными и ничего не происходит ((

Что еще нужно подправить?

Поделиться

82

Re: Форма обратной связи без плагинов

Для функционала формы нужно только это

<!-- FORM -->
  <script>
    var recipient_mail = "<?php get_setting('feedback_form','email'); ?>";
  </script>
  <script src="<?php get_theme_url(); ?>/assets/form/form-validator/jquery.form-validator.js"></script>
  <script src="<?php get_theme_url(); ?>/assets/form/js/form-submit.js"></script>

Все остальное - мои скрипты, не относящиеся к форме!

Поблагодарить за помощь можно через Яндекс!

Поделиться

83

Re: Форма обратной связи без плагинов

да, их я вставил, как и jQuery. И вроде все работает, но только.. не работает ))

Поделиться

84

Re: Форма обратной связи без плагинов

Вы пробуете отправлять по smtp?

Проверьте отправку без smtp.

Поблагодарить за помощь можно через Яндекс!

Поделиться

85

Re: Форма обратной связи без плагинов

может быть письма в спам уходят, если работает

Поддержать GetSimple CMS по-русски ЯДом

Сайт olsv64

Поделиться

86

Re: Форма обратной связи без плагинов

Спасибо за поддержку!..
Письма точно не уходят, в логах ошибок нет - у всех запросов статус 200, то есть без ошибок. В спаме, естественно, тоже нет.
Без смтп тоже не могу - злой хостер отключил mail() глобально на сервере для всех сайтов. Поэтому и все другие плагины не работают. Вот и ищу другие варианты.

По факту - при оправке не происходит отправка и не выдает сообщение об ошибке, даже не перегружается страница. Форма остается на месте, только подсвечивается зеленым.. Пока не пойму ((

Поделиться

87 (2016-04-05 11:23:42 отредактировано pavlexx)

Re: Форма обратной связи без плагинов

Все верно, так и должно быть.
Раз письмо не отправляется по неизвестной причине - скрипт не возвращает код успешного/не успешного выполнения, форма не сбрасывается в первоначальное состояние.

На вашем сайте - все настроено верно (исходя из кода).
Видимо проблема в хостинге!?

Поблагодарить за помощь можно через Яндекс!

Поделиться

88

Re: Форма обратной связи без плагинов

вот именно поэтому я предпочитаю платить хостерам за месяц, а не за год, проще отказаться от их услуг smile

Поддержать GetSimple CMS по-русски ЯДом

Сайт olsv64

Поделиться

89

Re: Форма обратной связи без плагинов

у меня реселлерский договор с ними и около 40 сайтов, почти 3гига.. как-то трудно будет уйти. Странно, что простой скрипт отправки сообщений по смтп работает нормально - сообщение сразу отправляется
http://cooperation.uz/phpmail/feedback.php - там без формы, просто тестовый скрипт..

Поделиться

90 (2016-04-05 12:43:23 отредактировано pavlexx)

Re: Форма обратной связи без плагинов

Так и у меня используются стандартные рекомендации от PHP Mailer.
Да и проблем у меня не возникло и у Олега тоже все нормально с моей формой.

Тяжело что-то подсказывать видя только сайт и код.

P.S. заметил еще одну ошибку: почему вы убрали у кнопки "Отправить" type="submit" ?

Поблагодарить за помощь можно через Яндекс!

Поделиться

91

Re: Форма обратной связи без плагинов

Исправил кнопку, результат тот же ((
Вот код \theme\assets\form\config.php

<?php
$es = array();

// Options for feedback form

// E-MAIL method of sending messages
$es['smtp_mode']             = 'enabled';  // SMTP enabled or disabled
$es['smtp_host']             = 'smtp.mail.ru';        // Specify main and backup SMTP servers => 'smtp1.example.com;smtp2.example.com';
$es['smtp_port']             = 465;        // TCP port to connect => 587;
$es['smtp_secure']           = 'ssl';       // Enable TLS encryption, `ssl` also accepted
$es['smtp_username']         = 'darts-group@mail.ru';        // SMTP username => 'user@example.com';
$es['smtp_password']         = '*****';        // SMTP password => 'secret';

// E-MAIL send options
$es['from_mail']             = 'darts-group@mail.ru';             // адрес почты, с которой идет отправка или из формы => $_POST['email']
$es['from_name']             = 'Администратор'; // имя отправителя или из формы => $_POST['name']

// E-MAIL message options
$es['msg_title']             = 'Email message feedback form';
$es['msg_header']            = 'Информация отправлена с сайта Cooperation.uz';
$es['msg_header_subject']    = 'Тема сообщения:';
$es['msg_subject']           = 'Сообщение с сайта Cooperation.uz';
$es['msg_header_sender']     = 'Отправитель:';
$es['msg_header_mail']       = 'E-mail:';
$es['msg_header_phone']      = 'Телефон:';
$es['msg_header_message']    = 'Сообщение:';
$es['msg_header_signature']  = 'С уважeнием,<br>Администрация сайта';
?>

код формы тоже привожу, но виден и так:

<?php if(!defined('IN_GS')){ die('you cannot load this page directly.'); }
/****************************************************
*
* @File:         Feedback Form.php
* @Package:        GetSimple
* @Action:        StartUikit theme for GetSimple CMS
*
*****************************************************/ 
?>

<form id="feedback-form" action="<?php get_theme_url(); ?>/assets/form/" class="ajax-form"  method="post" enctype="multipart/form-data" autocomplete="off">
  <fieldset data-uk-margin>

        <div class="form-result-send"></div>


    <div class="form-group">
        <label for="f-name">Ф. И. О.:</label>

          <input type="text" id="f-name" name="Name" class="form-control" data-validation="custom length required" data-sanitize="trim capitalize" data-validation-regexp="^([а-яА-ЯёЁa-zA-Z\s]+)$" data-validation-length="min3" placeholder="Ваше ФИО">

    </div>

    <div class="row">
        <div class="col-md-6">
            <div class="form-group">
                <label for="f-email">Email:</label>
                   <input type="email" id="f-email" name="Email" class="form-control" data-validation="email required" placeholder="Ваш Email - user@example.com">
            </div>
        </div>
        <div class="col-md-6">
          <div class="form-group">
                <label for="f-phone">Телефон:</label>
          <input type="tel" id="f-phone" name="Phone" class="form-control" data-validation="custom required" data-validation-regexp="^((8|\+7)[\- ]?)?(\(?\d{2,4}\)?[\- ]?)?[\d\- ]{6,10}$" data-validation-error-msg="Введите номер телефона в нужном формате" placeholder="Ваш номер - 8 (XXX) XXX-XX-XX">

            </div>
        </div>
    </div>
    <div class="form-group">
        <label for="f-theme">Тема сообщения:</label>
          <select id="f-theme" name="Subject" class="form-control" data-validation="required">
            <option value="" disabled="disabled" selected="selected"> - выбрать тему -</option>
            <option value="Нужна Ваша помощь!">Нужна Ваша помощь!</option>
            <option value="Вопрос по услугам!">Вопрос по услугам!</option>
          </select>

    </div>
    <div class="form-group">
        <label for="f-message">Сообщение:</label>

          <textarea id="f-message" name="Message" class="form-control" rows="5" data-validation="required" placeholder="Введите текст вашего сообщения"></textarea>
          <input type="text" name="Spam" style="display:none" value="">

    </div>


    <?php if (return_setting('feedback_form','captcha')) { ?>
    <!-- Блок - капча -->
    <div class="form-group">
        <label for="f-captcha" class="uk-form-label label-required">Введите число</label>
        <div class="input-group">
           <span class="input-group-addon" id="basic-addon1">
            <img class="img-captcha" src="<?php get_theme_url(); ?>/assets/form/captcha/captcha.php"/>
          </span>
            <input type="text" id="f-captcha" name="Norobot" class="form-captcha" data-validation="required">
        </div>
      </div>
    <!-- End -->
    <?php } ?>

    <button type="submit" id="f-submit" name="submit" class="btn btn-primary">Отправить</button>
  </fieldset>
</form>

ну и код самого шаблона, где вызывается форма инклюдом:

<?php if(!defined('IN_GS')){ die('you cannot load this page directly.'); }?>
<!DOCTYPE html>
<html lang="en" class="">
<head>
    <meta charset="utf-8" />
    <title><?php get_site_name(); ?> - <?php get_page_clean_title(); ?></title>
    <?php get_header(); ?>
    <link href="#" rel="shortcut icon" type="image/x-icon" />
    <meta name="viewport" content="width=device-width" />
    <!-- Icons -->
    <link href="<?php get_theme_url(); ?>/font-awesome-4.3.0/css/font-awesome.css" rel="stylesheet">
    <!-- Icons -->
    <!--Site Fonts-->
    <link href="<?php get_theme_url(); ?>/fonts/fonts.css" rel="stylesheet" />
    <!--Site Fonts-->
    <!--Bootstrap-->
    <link href="<?php get_theme_url(); ?>/bootstrap-3.3.5/css/bootstrap-theme.css" rel="stylesheet" />
    <link href="<?php get_theme_url(); ?>/bootstrap-3.3.5/css/bootstrap.css" rel="stylesheet" />
    <!--Bootstrap-->
    <!--Site Styles-->
    <link href="<?php get_theme_url(); ?>/styles/jquery-scrollbox-master.css" rel="stylesheet" />
    <link href="<?php get_theme_url(); ?>/styles/style.css" rel="stylesheet">
    <link href="<?php get_theme_url(); ?>/styles/bootstrap_components_edition.css" rel="stylesheet" />
    <link href="<?php get_theme_url(); ?>/styles/header.css" rel="stylesheet" />
    <link href="<?php get_theme_url(); ?>/styles/site_components.css" rel="stylesheet" />
    <!--Site Styles-->
</head>
<body>

    <div class="container site-container">
        <header class="site-header">
            <a href="/" class="img-container">
                <img src="<?php get_theme_url(); ?>/images/header_bg.png" />
            </a>
            <nav class="navbar site-navbar">
                <div class="container-fluid">
                    <!-- Brand and toggle get grouped for better mobile display -->
                    <div class="navbar-header">
                        <button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#bs-example-navbar-collapse-1" aria-expanded="false">
                            <i class="fa fa-bars"></i>
                        </button>
                    </div>
                    <!-- Collect the nav links, forms, and other content for toggling -->
                    <div class="collapse navbar-collapse" id="bs-example-navbar-collapse-1">
                        <ul class="nav navbar-nav">
                            <?php get_i18n_navigation(return_page_slug(), 0, 2, I18N_SHOW_MENU); ?>
                        </ul>
                        <ul class="nav navbar-nav navbar-right">
                            <li>
                                <a href="<?php echo htmlspecialchars(return_i18n_setlang_url('ru')); ?>">Рус</a>
                            </li>
                            <li>
                                <a href="<?php echo htmlspecialchars(return_i18n_setlang_url('uz')); ?>">Ozb</a>
                            </li>
                            <li>
                                <a href="<?php echo htmlspecialchars(return_i18n_setlang_url('en')); ?>">Eng</a>
                            </li>
                            <li class="dropdown">
                                <a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-haspopup="true" aria-expanded="false"><i class="fa fa-search"></i><span class="caret"></span></a>
                                <div class="dropdown-menu search-container">
                                    <div class="search">
                                        <?php get_i18n_search_form (array('slug'=>'search', 'showTags'=>0, 'minTagSize'=>90, 'maxTagSize'=>200, 'GO'=>'Найти', 'PLACEHOLDER'=>'Поиск по сайту')); ?>
                                    </div>
                                </div>
                            </li>
                        </ul>
                    </div>
                    <!-- /.navbar-collapse -->
                </div>
                <!-- /.container-fluid -->
            </nav>
        </header>

        <section class="container-fluid section-block">
            <h1 class="section-title"><?php get_page_clean_title(); ?></h1>
            <?php get_page_content();?>
            <?php include('feedback.inc.php'); ?>
        </section>

        <footer class="site-footer">
            © Cooperation - 2016
        </footer>

    </div>
    <!-- LOAD SCRIPTS -->

  <!-- JQUERY -->  
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.3/jquery.min.js"></script>
<script src="https://code.jquery.com/jquery-migrate-1.2.1.min.js"></script>

  
      <!-- FORM -->
  <script>
    var recipient_mail = "<?php get_setting('feedback_form','email'); ?>";
  </script>
  <script src="<?php get_theme_url(); ?>/assets/form/form-validator/jquery.form-validator.js"></script>
  <script src="<?php get_theme_url(); ?>/assets/form/js/form-submit.js"></script>



    <script src="<?php get_theme_url(); ?>/bootstrap-3.3.5/js/bootstrap.js"></script>
    <script src="<?php get_theme_url(); ?>/scripts/smoothscroll.js"></script>
    <script src="<?php get_theme_url(); ?>/scripts/jquery.scrollbox.js"></script>
    
  
  <script src="<?php get_theme_url(); ?>/scripts/main.js"></script>
  <?php get_footer(); ?>
        <!-- FORM -->
</body>
</html>

Поделиться

92

Re: Форма обратной связи без плагинов

на всякий случай привожу код конфигурации работающего скрипта, возможно нужно будет добавить некоторые параметры, например авторизацию:

<?php
require 'PHPMailerAutoload.php';

$mail = new PHPMailer;

//$mail->SMTPDebug = 3;                               // Включить подробный вывод отладки

$mail->isSMTP();                                      // Указываем что используем SMTP
$mail->Host = 'smtp.mail.ru';  // Укажите SMTP Сервер
$mail->SMTPAuth = true;                               // Включение проверки подлинности SMTP
$mail->Username = 'darts-group@mail.ru';                 // Логин почтового ящика
$mail->Password = '*****';                           // Пароль
$mail->SMTPSecure = 'ssl';                            // Указываем какое подключение используем TLS или SSL в нашем случае SSL
$mail->Port = 465;                                    // Порт для SSL - 465, TLS 587.

$mail->setFrom('darts-group@mail.ru', 'Mailer');
$mail->addAddress('mazamat@narod.ru', 'Azamat');     // Добавить получателя
// $mail->addAddress('ellen@example.com');               // Дальше все понятно.
$mail->addReplyTo('info@cooperation.uz', 'Information');
$mail->addCC('info@cooperation.uz');
$mail->addBCC('info@cooperation.uz');

// $mail->addAttachment('/var/tmp/file.tar.gz');         // Добавим вложения если нет, то просто комментируем
// $mail->addAttachment('/tmp/image.jpg', 'new.jpg');    // Тоже самое
$mail->isHTML(false);                                  // Разрешаем передавать HTML

$mail->Subject = 'Here is the subject';
$mail->Body    = 'This is the HTML message body <b>in bold!</b>';
$mail->AltBody = 'This is the body in plain text for non-HTML mail clients';

if(!$mail->send()) {
    echo 'Message could not be sent.';
    echo 'Mailer Error: ' . $mail->ErrorInfo;
} else {
    echo 'Message has been sent';
}

этот скрипт отправляет и само письмо и копии (СС)..

Поделиться

93

Re: Форма обратной связи без плагинов

файл theme\assets\formclass.phpmailer.php я не редактировал, полагая, что конфиги он будет брать из config.php - это верно?

Поделиться

94 (2016-04-05 18:09:18 отредактировано pavlexx)

Re: Форма обратной связи без плагинов

Пока нет времени разбираться, посмотрю и подправлю скрипт, если нужно, позже.
Не понимаю почему у вас форма не работает без smtp, у меня даже на локальном сервере все нормально отправляется!?
Если вы посмотрите код в файле email-send.php - то увидите, что отправка писем осуществляется точно так же как вы привели в своем коде!
Единственное у меня расширен свой класс PHPMailer, но это сделано для облегчения работы.
А все остальное взято из документации PHPMailer.

P.S. Попробуйте эту версию! Замените полностью папку form.

Поблагодарить за помощь можно через Яндекс!
+ 0zz

Поделиться

95

Re: Форма обратной связи без плагинов

Йохууу! ))) Заработало!!! Спасибентище! Видимо, для смтп каких-то классов не хватало все-таки..

п.с. яндекса нет, но wmr "на пиво" бы отправил!

Поделиться

96 (2016-04-06 10:41:36 отредактировано pavlexx)

Re: Форма обратной связи без плагинов

Я рад, что все получилось!

Обновлю свою форму, с учетом последних правок!

И спасибо за тестирование, благодаря вам нашел недочеты в обработчике формы и исправил!!! wink

Поблагодарить за помощь можно через Яндекс!

Поделиться

97

Re: Форма обратной связи без плагинов

Ага. И, наверное, нужно будет еще раз инструкцию с начала пошагово переписать, по порядку с плагином CustomSettings и без него... Если возможно, сразу в первом сообщении - неудобно по страницам переключаться.

Поделиться

98

Re: Форма обратной связи без плагинов

Описание пока переделывать не буду, т.к. в планах перенести все описание и дополнить примерами на свой сайт! wink

Поблагодарить за помощь можно через Яндекс!

Поделиться

99

Re: Форма обратной связи без плагинов

Расскажу, как сделать форму мультиязычной:
в шаблоне, вместо инклюда формы я вставил ее в компонент и там же прописал вызов скриптов, а сам компонент вызываю через

<?php get_i18n_component('feedback'); ?>

также есть компонент "feedback_en", который, конечно, на англ.
фишка в том, что в англ компоненте подключается form-submit-en.js - просто копия оригинального, но на англ и с закомментированным подключением перевода. Все работает "на ура!" ))

Поделиться

100

Re: Форма обратной связи без плагинов

Всем привет!

АНОНС:
В ближайшем будущем появится версия формы обратной связи со своей страницей настроек в админ. панели!
Также в комплект будет включен подробный мануал по настройке и подключению формы в свой проект.
В файлах шаблонов будет присутствовать подробное комментирование тех или иных блоков, полей...

Все это выполняется на пути к написанию своего полноценного плагина! wink

Всем удачи и успехов!

Поблагодарить за помощь можно через Яндекс!

Поделиться