Куда идем?
Wedal Joomla Callback 2

Наконец, он готов к релизу. Рад представить вашему вниманию обновленный модуль обратной связи Wedal Joomla Callback 2.

В нем учтены все пожелания, собранные за время существования Wedal Joomla Callback 1.x.

В нем добавлены новые, очень полезные функции.

Он, как всегда, имеет открытый код и распространяется бесплатно.

Встречайте…

Содержание

  1. О модуле
  2. Новые возможности Wedal Joomla Callback 2
    1. Поддержка Joomla 4+ и отказ от поддержки Joomla 3
    2. Добавлена поддержка неограниченного количества дополнительных полей разных типов, через Joomla XML Fields
    3. Добавлена возможность переопределения базовых полей
    4. Добавлена поддержка вложений
    5. Добавлена поддержка целей Яндекс.Метрики
    6. Код кнопки вызова формы максимально упрощен для использования в любом месте страницы
    7. Добавлены дополнительные возможности оформления модуля
    8. jQuery больше не требуется
    9. Добавлены JS-триггеры для разных событий модуля
    10. Возможность указать несколько получателей письма
    11. Все поля теперь используют базовые макеты Joomla, наследуют стили шаблона, могут быть переопределены в шаблон
    12. Файлы стилей и скриптов модуля теперь доступны для переопределения
    13. Добавлена возможность получения сообщения по СМС (v2.1.0+)
    14. Добавлена возможность получения сообщения в Telegram (v2.1.0+)
    15. Мелкие доработки и исправления
  3. Где скачать модуль Wedal Joomla Callback 2?

О модуле

Wedal Joomla Callback 2 – модуль для Joomla 4+, который позволяет добавлять на сайт встроенные и всплывающие формы обратной связи в любых количествах.

Модуль работает полностью по AJAX, без перезагрузки страницы при вызове и отправке.

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

Новые возможности Wedal Joomla Callback 2

Теперь про самое интересное. Что появилось в новой версии модуля.

Поддержка Joomla 4+ и отказ от поддержки Joomla 3

Код модуля переписан практически полностью. Теперь он выполнен по канонам Joomla 4. Версию Joomla 3 модуль, к сожалению, не поддерживает и поддерживать не будет.

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

Joomla 3 будет поддерживать старая версия модуля Wedal Joomla Callback 1.x. Вы можете скачать ее здесь:

Скачать Wedal Joomla Callback 1.x для Joomla 3

Поскольку код модуля полностью переписан, возможны проблемы с обновлением с версии 1.x на версию 2. Если вы используете старую версию модуля на Joomla 4+ и хотите обновить ее, то лучше пойти по пути удаления старого модуля и установки нового.

С неприятной частью закончили) Теперь о хорошем…

Добавлена поддержка неограниченного количества дополнительных полей разных типов, через Joomla XML Fields

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

Вы можете добавить:

  • Поля любых типов
  • В любом количестве
  • Разные в каждом модуле

Теперь ваш модуль может выглядеть, например, вот так:

Внешний вид формы

Добавление полей происходит с помощью XML-формата полей Joomla. В админке это выглядит примерно вот так:

Добавление дополнительных полей в форму

Пусть вас не пугает XML-формат полей. В документации Joomla есть подробное описание по каждому типу поля. Ссылка на эту документацию доступна прямо на вкладке дополнительных полей в модуле.

Таким образом, в Wedal Joomla Callback вы можете конструировать практически любые формы.

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

Добавлена возможность переопределения базовых полей

В продолжение темы полей. Код работы с полями переписан на полную поддержку возможностей Joomla. Отсюда появляется возможность не только добавлять новые поля, но и переопределять обязательные.

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

Теперь вы можете переопределить базовые поля. Это делается путем добавления в дополнительные поля новых, с именами базовых. Например, чтобы переопределить поле «Имя», которое имеет название «name», вам нужно добавить в дополнительные поля такую запись:

Переопределение поля Имя

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

Добавлена поддержка вложений

Желанная многими функция теперь доступна из коробки. В Wedal Joomla Callback 2 появилась возможность прикреплять вложения в форму, например, файл с реквизитами, фото и др. В админке эта опция включается на главной вкладке:

Поддержка вложений

Вы можете:

  • Выбирать между загрузкой одиночного или множественного вложения
  • Ограничивать допустимые форматы файлов вложения
  • Указывать свое название поля вложения

Все выбранные пользователем файлы будет прикреплены к письму с данными формы, отправленному вам на Email.

Вот так это выглядит на сайте:

Поддержка вложений

Добавлена поддержка целей Яндекс.Метрики

Еще одна желаемая многими функция. Теперь в настройках модуля вы можете указывать цели Я.Метрики на вызов всплывающей формы звонка (клик на кнопку «Заказать звонок») и отправку формы.

Вот как это выглядит:

Поддержка целей Яндекс.Метрики

Подсказка по работе с целями представлена прямо на вкладке.

Внимание: Модуль не добавляет на сайт код Яндекс.Метрики. Убедитесь, что добавили код Яндекс.Метрики на сайт самостоятельно. Счетчики целей не будут работать без базового кода Метрики.

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

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

Код кнопки вызова формы максимально упрощен для использования в любом месте страницы

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

Очень часто я получал вопрос: как встроить кнопку вызова модуля в то или иное место.

Проблема состояла в том, что нельзя было вот так просто создать в билдере кнопку, указать для нее ссылку и чтобы по ней вызывался нужный модуль. Почему? Модуль имел такой код для вызова кнопки:

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

DIV-обертка была обязательна, т.к. в ней передавался ID модуля, необходимый для получения корректных параметров из настройки именно нужно экземпляра. И во эта DIV-обертка создавала проблемы у пользователей билдеров.

В текущей версии я учел этот момент. Теперь код вызова всплывающего окна выглядит так:

<a data-id="109" class="wjcallback-link" href="#" data-ym-aimid="popuptest">Заказать звонок</a>

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

Обязательных параметров всего два:

  • data-id – должен содержать ID экземпляра модуля. Без него мы не сможем понять, какой именно модуль нужно вызывать
  • class = “wjcallback-link – класс, который позволяет скрипту понять, что при клике по этой кнопке/ссылке нужно вызывать модуль.
  • Дополнительно вы можете вручную указать цель для передачи в Яндекс-метрику, используя атрибут data-ym-aimid

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

Добавлены дополнительные возможности оформления модуля

Чтобы поменьше лазить в код и использовать переопределения макетов, в настройки модуля добавлена вкладка «Оформление» где есть возможность задать:

  • CSS-классы кнопки заказа звонка
  • CSS-классы кнопки отправки формы
  • CSS-классы формы
  • CSS-классы для обертки каждого поля
  • CSS-классы для обертки формы

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

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

Вот как это выглядит в админке:

Дополнительные возможности оформления модуля

Также хочу отметить вот что. В зависимости от используемого шаблона форма может выглядеть теперь по-разному. Если шаблон переопределяет или оформляет базовые формы Joomla, то наш модуль унаследует это оформление и автоматически примет стиль других форм сайта.

jQuery больше не требуется

JS-скрипты модуля полностью переписаны на чистый Javascript. Теперь подключение jQuery не требуется. Модуль больше не подключает эту библиотеку.

Добавлены JS-триггеры для разных событий модуля

В JS-код модуля добавлены триггеры (нестандартные события), которые позволяют вам добавить свои кусочки кода в то или иное место. Это аналогично плагинам в Joomla, но только работает именно для JS-кода модуля.

На данный момент доступны следующие события:

  • wjcOnFormPopupAfterLoad – срабатывает сразу после появления всплывающей формы. Содержит объект загруженной формы. Может быть использовано для определения того, какая форма вызвана, какие содержит поля и т.п.
  • wjcOnFormBeforeClose – срабатывает перед закрытием всплывающего окна форма. Содержит объект загруженной формы. Может быть полезно для удержания посетителя путем добавления подтверждения закрытия всплывающего окна (пример кода будет ниже)
  • wjcOnFormBeforeSubmit – срабатывает перед оправкой формы. Содержит объект загруженной формы и заполненных полей. Может использоваться для дополнительной валидации формы и т.п.
  • wjcOnFormAfterSubmit – срабатывает сразу после отправки формы. Содержит объект отправленной формы и заполненных полей. Может использоваться для интеграции с CRM и другими сторонними сервисами.

Ниже примеры использования JS-событий модуля в вашем JS-коде:

    //Получить все поля формы после загрузки
    document.addEventListener('wjcOnFormPopupAfterLoad', (form) => {
        console.log(form.detail.querySelectorAll('input'));
    });

    //Получить информацию о форме после ее закрытия и вывести дополнительный диалог о закрытии формы
    document.addEventListener('wjcOnFormBeforeClose', (form) => {
        console.log(form.detail);

        if (!confirm("Вы уверены, что хотите закрыть форму?")) {
          event.preventDefault();
        }
    });

    //Получить данные полей формы перед отправкой
    document.addEventListener('wjcOnFormBeforeSubmit', (form) => {
        let formdata = new FormData(form.detail.closest('form'));
        console.log(formdata);
    });

    //Получить данные полей формы после отправки и возврата успешного ответа
    document.addEventListener('wjcOnFormAfterSubmit', (form) => {
        let formdata = new FormData(form.detail.closest('form'));
        console.log(formdata);
    });
});

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

Возможность указать несколько получателей письма

Еще одна небольшая функция, которой не хватало. Теперь в настройках модуля вы можете указать нескольких получателей писем с данными отправленной формы – просто укажите их в поле «Дополнительные получатели»:

Возможность указать несколько получателей письма

Все поля теперь используют базовые макеты Joomla, наследуют стили шаблона, могут быть переопределены в шаблон

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

Все поля модуля используют макеты полей Joomla из папки:

/layouts/joomla/form

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

Файлы стилей и скриптов модуля теперь доступны для переопределения

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

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

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

Добавлена возможность получения сообщения по СМС (v2.1.0+)

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

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

Добавлена возможность получения сообщения в Telegram (v2.1.0+)

Начиная с версии модуля 2.1.0 добавлена интеграция отправки сообщений в Telegram.

Это бесплатно и очень удобно, но нужно потратить некоторое время на настройку. Вам нужно будет создать группу, создать чат-бота, получить нужные данные для настроек модуля. Подробной инструкции на сайте пока нет, но их очень много в Сети. Описание может сначала показаться сложным, но в реальности все настраивается за пять минут.

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

Мелкие доработки и исправления

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

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

Я всегда рад конструктивной критике: предложениям и замечаниям по работе модуля. Присылайте их мне на почту, пишите в комментариях. Тем самым вы поможете сделать модуль еще лучше.

Где скачать модуль Wedal Joomla Callback 2?

Новая версия модуля доступна в том же репозитории на Github. Только теперь она будет занимать ветку master. Старая же версия модуля 1.x переместится в ветку Joomla3.

В разделе релизов вы сможете найти версии для обеих веток:

  • версии 1.х – для Joomla 3
  • версии 2.х – для Joomla 4+

Для понимания:

  • версии Wedal Joomla Callback 1.х будут работать и на Joomla 3 и на Joomla 4, но на 4 предпочтительнее использовать новый модуль
  • версии Wedal Joomla Callback 2.х будут работать только на Joomla 4+

Ниже даю ссылки на скачивание последний версий обеих веток:

Скачать Wedal Joomla Callback 2 для Joomla 4+

Скачать Wedal Joomla Callback 1.x для Joomla 3

Об авторе
Wedal
(Виталий). Веб-разработчик полного цикла (Full Stack). Создатель и автор сайта Wedal.ru.
Основной профиль – создание сайтов и расширений на CMS Joomla.
Добавить комментарий

Комментарии  
0
Спасибо за новую версию. Красивая, кастомизируемая, особенно понравилось прикрепеление файлов, это вообще супер функция :) но есть нюансы.
1. Встроенная форма не работает. Копка Отправка срабатывает, никаких сообщений об удачной отправки не появляется. письмо на почту не приходит.
2. На Всплывающая форма глючит маска телефона.
Прежняя версия 1.2 работает прекрасно.
Виталий, пожалуйста исправляй.
0
Юрий, спасибо за обратную связь!

Проверил по пунктам:

1) Да, нашел баг, при котором форма не отправлялась при активной опции вложений с единственным файлом. Выпустил версию 2.0.1 с исправлением. Обновитесь до нее, или просто разрешите в настройках модуля множественные вложения.

2) В новой версии модуля скрипт маски используется другой. Старый скрипт использовал jQuery, а потому пришлось от него отказаться. Что именно не работает в маске? У меня все работает хорошо. Единственное отличие - в настройках модуля нужно задавать маску для телефона немного в другом формате. К примеру, вот так для российских номеров: +7 (###) ###-##-##
0
К сожалению, не работает.
Установил новую версию модуля 2.0.1 на новую чистую Joomla-4.2.6.
Встроенная форма не работает:
1. Маска "телефон" не показывается.
2. Письмо отправляется, но на почту не приходит. Всплывающего собщения об отправке тоже нет.
Посмотрел код страницы - во встроенной форме не загружаются скрипты wjcallback.css, wjcallback.js, maska.js
1
Юрий, да, обнаружен баг, из-за которого скрипты и стили не загружались при отображении на странице только встроенной формы. Исправлен в версии 2.0.2. Спасибо за репорт!
1
Обе формы работают. Загружается, отправляется. Спасибо, Виталий, респект! :)
0
При отправке формы(встроенная или всплывающая) никакого сообщения об отправке формы не появляется. При всплывающем варианте маска телефона срабатывает, при встроенном варианте нет, вводи сколько хочешь цифр. Всплывающая данные отправляет, встроенная нет. не понимаю как можно было такой продукт, не протестировав выпускать в паблик?
1
kosh2323, к сожалению, чем сложнее расширение, тем сложнее тестировать его в одиночку. Понимаю негодование. До выпуска в паблик я проверял все настройки и варианты. Но, получается, не все. Проверить все невозможно сразу, к сожалению и первые версии крупных обновлений могут содержать ошибки и проблемы, о которых я узнаю и исправляю как раз благодаря таким комментариям, как ваш.

Теперь о проблеме:
В версии 2.0.1 не загружались скрипты и стили во встроенную форму (вы спросите: как такое можно было пропустить? А вот оказывается можно. Для тестов у меня всегда опубликовано 2 экземпляра модуля: встроенный и всплывающий. Скрипты работали и для встроенного, т.к. их цеплял всплывающий). Это исправлено в версии 2.0.2. Обновитесь, пожалуйста. Проверьте, работает ли форма теперь. Маска также зависит от скриптов, а потому должна теперь тоже работать.

Спасибо за репорт, пусть и в форме негодования). Если обнаружите еще что-то - пишите. Вместе мы сделаем модуль только лучше.
1
Прошу простить, если вызвал раздражение, переустановил новую версию(скачал на зеленой кнопке, хотя в самом модуле, в админке нет информации, какая эта версия). По-прежнему всплывающий вариант - модальное окно не закрывается, так и висит, сообщений, что форма отправлена тоже нет, с встроенным вариантом тоже самое, сами данные формы отправляются в обоих вариантах. Потестирую, если надо, пишите прям на почту, без проблем.
0
kosh2323, ничего страшного. Все нормально. Вы точно обновились до версии 2.0.2? Посмотреть версию можно в разделе: Расширения -> Управление.
По описанию похоже, что у вас возникает какая-то ошибка JS, которая блокирует форму. Если есть возможность посмотреть в живую, пришлите мне ссылку на страницу с формой ответом на этот комментарий или в мессенджер. Посмотрю и разберемся, в чем проблема.
0
Приветствую, спасибо за ответ и желание разобраться, ссылку прислать не могу, делаю на локальном, перекачал, переустановил, версия 2.0.2 точно, и ничего не изменилось, проблемы те же, версия Joomla 4.2.6, Шаблон умолчальный Кассиопея, OpenServer PHP 8.1. После загрузки скриптов модуля грузятся только ещё 2, см. скрин.
_https://dropmefiles.com/vRheD
0
kosh2323, нашел и исправил ошибку, которая, вероятно, была у вас. В запрос на отправку формы не передавался Itemid страницы, таким образом, в случае, когда модуль был привязан не ко всем страницам, а только к некоторым пунктам меню, возвращалась ошибка.

Обновите модуль до версии 2.0.3. Проверьте повторно (также в новом приватном окне или с очисткой кэша браузера).

Большая благодарность за репорт! Это был серьезный баг, который я, к сожалению, не увидел, т.к. тестировал модуль с привязкой ко всем страницам. Теперь он исправлен.
0
Виталий, спасибо вам за ваши разработки! Модуль супер!
Подскажите, каким образом подключается всплывающая форма с собственной кнопкой?
Тег ссылки с параметром data-id и классом "wjcallback-link" разместил нужном месте модуля (переопределение стандартного mod_categoty). Если модуль WJC опубликован без указания позиции, то кнопка не работает. Если публикую его в любой доступной позиции, то работает, но при этом отображается и собственная кнопка.
Если добавляю кастомный шаблон для WJC (в переопределениях делаю копию файлов default и default_popupform c именами custom и custom_popupform), удалив при этом в файле custom код вывода кнопки и выбираю для модуля этот шаблон (custom), то тоже не работает.
Решил проблему удалением кода кнопки в файле default и назначением для модуля макета "по умолчанию", но что-то мне подсказывает что это не правильно))
И ещё. Почему-то не работает параметр "показывать блок согласия с допусловиями". При включении, в форме не отображается.
0
Сергей,

1) Насчет ручного размещения кнопки.

Чтобы это работало, модуль должен быть размещен в одной из существующих позиций сайта и опубликован. Без этого не подгрузится скрипт, который будет обрабатывать вашу кнопку.

Далее - да, была проблема, что нельзя было отключить базовую кнопку в модуле. Это было неудобно. Исправил это в версии 2.0.3. Теперь есть возможность отключать базовое отображение кнопки для вызова всплывающего окна через опцию: Скрывать кнопку вызова формы?. После обновления вы найдете ее в главном окне настроек.

В остальном - вставленная вручную кнопка должна работать. Проверил на тестовом сайте - у меня работает прекрасно.

2) Насчет блока согласия с доп. условиями.
Это был баг. Блок показывался только при наличии дополнительных полей. Он исправлен в версии 2.0.3. Благодарю за информацию о проблеме!
0
Обновился до версии 2.0.3 после отправки формы, модальное окно выводится, по нажатии закрывается, но блок согласия, если указывать какой-то материал, то выводится совсем не тот, указываю разные материалы, выводится один и тот же и совсем не тот. Ссылка формируется вот такая /index.php?view=article&id=3:kontakty&catid=8 учитывается ли то, что если ссылка будет в формате ЧПУ? Таких ссылок нет на сайте, а все в виде test.ru/kontakty.html
0
kosh2323, проверил. Ссылка формировалась некорректно. Исправлено в версии 2.0.4, обновитесь. Еще раз спасибо за информацию!

Что касается ЧПУ - ссылка будет формироваться в таком виде, когда выбранная статья привязана к пункту меню. Т.е. создаете статью на условия, привязываете к пункту меню, после выбираете в модуле. Ссылка будет SEF.
0
Да, теперь работает, супер, и всё же есть пожелания:

1. В настройках есть пункт "Показывать маску ввода номера", но по факту она ведь не показывается, просто когда начинаешь вводить номер, тогда только не удастся ввести больше цифр. По факту пользователь не видит, а что если он решит вводить телефон отличный от мобильного - 111-11?
2. Если вообще отключить маску вводу, то проверки вообще не происходит, можно вводить любой текст и отправлять, отсутствует проверка на ввод цифр, хорошо бы ввести, хотя бы и с регулярными выражениями, например разрешено ()-1-9+, максимально - столько-то символов. Ведь, если включено поле ввода E-mail, то проверка на ввод @ есть, поле проверяется на корректность ввода.
3. Вопрос капчи, скорее всего об этом думали....не будут ли спамщики использовать эту форму...?
0
kosh2323, по пунктам:

1) Вопрос с маской неоднозначен. Не так просто подобрать хороший скрипт маски, особенно после отказа от jQuery. Маски на чистом JS довольно большие и часто включают много лишнего. Я перебрал много скриптов и в итоге остановился на том, который вы видите сейчас. У него небольшой размер и функционал, схожий с jQuery masked input, который был в старой версии. Использование именно этой маски в модуле - не догма. Вы можете отключить ее в настройках и подключить любую другую. Или же можно вообще переопределить файл маски в шаблон и заменить его содержимое.

2) У поля телефона тип tel. В спецификации HTML5 для этого типа поля есть атрибут pattern, в котором вы можете задать регулярное выражение. Я не стал добавлять его умышленно, дабы обеспечить бОльшую гибкость, но вы всегда можете переопределить поле телефона через дополнительные поля и добавить pattern с той регуляркой, которая требуется.

3) Капча не нужна. По опыту прошлой версии модуля - спам не проходит. Форма отправляется средствами AJAX, проверяет токен сессии. Большинству ботов она не по зубам и без капчи, по крайней мере на сегодня.
0
1. Хорошо бы вывести маску в плейсхолдер, чтобы пользователь видел в каком формате он должен вводить, в настройках то можно вывести пустое поле для ввода плейсхолдера, данные из него использовать для проверки, так ведь можно?

2. Тоже самое, замечательно было бы в настройках вывести поле "pattern" для задания разрешенных символов и их количества.

Может конечно это неудобно и нет желания заморачиваться, но сейчас рассуждаю как пользователь. Понятно, что можно там переопределить, дописать, допилить. Но хочется, чтобы Ваш продукт был максимально удобным. Спасибо.
1
kosh2323,

1) Согласен. Добавил в список доработок.

2) Это вряд ли имеет смысл, т.к. маска как раз и выполняет задачи pattern. Но, как верно указали в комментариях ниже, паттерн маски должен взаимодействовать с валидатором J, чтобы не было ситуаций, когда телефон по маске не заполнен полностью, а валидация поля проходит и форма отправляется.
0
Большое спасибо! Обновил.
Ещё наблюдение/пожелание. Мне кажется было бы полезно добавить возможность указания регулярных выражений для полей (хотя бы для базовых Имя и Комментарий ). Атрибут pattern в дополнительных полях видимо не обрабатывается, по крайней мере у меня не получилось его использовать.
0
Сергей, для собственной обработки полей вы можете использовать JS-триггеры, добавленные в новой версии модуля. Для данной задачи подойдет wjcOnFormBeforeSubmit. Он позволяет отменять отправку формы, если возвращает false (пример использования есть в этой статье). Но это всё на стороне клиента. На стороне сервера, по идее, должны отрабатывать фильтры полей Joomla. Если нет, то можно попробовать сделать плагин, т.к. для валидации полей на стороне сервера средствами Joomla наверняка должны быть системные триггеры.
1
Маска телефона не выводится и не работает.
Версия последняя. Ж4.
0
Сергей, на тестовом сайте сейчас проверил, на базовом шаблоне Cassiopea - все работает. Возможно у вас какой-то конфликт скриптов, или же в настройках модуля просто не включили маску. Если есть живой сайт - присылайте ссылку в ответном комментарии - я посмотрю.
0
Чистая 4.2.6 на локалке + модуль. В поле тел до ввода не выводится код страны из маски. Он появляется только при вводе первой цыфры. Это неправильно. В маске вида +11 1## ### ## ## форма отправляется даже если ввести не все цыфры.
0
Сергей, спасибо за ценные замечания. Всё по делу.

Валидация поля телефона, которое заполнено не полностью, проходит, т.к. валидация используется стандартная от Joomla, а той достаточно, чтобы просто были введены данные. Здесь нужно будет довести до ума взаимодействие маски с валидацией J. Я добавил эту задачу в план доработок. Это может быть не так быстро, но со временем сделаю. А пока вы можете добавить такую проверку, используя JS-триггер wjcOnFormBeforeSubmit.
1
Какой отличный модуль и как не хватает современной анимированной кнопки.
Вот все что нужно есть в нем, кроме вот этой кнопочки)
Может сделаете?
0
Ветал, что такое "анимированная кнопка"?
0
вот демо:
-
1
Ветал, понял. Такая кнопка - это исключительно вопрос стилей. Вы можете скопировать CSS-стили с любого сайта, даже с этого демо, добавить в свой шаблон и указать класс кнопки, вот и всё. Отдельно заносить это в настройки модуля нет никакого смысла.
1
Так и сделал, Спасибо!
0
Если включена маска, то телефон ограничивается маской, но в тоже врем позволяет отправить форму с меньшим количество символов...

Как это исправить?
2
limonchik, уже писал выше. Пока только или через переопределения JS модуля или через JS-триггер wjcOnFormBeforeSubmit. Второе предпочтительнее. Проблему добавил в список задач. Постараюсь исправить в ближайшем обновлении.
2
Виталий Здравствуйте. В новой версии для joomla 4 если в ссылке вызова формы присутствует любой html тег например span + текст, то при попытке нажать на нее форма вызывается без полей. Один заголовок и кнопка отправить. Однако если попытаться нажать в пустое место этой ссылки все нормально инициализируется.
1
Guest, это баг в JS модуля, который пока еще не исправлен. Клик ловит самый внутренний элемент кнопки, если в нем содержится html-код и пытается найти в атрибуте data-id ID модуля, но там его нет. Если у вас простой html внутри, например, картинка, добавьте к ней атрибут data-id с id модуля и все будет работать. В ближайшем обновлении я исправлю эту проблему.
0
Добрый вечер Виталий, подскажите пожалуйста можно ли как-то получить html ссылку на данный модуль обратного звонка при нажатии, чтобы появилась форма.
Хочу прописать эту ссылку в модуле "Floating Buttons" от разработчика: TemplatePlazza, но поле под ссылку там только стандартный Enter url.
1
Дмитрий, если вы можете ввести только стандартный URL, то, к сожалению, никак. Для работы модуля вам нужно также добавить к ссылке data-атрибут с ID экземпляра вызываемого модуля. Иначе скрипт не поймет экземпляр с какими настройками вызывать, ведь копий модуля в админке может быть несколько.

Вы можете попробовать задать URL, закончив его кавычкой, затем добавить атрибут с ID модуля и не закрыть кавычку после него. Если вдруг данные в этом поле не фильтруются (что, конечно, будет большим камнем в огород разработчика), то все сохранится. Но маловероятно что так.
0
Хорошо, спасибо за ответ.
0
Добрый день, подскажите, пожалуйста, а как изменить название кнопки Send на "Заказать просчет"?
0
На сегодня такой настройки нет. Вы уже не первый, кто про это спрашивает, а потому добавлю ее в ближайшем обновлении. Сейчас вы можете изменить текст кнопки одним из способов:

1) Если форма одна или текст должен быть везде одинаковым, можете просто переопределить языковую константу кнопки через админку.

2) Если форм несколько и тексты кнопки в них должны отличаться, то нужно создать альтернативный макет для каждой такой формы и в нем прописать текст кнопки, а затем выбрать созданный макет в настройках модуля.
0
День добрый, установил модуль на сайт, заявки поступают на почту, а вот смс и телеграмм нет, что делать?
0
Для заявок через СМС и в Телеграмм необходимы доп.настройки/аккаунты. Описание есть в настройках модуля.
0
Здравствуйте. С вашей помощь сделал открытие файла после отправки формы с помощью дополнительного кода. Спасибо большое.
КОД:


document.addEventListener('DOMContentLoaded', () => {
document.addEventListener('wjcOnFormAfterSubmit', (form) => {
let formdata = new FormData(form.detail.closest('form'));
console.log(formdata);
window.open('ССЫЛКА', '_blank');
});
});


Можно ещё маленький вопрос? Где в этом коде прописать ID формы, а то файл открывается у всех форм?
Спасибо.
0
Антон, код триггера будет выполняться в любой форме. Чтобы выполнять его в какой-то конкретной, внутри вы должны просто добавить проверку IF и сравнить ID модуля, который передастся в form с тем, который вам нужен (можно посмотреть в админке), а уже внутри условия выполнять код открытия ссылки.
0
Супер! Уважение и поклон Вам!
Подскажите, а можно сделать кнопку вызова формы справа или слева прилипающую (плавающую)?
0
Оформление кнопки вызова модуля - это исключительно вопрос стилей CSS. Вы можете добавить в CSS-файл вашего шаблона стили для любого цвета и положения кнопки на странице. Также можно скрыть кнопку по умолчанию и добавить свою путем вставки html-кода. Пример есть в этой статье.
0
Доброго, как работает на j5?
0
Борис, сильно не тестировал, но по отзывам людей использующих, все хорошо работает.
0
Добрый день, помогите если не сложно, опубликовал модуль на локальном сервере при нажатии на кнопку выдает ошибку "Not Found
The requested URL was not found on this server." это при всплывающей форме, при встроенной все отображается и работает без проблем
Joomla 4.4.4
Заранее благодарю за ответ
0
Евгений, посмотрите в отладчике браузера (F12) AJAX-запрос, который происходит при клике на кнопку вызова всплывающей формы. Возможно там проблема с доменом из-за локального адреса.