[ClickToCall] Виджет звонка
Представляю Вашему вниманию компонент, который выводит анимационную кнопку «позвонить» для пользователей мобильных устройств.
Для определения мобильных устройств используется библиотека mobile-detect.js
Особенности
Настройки компонента:

Параметры сниппета ClickToCall
&force — Принудительный вызов виджета, по умолчанию 0.
&phone — Телефон для виджета, если параметр не указан, то берется значение из системных настроек
&tpl — Чанк с виджетом, по умолчанию ClickToCall.tpl
&useCustomCss — Полностью отключает подключение CSS компонентом.
&useCustomJs — Полностью отключает подключение JS компонентом. (кроме mobile-detect.js, которая отключается в настройках).
Если вы отключили использование CSS и JS, то Вам необходимо самому написать скрипт отображения кнопки и задать свои собственные стили.
Системные настройки:
clicktocall_mobiledetect — Включить использование библиотеки mobile-detect.js. Если Вы уже используете mobile-detect на своём сайте, отключите данную опцию. По умолчанию — Да.
clicktocall_phone — Телефон для виджета по умолчанию
Сниппет должен вызываться не кэшируемым!
Примеры использования:
Для принудительного вызова сниппета используется параметр &force
Если Вам необходимо на разных страницах указывать разный телефон, используйте следующий вызов:

Компонент полностью бесплатный и распространяется под лицензией GNU GPLv3.
Компонет добавлен в MODSTORE, код выложен на GitHub.
Большое спасибо Василию Наумкину и Илье Уткину за прекрасную кодовую базу выложенную на github, отдельно спасибо Михаилу Воеводскому за великолепное обучение написанию компонетов различной сложности, а также Никите Денисову за помощь с ExtJS.
UPD:
Компонент доступен для скачивания в репозитории MODSTORE
Для определения мобильных устройств используется библиотека mobile-detect.js
Особенности
- Выводит виджет только для пользоваталей мобильных устройств (используется mobile-detect.js).
- Гибкая настройка времени отображения виджета по каждому дню.
- Можно выключить используемую библиотеку mobile-detect.js в настройках, если Вы уже её используете на сайте.
- Имеется возможность использовать собственные JS/CSS файлы.
Настройки компонента:

Параметры сниппета ClickToCall
&force — Принудительный вызов виджета, по умолчанию 0.
&phone — Телефон для виджета, если параметр не указан, то берется значение из системных настроек
&tpl — Чанк с виджетом, по умолчанию ClickToCall.tpl
&useCustomCss — Полностью отключает подключение CSS компонентом.
&useCustomJs — Полностью отключает подключение JS компонентом. (кроме mobile-detect.js, которая отключается в настройках).
Если вы отключили использование CSS и JS, то Вам необходимо самому написать скрипт отображения кнопки и задать свои собственные стили.
Системные настройки:
clicktocall_mobiledetect — Включить использование библиотеки mobile-detect.js. Если Вы уже используете mobile-detect на своём сайте, отключите данную опцию. По умолчанию — Да.
clicktocall_phone — Телефон для виджета по умолчанию
Сниппет должен вызываться не кэшируемым!
Примеры использования:
Для принудительного вызова сниппета используется параметр &force
[[!ClickToCall? &force=`1`]]В таком случае виджет будет отображаться всегда, игнорируя временные рамки указанные в настройках.Если Вам необходимо на разных страницах указывать разный телефон, используйте следующий вызов:
[[!ClickToCall? &phone=`+79991234567`]]Визуальное отображение виджета
Компонент полностью бесплатный и распространяется под лицензией GNU GPLv3.
Компонет добавлен в MODSTORE, код выложен на GitHub.
Большое спасибо Василию Наумкину и Илье Уткину за прекрасную кодовую базу выложенную на github, отдельно спасибо Михаилу Воеводскому за великолепное обучение написанию компонетов различной сложности, а также Никите Денисову за помощь с ExtJS.
UPD:
Компонент доступен для скачивания в репозитории MODSTORE
Комментарии: 53
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
Пожелания к доработке принимаете?
Было бы полезно статистику иметь, например: с какой страницы звонили и тп
так чтоб в метрику можно было загнать как цель…
Статистика на сайте в виде виджета думаю многим бы пришлась по душе :)
С гитхаба нужно скачать архив, залить на сервер (я закидываю в корневую папку), распаковать и запустить файл build.transport.php
Скрипт создает транспортный пакет и автоматически устанавливает в систему. Если установка не прошла, в менеджере запускаем функцию «Искать пакеты локально» и устанавливаем — профит.
modstore.pro/packages/other/clicktocall
Добавил на сайт :)
А в целом гут)
А смещать кнопку в лево не эстетично, а правый угол уже может быть занят другими онлайн консультантами или ещё чем нибудь.
Но в любом случае, можно передать сниппету параметр &useCustomJs=`1`, отключить использование mobile-detect.js в настройках, подключить новый js файл, скопировав функционал из файла clicktocall.js, оставив только:
и вуаля, кнопочка уже не только на смартфонах.
В принципе если кому-то понадобится такой функционал из коробки, почему бы и не реализовать, реализую?!
За отзыв — спасибо!
[[!ClickToCall? &phone=`[[$tel]]`]]
У меня телефон записан в отдельный чанк…
Хотя, правильнее было бы записать его в системную настройку и вызывать так:
P.S. Для оформления кода у нас на сайте нужно использовать тег code.
1) Было бы ОЧЕНЬ здорово, если бы, когда время не рабочее, то иконка все равно отображалась бы, но при нажатии происходил не вызов, в всплывало модальное окошко с формой для обратной связи, к примеру.
2) Можно добавить возможность, чтобы звонок был не на телефон, а в скайп, к примеру.
Можно создать свой чанк (например с именем — ClickToCall.skype.tpl, со следующим содержимым:
И вызвать сниппет так:
Где skypeusername — имя логина в скайпе куда будем звонить.
Не тестировал, но должно работать.
Кстати, а помимо дней недели и времени, сниппет учитывает праздники?
А теперь по делу, мысль хорошая — внедрить календарь и добавить возможность для отметки дней, по которым виджет не должен будет отображаться.
Записал, постараюсь реализовать.
Дайте плз код чтобы поставить время 30 секунд, через которое посетитель увидит кнопку?
ps для будущих новичков подскажу — настройки цвета и место-положения кнопки в ищите в файле: assets/components/clicktocall/css/clicktocall.css
Резюмирую, ошибок нет?
1.Установили пакет, вызвали снипет [[!ClickToCall]]
2. Вписали номер в параметры снипета и все ок.
ps буду ждать пожалуйста наворот — чтоб в ночное время вместо вызова по телефону, была форма обратной связи, и клиент оставил контакты
Подскажите, пожалуйста, как сделать, чтобы сss вызвать из своей папки, а не автоматически: Т.е. не не так: а так:
background-image: url("../img/clicktocall/mobile.png");
почему то изображения трубки нет. Может путь не верный?
Посмотрите ошибки в консоли браузера, можете имитировать юзер агента через плагин Random Agent Spoofer
А как components/clicktocall/js/plugins/mobile-detect.min.js подключить из своей папки?
Роману спасибо за работу!
Такой вопрос, на MODX Revolution 2.6.4-pl — работает?