Контакты

Поиск по сайту

Категория: Chronoforms5 Опубликовано: 22 Март 2015

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

У Cronoforms5 (для Joomla 2.5–3.0) стало еще больше полезных возможностей. Появились: несколько вариантов настройки антиспама; пользовательская настройка обработчиков событий некоторых элементов форм стала более удобной; возможность добавления стилей в меню настройки почти каждого элемента.

Но есть и маленький минус — не помешала бы хорошая русификация. Для версии V5 RC6 русификаторы уже есть. А для версии 5.0.10 пока не встречала. Если кому-то совсем трудно без русификатора, вот мой. Установка через менеджер Chronoforms5 (кнопка «Install Language»).

Начнем разбираться с версией V5 RC6.

  1. Установили компонент, плагин и модуль Chronoforms5
    (Chronoforms_V5.0_Component_RC6.zip, Chronoforms_V5.0_Plugin_RC1.zip, Chronoforms_V5_Module_RC1.1.zip).
  2. Включаем «Chronoforms5» в менеджере плагинов.
    Теперь наши формы будут отображаться на сайте, в том числе выводимые  на страницу  с помощью кода вставки «{chronoforms5}my_form_name{/chronoforms5}».
  3. Убираем проверку лицензии и копирайт.
    Если зайти в админке Joomla в «Компоненты» — «Chronoforms5». Видим вот такое сообщение сверху:
    Собственно, от него нет никакого вреда — просто раздражает.
    Уберем проверку лицензии сразу везде.
    Для этого нужно сделать исправления в двух файлах:
    • a) www\components\com_chronoforms5\chronoforms\chronoforms.php. У меня это 24 строка:
      function _validated($params){
                        if((bool)$params->get('validated', 0) === true){
                                   return true;
                        }
                        return false;
            }
      
      Меняем код на такой:
      function _validated($params) {
                        return true;
            }
      
    • б) www\administrator\components\com_chronoforms5\chronoforms\chronoforms.php. У меня это 636 строка. Функция та же самая.
    • Теперь и в админке, и на странице сайта все красиво.
  4. Русифицируем всплывающие подсказки.
    В адмике зашли в «Компоненты» — «Chronoforms5». В менюшке сверху жмем «Demo». У нас появились аж 10 заботливо подготовленных разработчиками форм. Публикуем на сайте любую из них. Жмем кнопку формы «submit». Видим красивый тултип, но, к сожалению, не по-русски. Если с русификацией компонента в админке мы можем и потерпеть, то заказчик нерусские всплывающие подсказки навряд ли потерпит. Чтобы русифицировать туллтипы, нам нужен файл www\libraries\cegcore\assets\gplugins\gvalidation\ gvalidation.js. Там, начиная со строки 15 прописаны значения всех наших дефолтных туллтипов. Переводим их, сохраняем, проверяем. Теперь наши туллтипы на русском языке.
  5. Настраиваем плавный скроллинг до всплывающей подсказки.
    Скроллим страницу сайта как можно ниже, так, чтобы только была возможность нажать кнопку «submit». Жмем на нее и видим следующее:
    Так что мы увидели? — Ничего. Страницу дернуло вверх, курсор на самом первом пустом поле (оно обязательное). Нашей, такой красивой всплывающей подсказки нет. Ее мы увидим если еще чуть отскроллим страницу вверх.

    P.S:

    Форма у меня уже была. Только восстановила ее на тестовом сайте. Поэтому, если у вас такой нет, придется поверить мне на слово или, используя демо-формы (менеджер chronoforms5 — кнопка «Demo»), добавить побольше полей.

    Кстати, демо-формы — очень полезная вещь, как для освоения компонента, так и для экономии времени на создании форм с нуля.

    Но тут есть и неприятность:  антивирус Bkav в составе он-лайн сканера VirusTotal после установки этих демок видит в дампе БД сайта WebShell. Т.к. дистрибутивы компонента я качала с сайта разработчика и проверяла их этим же сканером (и вообще всем, чем могла), и этот же Bkav молчал, думаю, что это срабатывание можно считать ложным.

    Проблема решается в этом же файле www\libraries\cegcore\assets\gplugins\gvalidation\gvalidation.js в строке 203, в самом конце функции $.fn.show_gvalidate_error. После выражения «$this.focus();» вставляем строку:
    $('html, body').stop(false,true).animate({ scrollTop: $('.gtooltip').offset().top - 100}, 1100 );

    P.S:

    Значения «100» и «1100» взяты наобум. Вы можете поставить свои.

    В результате это должно выглядеть вот так.
    Сохраняем, проверяем. Теперь, при отправке формы с пустыми полями, страница должна плавно отскроллиться до всплывающей подсказки, при этом, подсказка должна остаться в поле зрения.
  6. Валидация кириллицы в текстовых полях.
    Продолжаю мучить свою форму. А вы можете воспользоваться любой демкой. Заполнила первое обязательное текстовое поле «Имя». Нажала «отправить». Получила следующее:
    Дело в том, что у меня содержимым данного поля должны быть только буквы алфавита («мастер формы» — «редактирование поля» — вкладка «validate»).
    Под алфавитом, естественно, имеется ввиду латиница. Поэтому русский «за просто так» не пройдет.

    Снова открываем www\libraries\cegcore\assets\gplugins\gvalidation\gvalidation.js.

    В самом начале прописана валидация текстовых полей
    Нас интересуют строчки alpha и alphanum. Добавляем туда кириллицу:
    alpha : /^[a-zA-Zа-яА-Я._-]+$/i,
    alphanum : /^[a-zA-Zа-яА-Я0-9 ._-]+$/i,
    
    И теперь русский алфавит наша форма пропускает.

На этом основную настройку Cronoforms5 можно считать законченной.

***

Недавно вышла новая версия Cronoforms5 v.5.0.10. Здесь уже есть русская локализация всплывающих сообщений валидации. Поэтому ничего, из вышеописанного в п.4, здесь делать не нужно. Только проследить, чтобы в создаваемых формах (Мастер формы — последняя вкладка «Validation») была настройка «Dynamic» (динамическое определение языка). Тогда для всплывающих подсказок валидации будет использоваться язык сайта по умолчанию.

А вот тем, кто активно пользуется возможностью настраивать проверку полей формы («Designer» - некое_поле – «edit» - вкладка «validation»), исправить код в файле gvalidation.js  в части валидации  кириллицы для текстовых полей (см. п.6 выше) все-таки придется.

Добавить сообщение

Форма входа

Индекс цитирования Яндекс.Метрика