Обзоры расширений Joomla

 

 

RSForm Pro – гибко настраиваемый компонент форм Joomla с богатыми возможностями интеграции со сторонними расширениями. В предыдущем цикле статей были рассмотрены опции самого компонента и некоторых его плагинов.

В этом цикле уроков будут рассматриваться вопросы решения конкретных задач\проблем, связанных с RSForm Pro. Материалы базируются на информации с официального сайта разработчика (на англ.). В данной статье Вы сможете ознакомиться с полным перечнем ответов на вопросы касательно работы с компонентом форм Joomla RSForm Pro.

В данной инструкции рассмотрена последняя, на момент её написания (19.07.2017), русскоязычная версия RSForm Pro 1.52.14, Joomla 3.7.3. Шаблон фронтальной части сайта – RSBaraka 1.0.3, шаблон административной части сайта – Isis 1.0.0.

Внизу данной статьи, над комментариями, Вы найдёте архив с примерами из этой инструкции, которые можно импортировать на свой сайт при помощи раздела Архивация / Восстановление в компоненте RSForm Pro. Нужно извлечь скачанный Вами ZIP-архив и загружать себе в  RSForm архив в формате «.tar».

Как передать параметр через URL

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

Описанная ниже инструкция подходит для Joomla 2.5-3.х RSForm Pro начиная с версии 1.49.0. Предполагается, что у Вас уже есть форма, созданная при помощи RSForm Pro и она размещена на какой-то странице.

В моём примере это форма, состоящая из одного поля Текстовое поле и Кнопки отправки. Название текстового поля – «tovar» (без кавычек) (рисунок ниже).

Как передать параметр через URL
Как передать параметр через URL

Пример 1. На одной из страниц сайта разместил ссылку вида (это подходит для полей тип: Текстовое поле, Текстовая область, Группа радио кнопок):

http://sajt.com/index.php?option=com_rsform&formId=3&form[tovar]=Видео уроки Joomla

где:

  • «http://sajt.com/» – протокол и домен сайта. Это не обязательно, можно указывать относительную ссылку без протокола и домена, если ссылка расположена и ведёт на один и тот же сайт
  • «index.php?option=com_rsform&formId=3» – в данном случае, у моей формы ID – 3. Его можно посмотреть в RSForm Pro – Управление формами. Столбец ID формы (рисунок ниже).
  • «&form[tovar]=» – название поля, в которое нужно передать параметр. Именно название, а не Подпись.
  • «Видео уроки Joomla» – параметр, который нужно передать в поле.
Узнать ID формы RSForm Pro
Узнать ID формы RSForm Pro

По нажатию на такую ссылку откроется страница с формой и в текстовом поле будет внесён нужный параметр – «Видео уроки Joomla» (рисунок ниже).

Форма с заполненным полем
Форма с заполненным полем

Пример 2. В форме есть поле тип Выпадающий список с названием «tovary», содержащий перечень товаров (рисунок ниже). На вкладке Атрибуты для опции Множество выбрано Да.

Выпадающий список
Выпадающий список

На одной из страниц сайта разместил ссылку вида (это подходит для полей тип: Группа чекбоксов, Выпадающий список):

http://sajt.com/index.php?option=com_rsform&formId=3&form[tovary][]=Видео уроки Joomla&form[tovary][]=Видео инструкция по Joomla 3

Отличием от примера №1 является только то, что были добавлены два параметра – «[]=Видео уроки Joomla&form[tovary][]=Видео инструкция по Joomla 3». По нажатию на такую ссылку откроется страница с формой и в спадающем поле будут выбраны указанные Вами значения – «Видео уроки Joomla» и «Видео инструкция по Joomla 3».

Пример №2 актуален также для поля тип Группа чекбоксов.

Синтаксис URL параметров из первого и второго примера не сработает со скрытыми полями. Но если Вам нужно скрыть поле и передавать в него параметры, то можно использовать следующий код:

style="display:none;"

Его следует добавить в Дополнительно атрибуты на вкладке Атрибуты в настройках того поля, которое нужно скрыть.

Обратите внимание, если добавляемый Вами параметр является первым, и Вы используете ЧПУ (SEF) URL, то Вы должны добавлять его с использованием «?», вместо «&». Например, ссылка из примера №1:

http://sajt.com/formy/kak-peredat-parametr-cherez-url/?form[tovar]=Видео уроки Joomla

где «formy/kak-peredat-parametr-cherez-url» – ЧПУ (SEF) URL-адрес страницы с формой (для неё у меня был создан отдельный пункт меню).

Пример №3. В форме есть поле тип Поле дня рождения с названием «den_rozhdeniya». На одной из страниц сайта размещена ссылка вида:

http://sajt.com/index.php?option=com_rsform&formId=3&form[den_rozhdeniya][d]=19&form[den_rozhdeniya][m]=07&form[den_rozhdeniya][y]=1991

Вышеуказанная ссылка установит значение поля дня рождения на 19 июля 1991 года (19.07.1991). Указывать «0» перед днём или месяцем не обязательно.

Не отправляется e-mail

В случае возникновения проблем с отправкой писем можете попробовать приведённые ниже рекомендации. Также стоит ознакомиться с рекомендациями, описанными в данной статье касательно ошибки «Could not instantiate mail function».

Рекомендация №1. Проверьте правильность настроек почты в самой Joomla (Система – Общие настройки – Сервер – Настройка почты). Начиная с версии Joomla 3.5.1 там даже есть специальная кнопка (отправить тестовое сообщение). Если у Вас Joomla старее, чем 3.5.1, то воспользуйтесь сбросом пароля пользователя во фронтальной части сайта и созданием нового пользователя из админки. Это должно привести к отправке письма на почту с сайта.

Если в результате этих действий письмо не пришло, то:

  • Перепроверьте настройки почты (включая логин и пароль).
  • Попробуйте разные способы отправки почты.
  • Проверите папку «Спам» в своём почтовом ящике, возможно, письма приходят туда.
  • Свяжитесь с Вашим хостинг-провайдером и проконсультируйтесь, какие доступны способы отправки.

Это нужно сделать, так как RSForm Pro использует «e-mail функциональность» самой Joomla. Если письма Joomla приходят нормально, тогда переходите к следующей рекомендации.

Рекомендация №2. Проверьте правильность настроек почты в форме RSForm Pro (Свойства – E-mail пользователей и\или E-mail администраторов и\или Дополнительные E-mail) (рисунок ниже).

RSForm Pro - настройка отправки писем
RSForm Pro - настройка отправки писем
  • Проверьте правильность заполнения полей Адрес отправителя и Кому. В них должен быть или правильный e-mail адрес или правильный заполнитель, который возвращает e-mail адрес.
  • В некоторых случаях в полях Адрес отправителя и Кому должны быть разные e-mail адреса.
  • Если Вы используете e-mail адрес со своим доменом, то попробуйте поменять его на Gmail, Mail.ru, Яндекс и т.д. Для эксперимента.
  • Можете попробовать указать точно такие настройки полей Адрес отправителя и От имени, как и в глобальных настройках Joomla (поля E-mail сайта и Отправитель письма соответственно).

Рекомендация №3. Если Вы используете компонент кэширования, например, JotCache или Speed Cache, то исключите из кэширования компонент\модуль RSForm Pro (или страницу с формой). Также стоит временно отключить различные расширения по оптимизации скорости загрузки сайта типа JCH Optimize Pro или WEBO Site SpeedUp.

Рекомендация №4. Проверьте консоль инструментов для разработчиков (в браузере (например, Firebug для Firefox)); проверьте логи сервера; включите Сообщения об ошибках (Для разработчиков (все ошибки PHP)) в глобальных настройках Joomla на вкладке Сервер. Если там есть ошибки, то попытайтесь их исправить или обратитесь в службу технической поддержки Вашего хостинга или к разработчику RSForm Pro.

Ещё об одной причине проблемы с отправкой писем можно прочесть в статье «Инструкция RSForm Pro (часть 3). Формы Joomla 3».

Несколько получателей писем или получатели, основываясь на выборе

Для того, чтобы при отправке данных из формы письма приходили на несколько адресов, нужно указать их через запятую в поле Кому в свойствах формы (рисунок ниже). Например, «email@aleksius.com,aleksius.com@gmail.com,aleksius.com@mail.ru» (без кавычек).

Настройка RSForm Pro
Настройка RSForm Pro

Это актуально для E-mail пользователей, E-mail администраторов и Дополнительные E-mail.

Рассмотрим пример отправки письма определённому получателю на основании того, что было выбрано пользователем в форме. В примере будет рассмотрено поле тип Группа чекбоксов, но это актуально и для других типов полей (например, Выпадающий список).

Есть поле с названием «vybor_e_mail». В качестве элементов указаны такие строки (рисунок ниже):

email@aleksius.com|Вопрос по "Видео инструкция по Joomla 3"
aleksius.com@gmail.com|Вопрос по "Видео инструкция по Joomla"
aleksius.com@mail.ru|Вопрос по "Видео инструкция по Joomla 3.7"
Инструкция RSForm Pro
Инструкция RSForm Pro

На сайте будут отображаться значения типа «Видео инструкция по Joomla 3» (рисунок ниже). А указанные слева e-mail адреса – это те, на которые Вы хотите отправлять сообщения.

Форма на сайте
Форма на сайте

В свойствах формы в разделе E-mail администраторов в поле Кому нужно добавить заполнитель «{vybor_e_mail:value}» (без кавычек) (рисунок ниже).

Получатель письма
Получатель письма

В таком случае получателем будет тот, кто был указан пользователем при выборе той или иной радиокнопки во фронтальной части сайта. В тексте письма можно использовать заполнитель «{vybor_e_mail:text}», чтобы вставить текст элемента («Видео инструкция по Joomla 3»), а не почту («email@aleksius.com»).

Если Вы хотите отправлять письма нескольким получателям при выборе того или иного варианта, то элементы будут выглядеть так (просто разделяйте их запятой):

email-1@aleksius.com,email-2@aleksius.com,email-3@aleksius.com|Вопрос по "Видео инструкция по Joomla 3"
aleksius.com-1@gmail.com,aleksius.com-2@gmail.com,aleksius.com-3@gmail.com|Вопрос по "Видео инструкция по Joomla"
aleksius.com-1@mail.ru,aleksius.com-2@mail.ru,aleksius.com-3@mail.ru|Вопрос по "Видео инструкция по Joomla 3.7"

Подпись в качестве значения по умолчанию

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

Вариант №1. Например, Текстовое поле (рисунок ниже) со значением «Телефон» в поле Значение по умолчанию.

Подпись в качестве значения по умолчанию
Подпись в качестве значения по умолчанию

А на вкладке Атрибуты в поле Дополнительные атрибуты нужно ввести следующий код, где «Телефон» – это то, что было введено в поле Значение по умолчанию на вкладке Основное.

onfocus="if (this.value=='Телефон') this.value='';"
onblur="if (this.value=='') this.value='Телефон';"

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

Пример подписи внутри поля
Пример подписи внутри поля

Вариант №2. Создаёте текстовое поле, а на вкладке Атрибуты в поле Дополнительные атрибуты нужно ввести следующий код, где «Ваше имя» – это и есть то, что появится в поле.

placeholder="Ваше имя"

Оба варианта поддерживают проверку на обязательность заполнения поля пользователем, а также поддерживают правила проверки. По нажатию на поле значение по умолчанию будет удалено, а если удалить то, что ввёл пользователь, тогда появится значение по умолчанию.

Не работает капча

Ниже перечислены некоторые варианты решения (и причины) ситуации неработающей RSForm reCaptcha.

Вариант №1. У Вас на сервере должны быть установлены библиотеки PHP GD и FreeType. Чтобы это проверить перейдите в Система – Информация о системе – Информация о PHP и найдите эти библиотеки (рисунок ниже). Если их нет, то обратитесь в службу технической поддержки Вашего хостинг-провайдера.

RSForm reCaptcha
RSForm reCaptcha

Вариант №2. Если Вы создавали свой собственный перевод для RSForm (файл локализаций), то убедитесь, что файл сохранён в кодировке UTF-8 (без BOM). На рисунке ниже показан пример такого файла, открытого в Notepad++. При необходимости файл можно преобразовать в UTF-8 без BOM.

Кодировка файла
Кодировка файла

Вариант №3. Если Вы используете компонент кэширования, например, JotCache или Speed Cache, то исключите из кэширования компонент\модуль RSForm Pro (или страницу с формой). Также стоит временно отключить различные расширения по оптимизации скорости загрузки сайта типа JCH Optimize Pro или WEBO Site SpeedUp.

Вариант №4. Измените обработчик сессий Joomla в Система – Общие настройки – Система – Обработчик сессий (выберите Нет).

Вариант №5. Если у Вас на одной странице есть несколько форм с RSForm reCaptcha, то убедитесь в том, что в разных формах для поля капчи заданы разные названия.

Как включить подтверждение при отправке

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

Шаг 1. Перейдите в нужную Вам форму на вкладку Свойства в раздел Информация о форме и в области Представления активируйте опцию Включить подтверждение по E-mail (рисунок ниже).

Подтверждение об отправке
Подтверждение об отправке

Шаг 2. В разделе E-mail пользователей укажите Адрес отправителя и имя (в поле От имени). Можно использовать заполнители «{global:mailfrom}» и «{global:fromname}» соответственно (без кавычек). В поле Кому вставьте заполнитель, который отвечает за поле адреса электронной почты отправителя письма (посетителя сайта) в заполняемой им форме. У всех это будет по-разному, так как зависит от названия поля, которое Вы зададите.

В области Содержание нажмите на кнопку Редактировать текст письма и в появившемся редакторе вставьте заполнитель «{global:confirmation}» (без кавычек) (рисунок ниже). Лучше ещё добавить поясняющий текст.

Как включить подтверждение при отправке
Как включить подтверждение при отправке

Также рекомендуется заполнить поле Тема (в нём тоже можно использовать заполнители). Чтобы просмотреть доступные заполнители, достаточно нажать на кнопку Включить быстрое добавление в правой части страницы E-mail пользователей. Также некоторые заполнители можно быстро вставить, нажав на них в спадающем списке различных полей (рисунок ниже).

Вставка заполнителей
Вставка заполнителей

Шаг 3. После того как пользователь отправит данные через форму, ему на почту придёт письмо со ссылкой-подтверждением. Когда он на неё нажмёт, на вашем сайте обновятся данные. Их Вы сможете увидеть в Компоненты – RSForm Pro – Управление предоставленными данными (рисунок ниже).

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

Информация о подтверждении
Информация о подтверждении

Как создать многостраничную форму

Если в форме много полей, то для удобства её заполнения можно будет разбить форму на «страницы». По сути, никакого разбиения на страницы не будет. Просто будут скрываться и показываться разные поля. Можно будет включить проверку данных в рамках «страницы» и отобразить строку прогресса.

Шаг 1. Создайте форму со всеми полями, которые Вам нужны.

Шаг 2. Создайте поле тип Разрыв страницы (рисунок ниже). Обязательно укажите название поля на вкладке Основное. Это название не отображается во фронтальной части сайта. Можно использовать только английские буквы, цифры и знак нижнего подчёркивания «_» (без кавычек). Например, «razriv1». Рекомендую давать описательные названия полей (не путать с именем), так как именно названия видны в заполнителях.

Как создать многостраничную форму
Как создать многостраничную форму

На вкладке Атрибуты (рисунок выше) измените значения полей Метка для кнопки Далее и Метка для кнопки Назад. Если хотите, чтобы правильность и полнота введённых данных проверялась при переходе между «страницами» формы, то выберите Да для опции Проверять при смене страницы?. Немного подробнее о проверках можно прочесть в предыдущей статье. Проверка происходит при помощи технологии AJAX, так что пользователь не будет перенаправляться на разные страницы, а останется на той же.

Если хотите отображать панель\строку прогресса заполнения формы (считает «страницы» формы), то для опции Отображать текст прогресса? выберите или Автоматическая генерация, или Да. Если Выбрано Да, то в появившемся поле Сообщение прогресса можно будет задать свой текст и CSS-классы для оформления строки прогресса. Вы сможете отредактировать такой код:

<div>
<p><em>Стрнаица <strong>{page}</strong> из {total}</em></p>
<div class="rsformProgressContainer">
<div class="rsformProgressBar" style="width: {percent}%;"></div>
</div>
</div>

На рисунке ниже показан пример второй «страницы» формы. Для опции Отображать текст прогресса? выбрано Да.

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

  • «page}» – номер текущей «страницы».
  • «{total}» – общее количество «страниц».
  • «{percent}» – сколько уже было заполнено формы (например, в процентах).
Многостраничная форма
Многостраничная форма

При необходимости, Вы можете задать специальные триггеры в Дополнительные атрибуты поля Разрыв страницы. Это даст возможность выполнять определённые действия (на Javacript) при смене «страницы» формы. Но нельзя использовать элементы «return».

Также Вы можете ознакомиться с инструкцией касательно того, как сделать прокрутку многостраничной формы к её началу при смене страниц и как сменить стиль кнопки разделителя страниц.

Видео-инструкция по RSForm Pro

В данном видео показаны некоторые из моментов, описанные в статье выше.

  • Как передать параметр через URL – с 00:00.
  • Не отправляется e-mail – с 06:24.
  • Несколько получателей писем или получатели, основываясь на выборе – с 09:33.
  • Подпись в качестве значения по умолчанию – с 12:16.
  • Не работает капча – с 13:54.
  • Как включить подтверждение при отправке – с 15:52.
  • Как создать многостраничную форму – с 18:35.

 

 

Видео лучше просматривать с качеством 720 HD. Этот и другие видео уроки Вы можете найти на каналах сайта Aleksius.com в YouTube, Rutube и Mail.ru.

В следующей статье «Инструкция RSForm Pro (часть 2). Конструктор форм Joomla 3» будут рассмотрены моменты касательно отправки данных в письмах, страницы перенаправления на основании выбора пользователя, отслеживания формы при помощи сервисов Google и другие часто задаваемые вопросы.

 

Полезные ссылки:

При скачивании файлов менеджерами загрузок возможны проблемы.
ФайлОписаниеРазмер
Скачать этот файл (primer-form-s-sajta-aleksius-com.zip)Примеры форм RSForm ProК статье «Инструкция RSForm Pro (часть 1)»5 Кб