Простой модуль Обратный звонок AJAX

  • 152 Ответов
  • 26544 Просмотров

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

*

wfedin

  • ******
  • 1290
  • 102
Понадобилась простая форма обратной связи и т.к. не нашёл ничего подобного на Joomla! 3 решил попробовать сам написать и не смог бы, но благодаря активному участию Istaan и Fedor Vlasenko в теме Безопасен ли такой модуль? он увидел таки свет. Огромное вам спасибо за потраченное время на моё обучение  *DRINK*

Особенности модуля:
  • Не больше одного модуля на странице
  • За сессию можно отправить не больше 7 сообщений
  • Весь код прокомментирован и в случае чего можно легко найти настройку
  • Валидация на jQuery Validation Plugin - v1.11.1
  • В самом конце файла callback.js находятся правила проверки и локализация ошибок

Скачать модуль Call Back

С выходом Joomla! 3.2 Запилил версию под модальное окно Bootstrap

Особенности:

Скачать модуль Call Back

P.S. Вся ответственность за использование модуля на Вас самих. Никаких претензий на авторство, вы вправе делать с ним, что пожелаете.

*

wfedin

  • ******
  • 1290
  • 102
Re: Простой модуль Обратный звонок AJAX
« Ответ #1 : 27.09.2013, 20:58:26 »
Под диктовку Istaan и Fedor Vlasenko было переписано около 50% кода модуля, всем кто скачал его рекомендую обновиться. Модуль для Joomla! 3.x, но думаю пойдёт и на 2.5.х. Единственное в файле sender.php необходимо закомментировать 23 строку и раскомментировать 25 строку.

*

zikkuratvk

  • ********
  • 4014
  • 268
  • Разрабатываем для Joomla
Re: Простой модуль Обратный звонок AJAX
« Ответ #2 : 29.09.2013, 09:43:38 »
Рекомендую добавить ссылку на демо.
Хочется уникальное расширение? ===>>>> JoomLine - Разрабатываем расширения под заказ.
Использую хостинг TimeWeb и Reg

*

wfedin

  • ******
  • 1290
  • 102
Re: Простой модуль Обратный звонок AJAX
« Ответ #3 : 29.09.2013, 15:59:14 »
Рекомендую добавить ссылку на демо.
Нет пока, планирую переход после выхода 3.2 в конце октября. Готовлюсь  ^-^ Вообще я не планирую плотно разработкой заниматься, так... любитель и не более.

*

wfedin

  • ******
  • 1290
  • 102
Re: Простой модуль Обратный звонок AJAX
« Ответ #4 : 05.10.2013, 13:31:56 »
Сегодня поставил на Joomla! 2.5.14, никаких изменений вносить не пришлось. Просто работает!

Re: Простой модуль Обратный звонок AJAX
« Ответ #5 : 07.10.2013, 18:37:31 »
А как убрать лишние поля? простите, за идиотский вопрос ))))

*

wfedin

  • ******
  • 1290
  • 102
Re: Простой модуль Обратный звонок AJAX
« Ответ #6 : 07.10.2013, 19:46:52 »
А как убрать лишние поля? простите, за идиотский вопрос ))))

Они в файле form.xml находятся, ну и нужно в sender.php их обработку убрать.

Re: Простой модуль Обратный звонок AJAX
« Ответ #7 : 07.10.2013, 20:14:46 »
Не получается с полем name:
убираю само поле из шаблона,
убираю в js/callback.js проверку:
'callback[name]': {required: false,

И сразу выдает ошибку... В чем может быть дело?



Re: Простой модуль Обратный звонок AJAX
« Ответ #10 : 08.10.2013, 22:27:09 »
А где в sender править? я с php не очень, честно говоря.

if(!preg_match('/^[-\sa-zа-яё]{3,25}+$/ui', $data['name'])) {
   $error = 1;
}

- вырезал вот этот кусок. Перестало сообщать об ошибке, но без заполненного поля все равно не отправляет.
« Последнее редактирование: 08.10.2013, 22:31:02 от inko_gnito »

Re: Простой модуль Обратный звонок AJAX
« Ответ #11 : 08.10.2013, 22:36:45 »
Сорри! Все заработало!

Итак, что сделал:

в файле form.xml вырезал два field с именем и месседжем

в файле sender.php - кусок с обработкой name.


Вот еще сложная задача - как можно field сделать скрытым? что-то из XML не подтягиваются никакие стили и ничерта вообще, как ни кручу...

Хочу сделать поле message скрытым и вбить в него по умолчанию какой-то текст.

И сделать на основе этого фильтр в почте. Если текст в поле message не меняли - в одну сторону письма откладывать, если меняли - в папку спам, потому что человек поменять ничего не мог - при включенном CSS форма должна быть невидимой.


Re: Простой модуль Обратный звонок AJAX
« Ответ #13 : 08.10.2013, 23:07:26 »
Не совсем понял.

Давайте я конкретизирую вопрос: как можно присвоить новый (не предусмотренный) параметр для input в коде вашего модуля?

*

verstalshik

  • *******
  • 1787
  • 93
Re: Простой модуль Обратный звонок AJAX
« Ответ #14 : 08.10.2013, 23:13:53 »
вот видите, уже и тех. поддержку требуют)))
как говорится, назвался Фединым -будьте любезны)))
а вообще для одиночки разумнее делать платный вариант, просто тупо состав времени сэкономите... или у вас его полно если тока.... тогда кусочек мне отсыпьте...
❶ НЕ СПРАВЛЯЕШЬСЯ САМ???  Поможем тут...  ❷ Калькулятор доставки - ЗАКАЖИ!!!...  ❸ Каталог компаний - ЖМИ!!!...  ❹ НОВИЧКИ! ВСЕ сюда! Первая консультация БЕСПЛАТНО!!

*

wfedin

  • ******
  • 1290
  • 102
Re: Простой модуль Обратный звонок AJAX
« Ответ #15 : 08.10.2013, 23:22:59 »
Вот еще сложная задача - как можно field сделать скрытым? что-то из XML не подтягиваются никакие стили и ничерта вообще, как ни кручу...

Хочу сделать поле message скрытым и вбить в него по умолчанию какой-то текст.


Думаю не стоит. Спама и так нет пока.

*

wfedin

  • ******
  • 1290
  • 102
Re: Простой модуль Обратный звонок AJAX
« Ответ #16 : 08.10.2013, 23:26:48 »
а вообще для одиночки разумнее делать платный вариант, просто тупо состав времени сэкономите... или у вас его полно если тока.... тогда кусочек мне отсыпьте...
Он не требует, он спрашиает как? ^-^

Re: Простой модуль Обратный звонок AJAX
« Ответ #17 : 10.10.2013, 13:45:00 »
Не требую, точнее даже предлагаю варианты доработки )

Спама за сутки пришло более 300 писем - на старый домен ставлю.

Делать капчу не буду принципиально - она конверт снижает на 20-30% по АВ-тестам.

Вот скрытые поля - это простая альтернатива, которую пока роботы не распознают (начнут - буду делать скрытие на js)


пока не освоил как это сделать, зато придумал фильтр в почте по пустому полю.

*

wfedin

  • ******
  • 1290
  • 102
Re: Простой модуль Обратный звонок AJAX
« Ответ #18 : 10.10.2013, 14:51:22 »
Сказки какие-то, на крайняк можете регулярку поправить [-+\s\(\)0-9] если поле для телефона.
У меня 3 поля и ни одного спамного сообщения.

*

verstalshik

  • *******
  • 1787
  • 93
Re: Простой модуль Обратный звонок AJAX
« Ответ #19 : 10.10.2013, 16:51:31 »
Вот скрытые поля - это простая альтернатива, которую пока роботы не распознают (начнут - буду делать скрытие на js)
пока не освоил как это сделать, зато придумал фильтр в почте по пустому полю.
вы чтото путатеете... скрытые поля от роботов я применяю так - делаю условие на заполненность скрытого поля - если поле заполнено, то в спам! изначально поле пустое. это помогает, если робот продвинутый, т.е. пытается заполнить все поля. а то что оно скрыто - это как раза не для робота0)) в исходном коде поле ведь видно! или вы как скрываете?
т.е. если проще, то вот логика:
заходит человек, скрытое поле не видит и соответственно не заполняет, остальные поля заполняет -> форма отправляется
заходит робот-спамер, скрытое поле видит и соответственно заполняет, остальные поля заполняет -> форма НЕ отправляется

еще на скрытое поле звездочку можно привесить, мож роботы уже настолько умные, что по звездочкам тоже смотрят, кто их знает...

такая логика не поможет, если роботы тупые - когда заполняют одно-два-три поле и вперед, тогда им может повезти и заполнят только то что нужно ...
вечная борьба....
"так жизнь скучна, когда боренья нет" ))) © М. Ю. Лермонтов
❶ НЕ СПРАВЛЯЕШЬСЯ САМ???  Поможем тут...  ❷ Калькулятор доставки - ЗАКАЖИ!!!...  ❸ Каталог компаний - ЖМИ!!!...  ❹ НОВИЧКИ! ВСЕ сюда! Первая консультация БЕСПЛАТНО!!

*

verstalshik

  • *******
  • 1787
  • 93
Re: Простой модуль Обратный звонок AJAX
« Ответ #20 : 10.10.2013, 16:52:20 »
Сказки какие-то, на крайняк можете регулярку поправить [-+\s\(\)0-9] если поле для телефона.
У меня 3 поля и ни одного спамного сообщения.
посещалка там может другая?
❶ НЕ СПРАВЛЯЕШЬСЯ САМ???  Поможем тут...  ❷ Калькулятор доставки - ЗАКАЖИ!!!...  ❸ Каталог компаний - ЖМИ!!!...  ❹ НОВИЧКИ! ВСЕ сюда! Первая консультация БЕСПЛАТНО!!

*

wfedin

  • ******
  • 1290
  • 102
Re: Простой модуль Обратный звонок AJAX
« Ответ #21 : 10.10.2013, 19:06:50 »
Если поле лишь под телефон - сомневаюсь что кто-то спамит цифрами, дефисами и круглыми скобками с плюсами ::)
Кстати, а + нужно экранировать \ в символьном классе?
Если учесть, что + квантификатор, то правильно наверное будет [-\+\s\(\)0-9]

Re: Простой модуль Обратный звонок AJAX
« Ответ #22 : 11.10.2013, 13:38:51 »
Кстати, да ))) с момента как оставил только поле под телефон - роботы вымерли.

А про сказки - домену 10 лет. Он во всех спамбазах есть.

Как только активирую форму для обратной связи - начинается просто бомбардировка.

Если до вас не докатилось - это вопрос двух-трех лет и активного продвижения сайта. Кстати, есть чувство, что они домены подбором ищут - у меня почти все - до 5 символов и все спамятся.

Re: Простой модуль Обратный звонок AJAX
« Ответ #23 : 11.10.2013, 13:50:55 »
Всю голову сломал - как можно placeholder добавить в форму?

*

wfedin

  • ******
  • 1290
  • 102
Re: Простой модуль Обратный звонок AJAX
« Ответ #24 : 11.10.2013, 14:25:37 »
Боюсь, что через XML не выйдет... Как вариант. или переноси поле в default.php, а помошника в топку... Удаляем:
из mod_callback.php
Код: php
// Подключаем файл помошник
require_once dirname(__FILE__). '/helper.php';
в default.php заменяем
Код: php
	<?php foreach ($form->getFieldset('callback') as $field): ?>
<?php echo $field->label; ?>
<?php echo $field->input; ?>
<?php endforeach; ?>
на
Код: html4strict
<input type="text" name="callback[phone]" placeholder="+7 (495) 455-78-06">

*

wfedin

  • ******
  • 1290
  • 102
Re: Простой модуль Обратный звонок AJAX
« Ответ #25 : 07.11.2013, 19:12:06 »
С выходом Joomla! 3.2 Запилил версию под модальное окно Bootstrap
Сайт с демо под аватаром, на страницах с услугами...

*

Sokol

  • ***
  • 39
  • 0
Re: Простой модуль Обратный звонок AJAX
« Ответ #26 : 19.11.2013, 14:08:31 »
Здравствуйте, wfedin!

Модуль установился без проблем, кнопка работает, модальное окно открывается. Но при нажатии кнопки "отправить" постоянно выходит сообщение:
"Извините, но при отправке письма произошла ошибка. Пожалуйста попробуйте позже."

т.е заявка ни разу не отправилась.

До Вашего варианта стоял "родной" callback, и работал без глюков. Тот модуль не устраивал как раз тем, что не был заточен под Bootstrap, пришлось ковыряться с дизайном и с его окна при клике то и дело перекидывало на сайт разработчика.
Перед установкой нового старый модуль был удален.
Joomla! 3.1.5
шаблон написан на YT Framework
наличие Bootstrap имеется
наличие Font Awesome имеется
« Последнее редактирование: 19.11.2013, 14:14:22 от Sokol »

*

wfedin

  • ******
  • 1290
  • 102
Re: Простой модуль Обратный звонок AJAX
« Ответ #27 : 19.11.2013, 15:43:14 »
А штатным компонентом почта уходит? Модуль отправляет почту средствами Joomla!

*

Sokol

  • ***
  • 39
  • 0
Re: Простой модуль Обратный звонок AJAX
« Ответ #28 : 19.11.2013, 16:47:11 »
Да. Стоит компонент JoomShopping инфа по заказам отправляется нормально.