101 (2016-04-28 20:38:51 отредактировано pavlexx)

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

Всем привет!

Готова обновленная форма обратной связи с плагином конфигурации параметров.
Перед размещением на форуме, для общего использования - хотелось бы провести тесты.
В связи с этим, требуются 2-3 добровольца (не новички в GS)! wink
Все общение через личку.
Архив для теста скину на почту, здесь писать Email не нужно.

Буду очень благодарен за помощь в тестировании.
Для тестеров от меня бонус - помощь: в установке на сайт, настройке, подробное объяснение параметров...

Жду сообщений!

p.s. как наберу тестеров - размещу здесь сообщение о начале теста (после можно уже не писать, набор тестеров будет закрыт)!

ЗАПУСК ТЕСТА! тестеры больше не принимаются wink

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

Поделиться

102 (2016-06-24 18:50:23 отредактировано pavlexx)

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

Всем привет!

Вот и доросла моя форма до своего плагина и поддержки мультиязычности! smile
Представляю вам релиз формы обратной связи версии 1.0!

Много здесь расписывать не буду, т.к. в комплекте идет подробное руководство по настройке и подключению формы (надеюсь вы оцените мои труды wink).
В комплект я включил шаблоны как на чистом HTML, так и сверстанные на UIkit framework. А также все необходимые библиотеки и примеры стилей!
Теперь у формы есть плагин для настройки и сохранения параметров. Устанавливается стандартно, копированием в папку plugins.

В общем скачивайте архив с формой, устанавливайте, настраивайте....

Просьба ко всем:
если всплывут какие-либо ошибки - внимательно просмотрите еще раз руководство и прилагаемые шаблоны, и только после этого описывайте подробно ошибки в этой теме!

Дальнейшее развитие:
сейчас я рассматриваю вопрос шаблонизации, использование функций и шорт-кодов для работы с выводом формы, чтобы в дальнейшем перенести все полностью в плагин. Но на это необходимо время, т.к. многое нужно предусмотреть и разработать.

Удачи всем!

С уважением,
Алексей

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

Поделиться

103 (2016-12-01 22:05:34 отредактировано denisnorma)

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

Подсобите, пожалуйста! Сваял форму по описанию, но потребовалось усложнить задачу. Чтоб выбранные чекбоксы в форме суммировались ( и чтоб это видел клиент). И эту сумму, вместе со всеми полями тоже отправить клиенту в письме.
Я, с помощью всезнающего интернета, решил это пока до этого места: output .... Все красиво суммируется ...

<form name="Sum" id="feedback-form" action="<?php get_theme_url(); ?>/assets/form/" class="ajax-form form-horizontal" method="POST" enctype="multipart/form-data" autocomplete="on">
    
    <fieldset>
        <label for="price1"><input id="price1" name="price1" type="checkbox" value="4300" /> 4300 </label>
        <label for="price2"><input id="price2" name="price2" type="checkbox" value="1700" /> 1700 </label>
        <label for="price3"><input id="price3" name="price3" type="checkbox" value="2700" /> 2700 </label>
        <label for="price4"><input id="price4" name="price4" type="checkbox" value="1250" /> 1250 </label>
        <label for="price5"><input id="price5" name="price5" type="checkbox" value="1200" /> 1200 </label>
        <label for="price6"><input id="price6" name="price5" type="checkbox" value="600" /> 600 </label>

    <output name="Разом" id="rezultat">Все вместе: 0</output>

    <input data-validation="custom length required" id="f-name" name="Name" type="text" />
    <input data-validation="email required" id="f-email" name="Email" type="text" />
    <input data-validation="custom required" id="f-phone" name="Phone" type="tel" />
                
        <div class="form-result-send">&nbsp;</div>

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

    </fieldset>
</form>

<script>
var s = document.forms.Sum,
    d = s.querySelectorAll('input[type="checkbox"]:not([value]), input[type="checkbox"][value=""]');
  for (var i = 0; i < d.length; i++) // чтобы не было написано NaN, убираем в disabled пункты, где не прописаны значения
    d[i].disabled = true;
s.onchange = function() { // начало работы функции сложения
  var n = s.querySelectorAll('[type="checkbox"]'),
      itog = 0;
  for(var j=0; j<n.length; j++)
    n[j].checked ? itog += parseFloat(n[j].value) : itog;
    document.getElementById('rezultat').innerHTML = 'Сумма: ' + itog;
}
</script>

И как этот результат, тоже отправить в письме?
П.С. И в банк тоже отправить! )))

Поделиться

104

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

Можно я внесу свои 5 копеек. Посмотрела на тестовом сайте форму - всё отлично. Но режет глаз поле ТЕЛЕФОН, где предлагается ввести в указанном формате номер, а по факту его можно вносить как попало, лишь бы цифры были. Знаю по своим сайтам, что половина клиентов просят, а сделайте так, чтобы можно было только в указанном формате вводить номер телефона. Вот, указываем маску ввода, может кому-то пригодится:

<script>
jQuery(function($){
   $("#phone").mask("+7 (999) 999-99-99");
});
</script>

#phone меняем соответственно на id поля, в котором указывается телефон.

Поделиться

105

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

Добрый день! При заполнении формы и попытке отправить, выдает сообщение "Приносим извинения, функция отправки сообщений не доступна!" Будьте добры, подскажите как это решить?

Поделиться

106

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

с последней версией плагина проблем не возникало http://forum.getsimplecms.ru/viewtopic. … 6989#p6989

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

Сайт olsv64

Поделиться

107

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

Спасибо за ответ

Поделиться

108

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

Правильно я понимаю, что при использовании smtp протокола с данной формой, никакая поддержка отправки почты со стороны хостера не нужна? Дело в том, что хостер отключил внутренний smtp, также перестал работать плагин p01-contact, хотя он вроде как использует php функцию для отправки.

Поделиться

109

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

вы потестируйте и отпишитесь smile

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

Сайт olsv64

Поделиться

110 (2017-03-17 05:43:42 отредактировано xenus_86)

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

Потестировал, отписываюсь. Работает. Только почему-то, после того, как сохраняю новые настройки (настраиваю отправку через smtp), форма начинают нормально работать через мин 15-20. Если сразу тестировать, то при нажатии отправки выдается сообщение о том, что лимиты исчерпаны, при этом сайт становится недоступен мин 2.

Resource Limit Is Reached
The website is temporarily unable to service your request as it exceeded resource limit. Please try again later.

Подозреваю, хостер петлю затягивает. Форма отличная! Немного оффтопну.
вот эта строка после подключения jquery что делает?

<script>window.jQuery || document.write('<script src=".../jquery-2.2.4.min.js"><\/script>')</script>

Поделиться

111

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

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

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

Сайт olsv64

Поделиться

112

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

Помогите понять, где я "накосячил"
При отправке вот этой формы:

<form id="feedback-form" action="<?php get_theme_url(); ?>/assets/form/" class="ajax-form" method="POST" enctype="multipart/form-data" autocomplete="off">
  <fieldset>
    <!-- Блок для вывода информации о результате отправки сообщения -->
    <div class="form-result-send"></div>
    <div style="display:none">
      <label for="f-theme" class="label-required">Тема</label>
      <input name="Subject" type="text" id="f-theme" class="" value="Запись на обучение">
    </div>
    <div>
      <label for="f-category" class="label-required">Категория</label>
      <select name="Категория" id="f-category" class="" data-validation="required">
        <option value="" disabled="disabled" selected="selected"> - выбрать категорию -</option>
            <option value=" A" > A</option>
            <option value=" A1" > A1</option>
            <option value=" B" > B</option>
            <option value=" BE" > BE</option>
            <option value=" C" > C</option>
            <option value=" D" > D</option>
            <option value=" с B на D" > с B на D</option>
            <option value=" с B на С" > с B на С</option>
            <option value=" с C на B" > с C на B</option>
            <option value=" с C на D" > с C на D</option>
            <option value=" с D на B" > с D на B</option>
            <option value=" с D на C" > с D на C</option>
            <option value=" M" > M</option>
      </select>
    </div>
    <div>
        <label for="f-name" class="label-required">Фамилия Имя Отчество</label>
        <!-- Поле для ввода имени -->
        <input name="Name" type="text" id="f-name"  class="" placeholder="Ваше ФИО" data-validation="custom length required" data-sanitize="trim capitalize" data-validation-regexp="^([а-яА-ЯёЁa-zA-Z\s]+)$" data-validation-length="min3">
    </div>
    <div>
        <label for="f-date" class="label-required">Дата рождения (число, месяц, год)</label>
        <!-- Поле для ввода даты рождения -->
        <input name="Дата рождения" type="date" id="f-date"  class="" data-validation="birthdate" data-validation-format="yyyy-mm-dd">
    </div>
    <div>
        <label for="f-message" class="label-required">Паспорт выдан</label>
        <!-- Текстовое поле для ввода сообщения -->
        <textarea name="Паспорт выдан" id="f-message" class="" rows="5" placeholder="Введите текст вашего сообщения" data-validation="required"></textarea>
        <!-- Скрытое поле для защиты от спам-ботов -->
        <input name="Norobot" type="text" style="display:none" value="">
    </div>
    <div>
        <label for="f-message2" class="label-required">Прописан по адресу</label>
        <!-- Текстовое поле для ввода сообщения -->
        <textarea name="Прописан по адресу" id="f-message2" class="" rows="5" placeholder="Введите текст вашего сообщения" data-validation="required"></textarea>
        <!-- Скрытое поле для защиты от спам-ботов -->
        <input name="Norobot" type="text" style="display:none" value="">
    </div>
    <div>
        <label for="f-phone" class="label-required">Телефон</label>
        <!-- Поле для ввода телефона -->
        <input name="Phone" type="tel" id="f-phone" class="" data-validation="custom required" data-validation-regexp="^((8|\+7)[\- ]?)?(\(?\d{2,4}\)?[\- ]?)?[\d\- ]{6,10}$">
    </div>
    
    <?php if (return_fbform_param('opt_captcha') == 'true') { ?>
    <!-- Блок - капча -->
    <div>
      <label for="f-captcha" class="label-required">Введите код</label>
      <!-- Вывод капчи. Выбрать один вариант - другой удалить/закомментировать -->
      <!-- Вариант 1 -->
      <img class="img-captcha" src="<?php get_theme_url(); ?>/assets/form/captcha/captcha.php"/>
      <!-- Вариант 2 -->
      <!-- <img class="img-captcha" src="<?php get_theme_url(); ?>/assets/form/captcha2/captcha.php"/> -->

      <!-- Поле для ввода капчи -->
      <input name="Captcha" type="text" id="f-captcha" class="form-captcha" data-sanitize="trim upper" data-validation="required">
    </div>
    <!-- End -->
    <?php } ?>

    <!-- Кнопка для отправки сообщения -->
    <div>
      <button type="submit" id="f-submit" class="">Отправить</button>
    </div>
  </fieldset>
</form>

В cpanel, в логах, регистрируется следующая ошибка:

PHP Notice:  Undefined index: Message in /.../email-send.php on line 188

При этом форма работает нормально, сообщение приходит.

Поделиться

113

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

из-за чего такую ошибку выдает?
Forbidden
You don't have permission to access /theme/Innovation/assets/form/ on this server.

права на всю папку выставил 777. Что еще не хватает?

Поделиться

114 (2017-03-21 20:49:37 отредактировано xenus_86)

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

Тоже обратил внимание на эту проблему. В теме Innovation не получается использовать форму в качестве компонента (при отправке нет доступа к папке assets/form/). Но, как вариант, можно обойтись вставкой шаблона с формой:

<?php include('form-tpl.inc.php'); ?>

Не забыв при этом подключить jquery, валидатор и Ajax обработчик.

Поделиться