Модуль распространяется бесплатно. Он прост в установке и настройке. Теперь вы можете получить отличную контактную форму на сайте всего в несколько кликов.
Модуль Wedal Joomla Callback – Всплывающая Форма Обратной Связи

Друзья, рад представить вам свою новую разработку – модуль, реализующий всплывающую и встраиваемую форму обратной связи на сайте.

Модуль распространяется бесплатно. Он прост в установке и настройке. Теперь вы можете получить отличную контактную форму на сайте всего в несколько кликов.

Wedal Joomla Callback воплощает многие идеи, которые были у меня в голове, но не могли быть сформулированы в коде. Читайте описание. Думаю, что вам понравится!

Зачем нужен еще один модуль обратной связи?

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

Дело в том, что в процессе работы над разными клиентскими сайтами мне постоянно требовался простой и легкий модуль обратной связи, который бы работал через AJAX. Главной целью была простота кастомизации под требования заказчика.

Раньше я использовал свои готовые наработки контактных форм, но их постоянное развертывание и настройка отнимало много времени.

Wedal Joomla Callback я делал в первую очередь для себя, для удобства работы. Но решил, что будет здорово поделиться модулем с сообществом.

Особенности Wedal Joomla Callback

В чем особенность данного модуля?

1. Только модуль и ничего кроме модуля

Форма обратной связи реализована с помощью одного модуля. Нет никаких дополнительных компонентов, плагинов и др.

2. Модуль работает полностью на AJAX

Он не загружается вместе со страницей. Загружается только кнопка вызова формы с таким кодом:

<div id="WJC102" data-id="102" class="wjcallback ">
    <a class="wjcallback-link" href="#">Заказать</a>
</div>

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

При клике по кнопке форма подгружается в реальном времени.

После отправки формы страница не перезагружается.

В Joomla это похоже на магию. Кто в теме, тот поймет =)

3. На странице может быть неограниченное количество разных форм с разным оформлением и только один JS и один CSS файл

Вы можете создать несколько копий модуля на одной странице с разными настройками. И да, они будут работать. При этом все формы будет обрабатывать общий JS-файл, который загрузится в единственном экземпляре.

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

4. Каждая форма, кнопка, письмо могут иметь уникальную структуру и оформление

Wedal Joomla Callback поддерживает альтернативные макеты для:

  • Кнопки запроса
  • Формы
  • Письма с запросом

Да, всего один модуль и неограниченное количество разных форм.

5. Защита от спама и CSRF-атак

Специальной защиты от спама не предусмотрено, но форму смогут увидеть только те роботы, которые умеют выполнять JS-код и додумаются кликнуть по пустой ссылке. Если вы и получите спам, то мало и редко, в основном ручной человеческий. Зато ваши пользователи не будут утруждать себя разгадыванием кода с картинки, чтобы связаться с вами.

Кроме того, в модуле внедрена проверка токена, которая не позволит совершать CSRF-атаки.

6. Простота

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

7. Всплывающая или встраеваемая в страницу форма (v 1.1.1)

В обновленной версии модуля 1.1.1 добавлена возможность показывать не только всплывающую форму, но и встраивать форму в страницу сайта. На одной странице может быть несколько всплывающих форм и несколько встроенных. И всё это будет работать!

8. Блок "Политика обработки персональных данных" (v 1.1.2)

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

Политика обработки персональных данных

9. Маска ввода номера телефона, которую можно задать самостоятельно в настройках (v 1.2.0)

В версии 1.2.0 добавлена опционально подключаемая маска для ввода номера телефона в соответствующем поле. В настройках модуля вы можете задать маску самостоятельно.

Если на странице выводится несколько модулей, маски в каждом из них могут отличаться.

maskedinput

Настройки Wedal Joomla Callback

Все настройки Wedal Joomla Callback вы можете видеть на рисунке:

Настройки модуля Wedal Joomla Callback

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

Как я писал выше, вы можете создать несколько копий модуля в админке и задать для них разные настройки, а вывести на одной странице. Это тоже будет работать.

Несколько модулей на одной странице:

Несколько модулей на одной странице

Несколько модулей на одной странице

Несколько модулей на одной странице

И конечно, вы можете вставить один или несколько модулей обратной связи в любую статью, и это тоже будет работать!

Распространение модуля Wedal Joomla Callback

Модуль всплывающей формы обратной связи Wedal Joomla Callback  распространяется по лицензии GPL. Это означает, что вы можете бесплатно скачивать и использовать его на любых сайтах.

В модуле нет скрытых ссылок и прочих «радостей» пиратского софта. Код модуля полностью открыт, и вы можете сами посмотреть его.

Скачать Wedal Joomla Callback

Wedal Joomla Callback имеет свой репозиторий на Github и поддерживает обновления прямо оттуда.

Вы можете скачать модуль по этой ссылке.

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

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

Список изменений

v1.1.1

  • Добавлена возможность использовать модуль как всплывающую или встроенную форму.

v1.1.2

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

v1.1.4

  • Исправлена ошибка, связанная с привязкой модуля только к некоторым пунктам меню

Внимание! В версии 1.1.4 исправлена ошибка, связанная с привязкой модуля только к некоторым пунктам меню. В это версии были частично изменены макеты вывода форм. Если вы использовали модуль верси 1.1.3 или ниже с переопределенными в шаблон макетами, пожалуйста, актуализируйте их, сравнив с оригинальными (список изменений можно посмотреть здесь).

v1.2.0

  • Добавлена опциональная маска ввода номера телефона
  • В письме теперь показан URL страницы, с которой отправлена форма
  • Исправлена проблема неверного адреса электронной почты, который подставлялся в поле отправителя при прямом ответе на письмо с сайта
  • Исправлена проблема зависания формы при включенном отображении ошибок в настройках Joomla
Об авторе
Об авторе
Wedal (Виталий). Веб-разработчик полного цикла (Full Stack). Создатель и автор сайта Wedal.ru.
Основной профиль – создание сайтов и расширений на CMS Joomla.

Понравилась статья? Сохраните себе:

Ваша оценка материала очень важна. Прошу вас оценить статью или оставить отзыв в комментариях.

Добавить комментарий

Для отправки комментария введите код с картинки:
Защитный код
Обновить

Комментарии  

+1 # Лаптев Михайлович 16.11.2018 10:38
А хде дэмо модуля?!)
Ответить | Ответить с цитатой | Цитировать
0 # Wedal 17.11.2018 04:19
Лаптев Михайлович, пока только на картинках. Руки еще не дошли. Там больше особенно нечего демонстрировать. Можете установить модуль на любой сайт и посмотреть в живую. Ничего настраивать не нужно. Опубликуйте его в любой позиции и увидите в работе.
Ответить | Ответить с цитатой | Цитировать
+2 # Александр Чернов 18.11.2018 02:33
Виталий, здравствуйте!

Модуль, безусловно, прекрасен, но... согласно требованиям ФЗ-152 "О персональных данных" в форме обратной связи должен присутствовать, как минимум, чекбокс "Я ознакомился/ознакомилась с Политикой конфиденциальности", а как максимум, ещё следует добавить чекбокс "Я согласен/согласна на обработку моих персональных данных" и ссылка на "Пользовательское соглашение".

Без них, к сожалению, ваш модуль, станет для владельца сайта источником немаленьких штрафов со стороны Роскомнадзора, в чём я лично уже имею печальный опыт - 65 тыс. руб. в бесспорном и внесудебном порядке.

Если вы дополните свой модуль вышеуказанными чекбоксами и ссылкой, - поверьте, цены ему не будет, и я готов (думаю, и другие веб-мастера тоже) заплатить за него разумные деньги.

Удачи вам, Виталий!
Ответить | Ответить с цитатой | Цитировать
+2 # Wedal 19.11.2018 07:02
Александр,

Да, вы правы. Я постараюсь внести это дополнение в ближайшее время. Обновление придет автоматически для уже установленных модулей через стандартную систему обновлений Joomla.

Вообще, у меня двоякое отношение к этому закону. Почему? Я думаю, эти надписи негативно будут влиять на конверсию форм. Это нам с вами понятно, что ничего особенно не меняется, только добавляется уведомление. А простые люди, уже и так ужасно уставшие от бесконечных звонков и СМС-спама, могут истолковать такую приписку совершенно иначе. Что-то вроде "Отправляя форму, вы даете согласие на то, что мы будем надоедать вам звонками и присылать смс-ки по ночам". Если человек представит толкование надписи примерно в таком виде, то, вероятно, он просто закроет форму и уйдет с сайта.

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

Юристы говорят, что даже если вы запрашиваете имя и адрес электронной почты, то это уже сбор персональных данных. И даже если они никуда не записываются, а просто приходят на email, то это ничего не меняет.

Я внесу возможность публикации предупреждения о сборе персональных данных отдельной опцией. А пока вы можете просто добавить ссылку в макет формы, предварительно переопределив его в шаблон Joomla.
Ответить | Ответить с цитатой | Цитировать
0 # Александр Чернов 25.11.2018 22:11
Благодарю, Виталий, за развёрнутый ответ т готовность изменить модуль.
Да, я с Вами полностью согласен о засилье в Сети дурацких законов - как, к примеру, я могу идентифицировать человека лишь по адресу Email - для меня, как для нормального человека до сих пор остаётся загадкой.
НО "благодаря" этому закону, пришлось регистрироваться в РКН как оператору ПД - а это идиотизм уже высшей категории, поскольку требования, предъявляемые к операторам, в частности, к физлицам, это просто нонсенс.
Ответить | Ответить с цитатой | Цитировать
0 # Wedal 29.08.2019 07:03
Александр, чекбокс согласия с обработкой персональных данных добавлен в модуль в версии 1.1.2.
Ответить | Ответить с цитатой | Цитировать
0 # ALEHAN 18.11.2018 06:23
Виталий. После нажатия на кнопку появляется крутящееся кольцо и ничего не происходит. В консоли обнаружил ошибку "Uncaught TypeError: wjcmodal.load is not a function
at HTMLAnchorElement. (wjcallback.js:11)
at HTMLDivElement.dispatch (jquery-3.3.1.slim.min.js:2)
at HTMLDivElement.v.handle (jquery-3.3.1.slim.min.js:2)"
Как исправить? Не подскажете?
Ответить | Ответить с цитатой | Цитировать
0 # ALEHAN 19.11.2018 06:39
Разобрался. Проблем была в "тонком" jQuery. Погуглив узнал, что в нем убраны обработчики ajax. Подключил полный jQuery, заработало.
Ответить | Ответить с цитатой | Цитировать
+1 # Константин 07.12.2018 22:04
Установил ваш модуль на J 3.9.1, модуль вывелся, кликаю на кнопку, всплывает окно, но в теге Modal-body пусто, поля не подгружаются, в чем может быть причина? Спасибо
Ответить | Ответить с цитатой | Цитировать
0 # Wedal 10.12.2018 03:31
Константин, проверил на J 3.9.1 - всё работает. Я думаю, форма не подгружается , поскольку у вас на сайте используется jQuery Slim. В этой версии jQuery нет функции, которая подгружает форму. Замените Slim-версию на стандартную jQuery и всё должно заработать. Прежде, чем менять, проверьте работоспособность на стандартном шаблоне Joomla. Если форма появится, то дело скорее всего в jQuery Slim.
Ответить | Ответить с цитатой | Цитировать
0 # Юрий 12.12.2018 11:21
Здравствуйте, Виталий

Возможно ли добавлять свои поля в форму? Например, название организации...
Ответить | Ответить с цитатой | Цитировать
0 # Wedal 13.12.2018 04:50
Юрий, к сожалению, нет. Точнее, если вы немного разбираетесь в коде, то можете добавить свои поля по образу уже существующих, но это будет хак модуля.
Ответить | Ответить с цитатой | Цитировать
0 # Лада 16.01.2019 04:57
Спасибо огромное ! ваш модуль-то, что мне нужно, просто находка. Просто фраза без раздражающих всплывающих кричащих кнопок. У меня все работает.
Ответить | Ответить с цитатой | Цитировать
0 # Андрей 16.01.2019 11:57
А как по ссылке открыть такое окно обратной связи? Например, чтобы под кнопку в PageBuilder положить?
Ответить | Ответить с цитатой | Цитировать
0 # Wedal 17.01.2019 03:52
Андрей, чтобы скрипт открыл правильную форму, ему нужно знать ID модуля. В статье есть пример кода, который вызывает модуль. Т.е. вы можете сделать так:
1) Опубликовать модуль в какой-нибудь видимой позиции на сайте.
2) Скопировать html-код вызова модуля (3 строчки, вроде тех, которые показаны в статье)
3) Разместить код вызова модуля в PageBuilder
4) Перенести модуль в скрытую, но существующую позицию.
Но это в теории. На практике я не пробовал такой фокус.

А что мешает вам вывести модуль прямо в PageBuilder? Ведь он выведет только эти же 3 строчки кода.
Ответить | Ответить с цитатой | Цитировать
-1 # alex 26.01.2019 12:47
Установил себе на сайт, но не подгружаются поля. Заметил особенность зависит от позиции, если просто публикую модуль в позиции шаблона, но поля подгруужаются и письмо отправляется. Проблема возникает в тот момент, когда публикую код в компоненте html, так поля не подгружаются:

Заказать


В чем может быть проблема?
Ответить | Ответить с цитатой | Цитировать
0 # Wedal 28.01.2019 04:56
alex, что такое "компонент html" ?
Ответить | Ответить с цитатой | Цитировать
0 # alex 28.01.2019 16:26
Модуль типа custom. Туда я вставляю код Код:<div id="WJC102" data-id="102" class="wjcallback ">
<a class="wjcallback-link" href="#">Заказать</a>
</div>
Ответить | Ответить с цитатой | Цитировать
0 # Wedal 29.01.2019 14:36
alex, недостаточно просто вставить этот код. Важно еще опубликовать модуль. Его можно скрыть визуально, но он должен быть опубликован на сайте, т.к. в нем подгружаются скрипты, необходимые для работы формы.
Ответить | Ответить с цитатой | Цитировать
0 # Ветал 08.02.2019 11:30
500 ошибка при отображении модуля
Ответить | Ответить с цитатой | Цитировать
0 # Wedal 11.02.2019 11:36
Ветал, ошибка 500 означает, что есть какая-то ошибка PHP (вероятно), но она не показывается пользователям по соображениям безопасности (так настроен ваш сервер). Посмотрите по логам, какая именно ошибка у вас выводится, напишите сюда, я помогу.
Ответить | Ответить с цитатой | Цитировать
0 # Виктор 09.05.2020 19:47
К сожалению, та же ошибка
Ответить | Ответить с цитатой | Цитировать
0 # Sergiy 14.02.2019 10:21
Доброго. В письме будет адрес страницы с которой была отправка формы если модуль опубликовать на всех страницах?
Ответить | Ответить с цитатой | Цитировать
0 # Wedal 15.02.2019 04:15
Sergiy, по умолчанию такой возможности нет, но ее можно легко добавить. Для этого нужно переопределить макет письма ( modules/mod_wedal_joomla_callback/tmpl/default_message.php) в используемый шаблон Joomla (/templates/ваш_шаблон/html/mod_wedal_joomla_callback/default_message.php) и добавить в него вывод URL текущей страницы.
Ответить | Ответить с цитатой | Цитировать
0 # Евгений 17.11.2019 04:56
а как быть для всплывающей формы? в шаблоне переопределил, прописываю код -
но ссылку получаю на модуль, а не на текущую страницу :( такого вида - http://мой-сайт/index.php?option=com_ajax&module=wedal_joomla_callback&format=raw&method=sendForm&modid=90
Ответить | Ответить с цитатой | Цитировать
0 # Wedal 22.11.2019 10:26
Евгений, это уже сложнее. Вам нужно:
1) Добавить в data-атрибут html-кода кнопки адрес страницы, который будет получать PHP.
2) Поправить скрипт, который при клике по кнопке будет передавать значение этого атрибута во всплывающую форму в качестве дополнительного параметра (в AJAX-запросе)
3) В форме создать скрытое поле и подставить в него URL страницы из параметра URL, либо протащить параметр в письмо другим способом.

В общем, это не так просто. Основная проблема в том, что форма вызывается через AJAX, и это получается фактически другая страница.
Ответить | Ответить с цитатой | Цитировать
0 # Юрий 16.02.2019 07:37
Здравствуте! Не выводится форма. Вот такой код в модуле:
Код: &nbsp; Внимание: Запишитесь на встречу с одним из наших профессиональных консультантовЗамер, просчет, изготовление, логистика, доставка и постгарантийное обслуживание.<br />Контакты
Что не правильно?
Ответить | Ответить с цитатой | Цитировать
0 # Wedal 20.02.2019 08:19
Юрий, пришлите ссылку, где можно посмотреть в живую.
Ответить | Ответить с цитатой | Цитировать
0 # Андрей 07.04.2019 11:57
Здравствуйте!
Джумла 3.9, установил модуль, опубликовал, появилась надпись (в настройках написал "Свяжитесь с нами", настроил поля) с линком.
При нажатии на линк открывается окно с надписью "Заказать обратный звонок" без полей для заполнения.
В индексном файле шаблона подключил jquery 3.3.1
Ощущение, что срабатывает что-то по умолчанию.
Сайт закрыт, но если нужно посмотреть - открою
Ответить | Ответить с цитатой | Цитировать
0 # Wedal 08.04.2019 13:38
Андрей, jquery не slim? Нужна полная версия. Если нет, то дайте ссылку на живой пример - посмотрю.
Ответить | Ответить с цитатой | Цитировать
0 # Иван 20.05.2019 12:54
На локальном серваке не работает, если сайты в поддоменах сервака. Ссылки наверно относительные указаны.

[Error] Failed to load resource: the server responded with a status of 404 (Not Found) (wjcallback.css, line 0)
[Error] Failed to load resource: the server responded with a status of 404 (Not Found) (wjcallback.js, line 0)
[Error] Failed to load resource: the server responded with a status of 404 (Not Found) (wjcallback.js, line 0)
Ответить | Ответить с цитатой | Цитировать
0 # Wedal 30.05.2019 06:33
Иван, да, ссылки относительные. Спасибо за наводку. Проверю и внесу правки.
Ответить | Ответить с цитатой | Цитировать
0 # Хуш 03.06.2019 19:28
Протестировал модуль.
Что понравилось:
1) Нет капчи, которая всех бесит
2) сообщение после отправки появляется там же (а не вверху во всплывающем окне и не на другой странице)
Что не очень:
1) нет галочки про ФЗ 152
2) вместо тултипов, привязанных к полям, - инф. сообщения, которые появляются вверху (в гуглхроме по крайней мере)
3) нельзя выбрать неск емейл получателей (иногда это надо)
4) письма на gmail падают в спам
Ответить | Ответить с цитатой | Цитировать
0 # Wedal 05.06.2019 15:09
Хуш, спасибо за отзыв.

Из недостатков: всё по делу, кроме последнего. Письма в спам - это уже не от модуля зависит, а от настроек почты.

Остальное буду дорабатывать по мере возможности.
Ответить | Ответить с цитатой | Цитировать
0 # Дмитрий 04.06.2019 10:13
Виталий, здравствуйте. Подскажите, пожалуйста, какие файлы в модуле нужно редактировать чтобы добавлять другие поля? Очень нужно.
Ответить | Ответить с цитатой | Цитировать
0 # Wedal 05.06.2019 15:11
Дмитрий, почти все. Точно: xml-файл манифеста, хелпер, макеты, файл скриптов, языковые файлы.

Если необходимо, я могу доработать модуль конкретно под ваши нужды за отдельную плату.
Ответить | Ответить с цитатой | Цитировать
0 # Сергей 28.06.2019 08:27
Здравствуйте, Виталий!
У меня сайт на Yootheme Pro (test.rem-parts.ru),
Установил Ваш модуль обратной связи и пробую вставить его через "вставку модуля":
{loadmoduleid 103}

Модальное окно появляется, а в нем ничего нет:

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


Подскажите, плиз, куда копать?
Ответить | Ответить с цитатой | Цитировать
0 # Wedal 02.07.2019 05:30
Сергей, на странице жмите F12, там открывайте вкладку "Консоль" и смотрите ошибки, которые там есть. Очень вероятно, что они там будут.
Ответить | Ответить с цитатой | Цитировать
0 # Владимир 08.07.2019 02:58
Во-первых Большое спасибо автору за бесплатный Модуль Wedal Joomla Callback он мне помог решить проблемку при создании сайта. Поэтому не поленился и написал решение по которому немного пришлось подумать.
Не подгружаются поля для заполнения Имя, Телефон при вставке кода в «Модуль фрагмента HTML-кода»

Заказать


При нажатии просто открывается форма «Заказать обратный звонок» и кнопка «Отправить» без полей заполнения Имя, Телефон.

Решение было найдено.
1. Создаём обязательно Модуль Wedal Joomla Callback и опубликовываем его.
2. Создаём «Модуль фрагмента HTML-кода» и вставляем код:

Заказать

3. Меняем в этом коде id и data-id на выше созданный модуль
Например:

Заказать


на


Заказать


Как мы находим id и data-id. Например, при помощи браузера Firefox кликаем по странице с опубликованной кнопкой «Оьратного звонка» правой кнопкой мышки, затем «Исследовать элемент» и находим нужный нам код. Далее я думаю вы разберётесь ))

Автор если что подправите меня. Спасибо!
Ответить | Ответить с цитатой | Цитировать
0 # Wedal 08.07.2019 10:38
Владимир, в комментариях вырезается код. Для вставки кода используйте, пожалуйста, специальный тег (последний в списке тегов комментариев). Было бы здорово, если бы вы отредактировали ваш комментарий, восстановив код. Он может быть многим полезен.
Ответить | Ответить с цитатой | Цитировать
0 # Владимир 08.07.2019 12:02
Понял ) Редактирую.
Во-первых Большое спасибо автору за бесплатный Модуль Wedal Joomla Callback он мне помог решить проблемку при создании сайта. Поэтому не поленился и написал решение по которому немного пришлось подумать ))
Не подгружаются поля для заполнения Имя, Телефон при вставке кода в «Модуль фрагмента HTML-кода»
Код:<div id="WJC102" data-id="102" class="wjcallback "> <a class="wjcallback-link" href="#">Заказать</a> </div>
При нажатии просто открывается форма «Заказать обратный звонок» и кнопка «Отправить» без полей заполнения Имя, Телефон.
Решение было найдено:
1. Создаём обязательно Модуль Wedal Joomla Callback и опубликовываем его.
2. Создаём «Модуль фрагмента HTML-кода» и вставляем код:
Код:<div id="WJC102" data-id="102" class="wjcallback "> <a class="wjcallback-link" href="#">Заказать</a> </div>
3. Меняем в этом коде id и data-id на выше созданный модуль
Например:
Код:<div id="WJC102" data-id="102" class="wjcallback "> <a class="wjcallback-link" href="#">Заказать</a> </div>
на
Код:<div id="WJC115" data-id="115" class="wjcallback "> <a class="wjcallback-link" href="#">Заказать</a> </div>
Как мы находим id и data-id. Например, при помощи браузера Firefox кликаем по странице с опубликованной кнопкой «Обратного звонка» правой кнопкой мышки, затем «Исследовать элемент» и находим нужный нам код. Далее я думаю вы разберётесь ))
Теперь по моему правильно )
Ответить | Ответить с цитатой | Цитировать
0 # Форест 09.08.2019 07:07
У меня на сайте ваш модуль не работает. При активации button «Отправить» появляется бесконечный Preloader и письмо не отправляется. Ошибок, в панели разработчика, НЕТ! Пожалел, что убил полчаса своей жизни на бесплатно-сырой модуль. Как вы думаете, уважаемый, зачем мы скачиваем ваш модуль, когда он не выдерживает конкуренции, например с бесплатным КОМПОНЕНТОМ «Joomly Callback»?
Ответить | Ответить с цитатой | Цитировать
+1 # Wedal 09.08.2019 07:57
Форест, давайте попробуем разобраться с вашим вопросом.

Бесконечный прелодер скорее всего означает, что AJAX-запрос, после которого он появился, возвращает ошибку.
Вы можете посмотреть результаты запроса в консоли браузера. Там не будет ошибок, выделенных красным, но будет виден запрос (XHR). Если раскрыть его и посмотреть вкладку "Ответ" с включенным в Joomla отображением ошибок, вы должны увидеть там текст ошибки. Напишите его сюда и я помогу. Либо пришлите ссылку на живой сайт и я посмотрю сам.

Ну а насчет того, чем модуль лучше... Уже хотя бы тем, что не компонент. Легче, быстрее, проще.
Ответить | Ответить с цитатой | Цитировать
0 # Самсон 06.09.2019 19:07
Модуль не работает. Я думаю автор это и сам знает. Если бы модуль работал, по крайне мере была бы подробная инструкция о том как его устанавливать и описание, что такое id и id-data. Я не понимаю зачем людям голову морочить?
Ответить | Ответить с цитатой | Цитировать
+2 # Wedal 09.09.2019 07:18
Самсон, я вот тоже не понимаю - зачем? Заморочился, написал неработающий модуль, статью, выпускаю обновления. Это всё заговор мировых правительств =).

Ну какая вам нужна инструкция по установке? Скачал, зашел в менеджер расширений, выбрал архив, всё само установилось. Также, как любое другое расширение Joomla.

Id и data-id нужны чтобы скрипт мог понять, какой именно модуль вызван. На странице может быть несколько экземпляров модуля с разными настройками, а скрипт один. Это и круто. Но без уникального идентификатора скрипт не поймет каким именно экземпляром воспользовался пользователь.

Если у вас модуль не работает, напишите мне, попросите помочь. Я еще никому не отказал в комментариях выше. Зачем писать такую ерунду? В Joomla может быть огромное количество конфигураций. Кто-то пользуется стандартными шаблонами, кто-то билдерами страниц. У кого-то изначально на странице есть ошибки JS, которые могут препятствовать правильной работе скриптов.

Напишите, что именно у вас не работает, или, еще лучше, дайте ссылку на живой пример. Я постараюсь помочь разобраться с проблемой.
Ответить | Ответить с цитатой | Цитировать
+1 # Guest 09.09.2019 09:18
Подтверждаю модуль рабочий на 100% Просто у некоторых знаний не хватает или руки не из того места растут )))
Ответить | Ответить с цитатой | Цитировать
0 # Александр 16.09.2019 12:57
День добрый!
При выборе поля для комментария без его обязательности, это поле не появляется на фронте вообще.
Ответить | Ответить с цитатой | Цитировать
0 # Wedal 18.09.2019 06:52
Александр, спасибо, что написали. Да, это был баг. Исправил и выпустил обновление. Обновитесь до версии 1.1.3.
Ответить | Ответить с цитатой | Цитировать
0 # Александр 18.09.2019 11:16
День добрый!
Во всплывающем окне при включении показа ошибок есть вот такое : Notice: Undefined variable: formtitle in /...../modules/mod_wedal_joomla_callback/tmpl/default_popupform.php on line 10
Ответить | Ответить с цитатой | Цитировать
0 # Wedal 23.09.2019 09:21
Александр, не страшно (это просто предупреждение о том, что переменная не определена, на работу модуля никак не влияет), но да, нужно я добавлю доп. проверку в код, чтобы это не показывалось. Чтобы быстро скрыть предупреждение, вы можете отключить отображение ошибок в общих настройках Joomla.
Ответить | Ответить с цитатой | Цитировать
0 # Александр 18.09.2019 11:23
По поводу вывода кнопки, не совсем правильно ! Выводит ссылку на форму, кнопки то там нет. При обновлении слетели все CSS изменения сделанные мной под свой сайт, а это не комильфо!
Ответить | Ответить с цитатой | Цитировать
0 # Wedal 23.09.2019 09:24
Александр, кнопка, в данном случае, это то же самое, что и ссылка. Разница только в оформлении.

Стили у вас слетели при обновлении вероятно потому, что вы добавляли их в CSS-файл модуля. Этого делать нельзя, это хак. При обновлении все файлы модуля перезаписываются новыми и ваши изменения стираются. Правильно добавлять ваши CSS-стили в используемый шаблон Joomla, в один из его CSS-файлов. При этом стили всё равно будут применяться к модулю, но при его обновлении не потеряются.
Ответить | Ответить с цитатой | Цитировать
-1 # Guest 29.09.2019 10:41
при создании модуля со встроенной формой-отправляет письмо с пустым содержимым.я проверил по коду-$body = ob_get_contents(); не получает никаких данных,переменная пустая.
копнул дальше-в строке $params = ModWedalJoomlaCallbackHelper::getParams($moduleId); получает id модуля верно,а вот дальше в строке $formfields = $params->get('formfields', ''); получает поля с 0 значением:
{ ["show"]=> string(0) "" ["req"]=> NULL } array(2) { ["show"]=> string(0) "" ["req"]=> NULL } array(2) { ["show"]=> string(0) "" ["req"]=> NULL } array(2) { ["show"]=> string(0) "" ["req"]=> NULL } array(4) { ["show"]=> string(0) "" ["toslink"]=> string(1) "#" ["toslinktext"]=> string(16) "Terms of service" ["toscheckbox"]=> string(0) "" }
хотя при этом вот параметры этого модуля в БД:
{"moduletype":"1","buttontext":"","email":"*********","mailtitle":"*********","showformtitle":"1","formtitle":"Still have questions?","formdesc":"Leave a request and we will call you back in 5 minutes","showname":"0","shownamereq":"1","showemail":"0","showemailreq":"0","showphone":"1","showphonereq":"1","showtextarea":"0","showtextareareq":" 0","showtos":"0","toslinktext":"","toslink":"","toscheckbox":"0","thankyoutext":"*******","layout":"_:default","moduleclass_sfx":"","cache":"1","cache _time":"900","cachemode":"static","module_tag":"div","bootstrap_size":"0","header_tag":"h3","header_class":"","style":"0","module-intro":"","module-ba ckground":"","module-specical-title":"0","module-full-width":"0"}
Ответить | Ответить с цитатой | Цитировать
0 # Wedal 30.09.2019 04:18
Guest, перепроверил работу встроенного модуля с указанными настройками. У меня письма приходят нормально.

Какая у вас версия Joomla?
Работает ли корректно всплывающая форма?

Также попробуйте отключить кэширование модуля, если у вас включено кэширование сайта в общих настройках.
Ответить | Ответить с цитатой | Цитировать
0 # Guest 30.09.2019 13:27
кеширование на сайте выключено
версия 3.9.6
всплывающая работает без нареканий.
покопал дальше-нашёл что в методе getParams переменную moduleId получает с верным значением,а вот дальше в строке $params->loadString($module->params); не получает нужных параметров модуля,а получает вот что:
{ ["data":protected]=> object(stdClass)#494 (0) { } ["initialized":protected]=> bool(true) ["separator"]=> string(1) "." }

попытка раскоментировать строку $module = JModuleHelper::getModuleById($moduleId); вместо $module = ModWedalJoomlaCallbackHelper::getModuleById($moduleId); успеха не приносит для встроенной формы,но ещё и не выводит поля всплывающей.
Ответить | Ответить с цитатой | Цитировать
0 # Wedal 01.10.2019 06:28
Guest, Вы не изменяли код модуля? Посмотрите, что выводит переменная $module после строки:
$module = ModWedalJoomlaCallbackHelper::getModuleById($moduleId);
Ответить | Ответить с цитатой | Цитировать
0 # Guest 01.10.2019 11:45
не изменял
возвращает bool(false)
Ответить | Ответить с цитатой | Цитировать
0 # Guest 02.10.2019 01:56
что-то вырисовалось.в методе getModuleById я посмотрел что возвращает $modules = JModuleHelper::getModuleList();
оказалось такая интересная ситуация:сайт у меня на 3-х языках.сразу оговорюсь,проблема одинакова для всех языков.
так вот,в каждом языке есть 3 модуля.один всплывающий,есть на всех страницах.второй встроенный,есть только на главной.третий встроенный,есть везде,КРОМЕ главной.
первый и третий работают,а вот второй-нет.и вот как-раз в выше упомянутом методе приходят один раз всплывающий модуль(всё верно),и ТРИ РАЗА встроенный модуль,но не тот что под номером 2,а тот что под номером 3,которого на главной вообще нет(и его действительно на странице нет).а вот модуль,который есть на этой странице-не приходит вообще.
если в админке отключить модуль 3,то только модуль 1 остаётся в списке(всплывающий),хотя физически на странице модуль есть.
Ответить | Ответить с цитатой | Цитировать
0 # Wedal 03.10.2019 07:44
Guest, я, кажется, понял, в чем тут соль. Фокус в привязке модулей к отдельным страницам. Модуль вызывается по AJAX и в вызове не передается Itemid страницы вызова (условно - той страницы, к которой модуль привязан, в вашем случае - Главной). Поэтому Joomla думает, что список модулей запрошен не с главной страницы а с другой. В результате она возвращает 2 модуля, которые привязаны к другой странице (= все, кроме главной).
Я даже не думал в этом ключе, когда делал модуль. Нужно будет внести правку, при которой как-то учитывать привязанные пункты меню при вызове через AJAX.
У вас же пока решение очень простое: сделайте привязку всех экземпляров модуля ко всем страницам и всё будет работать.
Если нужно скрыть модуль на всех страницах, кроме главной, задайте для него по умолчанию display: none; , а на главной переопределите через какой-нибудь уникальный класс на display:block;. Пока только так.
Ответить | Ответить с цитатой | Цитировать
0 # Юрий 21.10.2019 23:25
Кнопка "заказать обратный звонок" выводит пустую форму. Форма появляется, если модуль опубликован на всех страницах, по иному - никак. Виталий, исправляйся :)
Ответить | Ответить с цитатой | Цитировать
+2 # Wedal 22.10.2019 05:35
Юрий, да, такая проблема есть. В статье информация о ней выделена синим. Исправлю в ближайшем обновлении.
Ответить | Ответить с цитатой | Цитировать
+1 # Wedal 22.10.2019 06:27
Выпущено обновление 1.1.4. В версии 1.1.4 исправлена ошибка, связанная с привязкой модуля только к некоторым пунктам меню. В это версии были частично изменены макеты вывода форм. Если вы использовали модуль верси 1.1.3 или ниже с переопределенными в шаблон макетами, пожалуйста, актуализируйте их, сравнив с оригинальными (список изменений можно посмотреть здесь: https://github.com/wedal/mod_wedal_joomla_callback/commit/abfa992d7cc53dc5baaa653ed3fab07c7f93b4a2).
Ответить | Ответить с цитатой | Цитировать
0 # djbu 29.10.2019 11:48
Модуль классный, спасибо автору!

Вопрос есть: как сделать так чтобы при ответе на письмо подставлялся адрес посетителя? Сейчас при ответе если не обратить внимание письмо отправляется на адрес сайта
Ответить | Ответить с цитатой | Цитировать
0 # Wedal 30.10.2019 09:33
djbu, можно, но это будет хак модуля. Если решите сделать, отредактируйте файл helper.php в той части, где идет отправка письма. В правильной настройке вам помогут эти материалы:
https://docs.joomla.org/Sending_email_from_extensions
https://api.joomla.org/cms-3/classes/Joomla.CMS.Mail.Mail.html

Но еще раз: это хак. Он будет стерт при обновлении модуля.
Я изучу этот вопрос и, возможно, внесу правку в следующем обновлении.
Ответить | Ответить с цитатой | Цитировать
+1 # Guest 31.10.2019 08:54
Здравствуйте. хороший модуль ). А где можно поправить чтобы выводился не ссылкой а кнопкой на странице ?
Ответить | Ответить с цитатой | Цитировать
0 # Wedal 22.11.2019 10:07
Guest, в CSS вашего шаблона. Ссылку от кнопки, в общем случае, отличают только стили оформления.
Ответить | Ответить с цитатой | Цитировать
0 # Аня 27.03.2020 17:34
Добрый день!

А можно по подробнее про это пожалуйста.
Ответить | Ответить с цитатой | Цитировать
+1 # Оксана 09.12.2019 12:28
Спасибо! Модуль простой и понятный. Как сделать, чтобы отображалась ссылка на страницу сайта с которой был сделан был сделан запрос.
Подскажите где и что добавить, пожалуйста )
Ответить | Ответить с цитатой | Цитировать
+2 # Wedal 09.12.2019 12:40
Оксана, к сожалению, пока этой возможности нет в модуле, но мне кажется, что она очень важная. Включил в список доработок. Постараюсь добавить в следующем обновлении.
Ответить | Ответить с цитатой | Цитировать
0 # Игорь 08.01.2020 10:01
Здравствуйте, Виталий. Подскажите, к форме можно прикрутить маску телефона? В каком файле это реализовать?
Ответить | Ответить с цитатой | Цитировать
0 # Wedal 09.01.2020 07:22
Игорь, да, можно. Вы должны скачать и добавить на сайт скрипт maskedinput или любой другой аналогичного функционала. Далее все действия будут производиться в файле макета формы. В зависимости от того, какую форму вы используете - всплывающую или встроенную, вам нужно переопределить макет этой формы в используемый шаблон Joomla.
Все макеты здесь: /modules/mod_wedal_joomla_callback/tmpl/
Всё, что вам нужно сделать, это подключить скрипт маски в макете и добавить правки к полю ввода телефона в соответствии с документацией скрипта. Обычно там нужно добавить 1-2 слова.

В ближайшем обновлении я постараюсь добавить этот функционал в модуль по умолчанию.
Ответить | Ответить с цитатой | Цитировать
0 # hush 06.03.2020 08:56
Wedal, Добрый день!
Установил модуль. После отправки появляется текст:
Invalid token. Похоже ваша сессия закончилась. Перезагрузите страницу и отправьте запрос повторно.

Кэш в общих настройках и плагин кеширования отключены. Как решить эту проблему?
Спасибо
Ответить | Ответить с цитатой | Цитировать
0 # Wedal 06.03.2020 09:49
hush, может быть действительно закончилась сессия? Если нет, то возможно домен 3 уровня. Выше в комментариях писали, что есть проблемы с поддоменами. Если нет, то нужно анализировать подробно.
Ответить | Ответить с цитатой | Цитировать
0 # hush 06.03.2020 19:49
Цитирую Wedal:
hush, может быть действительно закончилась сессия? Если нет, то возможно домен 3 уровня. Выше в комментариях писали, что есть проблемы с поддоменами. Если нет, то нужно анализировать подробно.

там не домен второго уровня - сайт в сайте, такой адрес - сайт.ру/сайт2.ру
и вот на сайт2.ру стоит форма. Можно это как-то поправить? у заказчика жгучее желание не использовать капчу, а каких-то других безопасных форм с нужным функционалом я не нашел.
Ответить | Ответить с цитатой | Цитировать
0 # Wedal 09.03.2020 08:14
hush, да, думаю можно поправить. Проблема, скорее всего, кроется в том, что JSession::checkToken() определяются неправильно. Найдите в файле helper.php эту строчку и поэкспериментируйте с ней применительно в вашей структуре.
Ответить | Ответить с цитатой | Цитировать
0 # Владимир 19.03.2020 16:07
Здравствуйте. Подскажите пожалуйста. Как поменять в вашем модуле CSS?
Ответить | Ответить с цитатой | Цитировать
0 # Wedal 20.03.2020 06:52
Владимир, просто пишите нужные стили в CSS-файле вашего шаблона.
Ответить | Ответить с цитатой | Цитировать
0 # Татьяна 29.03.2020 06:48
Добрый день! Возможно, будете смеяться надо мной, но я не программист, и сайт свой сама пытаюсь продвигать. Многое не умею, а наши спецы-сайтостроители не хотят браться за имеющиеся сайты и что-то в них встраивать или дорабатывать. Поэтому приходится барахтаться самой )) Я по вашему уроку построила форму обратной связи в Контактах, но пробные письма не приходят на почту... Не понимаю, в чем проблема. Имя почты проверила - всё правильно...
Скачала ваш плагин с формой обратной связи. Хочу спросить - встраивать его нужно в виде архива, как он скачался, или нужно куда-то распаковать? А прописанные команды с кнопкой вызова Формы обратной связи куда встроить можно? Или этот код нужно прописать какой-то кнопке?
Ответить | Ответить с цитатой | Цитировать
0 # Wedal 30.03.2020 09:41
Татьяна, это не плагин, а модуль. Устанавливается он в Joomla как и все другие расширения, через менеджер расширений в админке. Вам нужно загрузить там архив с модулем, а затем в менеджере модулей опубликовать его в нужной позиции шаблона и задать настройки. Всё.
Ответить | Ответить с цитатой | Цитировать
0 # Guest 05.04.2020 11:46
Спасибо за это улучшение - «В письме теперь показан URL страницы, с которой отправлена форма». Очень полезная информация о странице запроса на обратную связь.
Правда, для моего сайта необходимо передавать в письмо ещё и информацию о конкретном модуле Wedal Joomla Callback. На сайте для каждого специалиста свой модуль, а для менеджера необходимо сочетание информации URL-страницы и имя специалиста чей модуль был использован.
Для версии 1.1.4 сделал переопределения модуля, в частности, изменив файл default_message.php. Но с Вашей новой версией (1.2.0) решение стало изящным.
Спасибо за отличный модуль!
Ответить | Ответить с цитатой | Цитировать
0 # Joom 16.04.2020 08:47
сообщения не приходят
Ответить | Ответить с цитатой | Цитировать
0 # Wedal 17.04.2020 07:08
Joom, модуль отправляет письма через стандартный функционал Joomla. Первым делом убедитесь, что проверочное письмо, которое можно отправить из общих настроек Joomla, доходит до вас. Если нет, проблема не в модуле, а в настройках отправки почты. Если да - напишите сюда, разберемся.
Ответить | Ответить с цитатой | Цитировать
0 # Arendator 25.04.2020 06:49
Прошу прощения, как это проверочное письмо отправить?
Ответить | Ответить с цитатой | Цитировать
0 # Wedal 27.04.2020 05:55
Система -> Общие настройки -> Вкладка "Сервер" -> Блок "Параметры почты" -> Кнопка "Отправить тестовое сообщение"
Ответить | Ответить с цитатой | Цитировать
+1 # Guest 06.05.2020 12:34
Спасибо за модуль! Он идеален!
Есть вопрос, как можно запустить модуль через ссылку?
Я хочу добавить в меню кнопку "Заказать звонок", а в меню можно использовать только ссылки, этот код там некуда вставлять (id="WJC102" data-id="102")
Ответить | Ответить с цитатой | Цитировать
+1 # Wedal 07.05.2020 07:28
Guest, на данный момент запуск модуля по прямой ссылке невозможен, т.к. при вызове требуется передать ID, который берется из родительского DIV'а. Это была, вероятно, не самая удачная идея, и нужно было использовать эти data-параметры в самой ссылке, а не в родителе. Такое исправление не потребует много времени, но, определенно, потребует изменений макета вывода кнопки, что означает, что после такого обновления у пользователей, которые установили модуль раньше и оформили его под себя, может пропасть оформление. Я уже некоторое время думаю, как реализовать этот момент таким образом, чтобы и волки были сыты и овцы целы. Вероятно, в ближайшей перспективе, такое исправление все-таки будет сделано.

По вашему вопросу:
Проще всего, на мой взгляд, вставить в меню пустую ссылку (ссылку с пустым href или равным "#" и добавить на нее JQuery-обработчик on click), который при срабатывании будет кликать на кнопку вызова модуля (сам модуль можно опубликовать в любой позиции и скрыть). Всё это звучит слегка сложно, но по факту:
Код:
jQuery(document).ready(function($) {
$('.класс_меню').on('click', '.класс_ссылки_в_меню', function(event) {
event.preventDefault();
$('.класс_кнопки_модуля').click();
});
});
Ответить | Ответить с цитатой | Цитировать
0 # Stepan Kazakov 25.05.2020 16:12
буду пробовать ваш модуль, все равно буду делать український перевод, вам файли вислати?
Ответить | Ответить с цитатой | Цитировать
0 # Wedal 27.05.2020 07:49
Stepan, если сделаете украинский перевод, присылайте - включу его в модуль.
Ответить | Ответить с цитатой | Цитировать
0 # Андрей 26.06.2020 10:44
Здравствуйте, как добавить выпадающий список кода страны к телефону?
Ответить | Ответить с цитатой | Цитировать
0 # Wedal 29.06.2020 07:17
Андрей, только дописыванием кода. Либо можно подключить к полю выбора телефона другой jQuery-плагин, вместо MaskedInput, например этот:
https://nosir.github.io/cleave.js/. Там уже заложен выбор страны.
Ответить | Ответить с цитатой | Цитировать
0 # Юрий 20.07.2020 18:26
А как скачать то? НЕ найду ссылку.
Ответить | Ответить с цитатой | Цитировать
0 # Wedal 21.07.2020 08:08
Юрий, плохо ищете =). Есть в статье.
https://github.com/wedal/mod_wedal_joomla_callback/archive/master.zip
Ответить | Ответить с цитатой | Цитировать
0 # Юрий 05.08.2020 07:11
Очень хороший модуль, использую на трех сайтах. Автору респект! И вопрос - возможно ли добавить в форму несколько полей, к примеру чекбокс, чтобы юзер мог выбирать конкретную услугу. У нас магазин окон, дверей и ремонт балконов. Было б замечательно, если бы в форме было так:
Телефон
Почта
Что вы хотите заказать:
  • Окна
окна
  • Двери
окна
  • Ремонт балкона
окна
Комментарий

Виталий, такое возможно сделать, или это утяжелит код и вызов формы?
Ответить | Ответить с цитатой | Цитировать
0 # Wedal 05.08.2020 09:34
Юрий, это нужно добавить в модуль и даже были такие планы, но пока не хватает времени.
Форму это не утяжелит, но усложнит ее настройку в админке. Так происходит с любой универсальностью - вы жертвуете простотой.

Я могу сделать вам обновленную версию с необходимыми именно вам чекбоксами за отдельную плату, если нужно.
Ответить | Ответить с цитатой | Цитировать
0 # Юрий 05.08.2020 16:41
Спасибо за быстрый ответ, Виталий. Спрошу у собственников сайта, если будут настаивать на добавлении кнопок в форму, тогда купим.
Ответить | Ответить с цитатой | Цитировать