RSForm Pro - компонент для створення форм Joomla з багатим функціоналом (більше 20 типів полів) і безліччю налаштувань. У попередній статті «Інструкція RSForm Pro (частина 2). Конструктор форм Joomla 3 »ми розглянули деякі поширені запитання з сайту розробника компонента. У цій частині продовжимо розпочате.
У даній статті Ви зможете ознайомитися з повним переліком відповідей на запитання стосовно роботи з компонентом форм Joomla RSForm Pro.
Чи не працює відправка листів в Joomla 3.2.0
У попередній статті було розглянуто ряд причин і способів вирішення проблем, пов'язаних з поштою. Але якщо Ви оновили свою Joomla з більш старої до версії 3.2.0 або більш нової, а у Вас перестали відправлятися листи, то перейдіть в Система - Загальні настройки - Сервер і перевірте, щоб для опції Відправлення пошти було вибрано Так.
Префікс завантаження
У компоненті форм Joomla є поле тип Завантаження файлу. Воно дозволяє відправляти файли через форму. В управлінні відправленими даними Ви можете бачити, що до вихідного імені файлу додається спеціальний префікс (малюнок нижче). Це робиться з метою уникнути дублювання в іменах файлів.
Є можливість управління цим префіксом. Для цього перейдіть в налаштування поля на вкладку Атрибути (малюнок нижче). Якщо в поле Префікс файлу нічого немає, то префікс формується автоматично (випадково).
Можна ввести туди свій власний текст (краще використовувати латинські букви, цифри, знак тире або нижнього підкреслення). Краще, щоб в кінці введеного Вами префікса було тире або знак нижнього підкреслення, наприклад, «primer-prefiksa-» (без лапок).
Якщо потрібно прибрати префікс взагалі, то введіть в поле Префікс файлу наступний код:
Можна налаштувати генерацію префікса на підставі введених користувачем даних в певний поле. Для цього в поле Префікс файлу наступний код:
Де «vashe_ima» - назва поля форми тип текстового поля. На малюнку нижче це поле відзначено як «Ваше ім'я».
Створення форм JoomlaНа малюнку нижче показаний приклад імені файлу з префіксом, який був сформований на підставі значення поля, заповненого користувачем у формі.
Імена відправлених файлів
Обмеження вибору дати в календарі
У попередній статті ми розглянули приклад зазначення дати «з» і «по» в залежних календарях. Давайте розглянемо, як обмежити можливість вибору дати в календарі, наприклад, не пізніше, ніж два дні з сьогоднішньої дати.
Для цього в настройках поля календаря на вкладці Атрибути в поле Мінімальна дата (мм / дд / рррр) введіть наступний код:
А в полі Максимальна дата (мм / дд / рррр) - такий код (малюнок нижче).
Компонент форм JoomlaДе «+2 days» - число днів, починаючи з поточного дня.
Правила перевірки додаткових символів
У полях тип текстового поля і Текстова область можна включити перевірку даних, що вводяться. Наприклад, є правила перевірки Букви, Цифри, Букви і цифри (малюнок нижче), але при цьому, за замовчуванням, користувач не зможе відправити дані, що містять спеціальні символи.
Щоб розмістити посилання, перейдіть в менеджері меню в потрібне Вам меню, знайдіть \ створіть пункт меню тип Показати відправлені дані і в його налаштуваннях на вкладці Параметри додайте наступний рядок в поле Макет рядки і \ або в поле Докладний макет.
Замість тексту «Перейти на сторінку користувача, що відправив дані» можна використовувати інший текст і навіть наповнювачі полів, наприклад, «», Де« »- заповнювач поля введення імені користувача на формі RSForm.
При написанні статті тестував в Community Builder 2.1.2.
Чи не працює форма при включеному кеші
При вставці форми на сторінку за допомогою плагіна «Content - RSForm! Pro »і включеному кеші Joomla, швидше за все, форма не буде працювати. Вона буде відображатися, але не буде функціонувати. Для вирішення цієї проблеми доведеться повністю відключити кешування на сайті. Для цього перейдіть в Система - Загальні настройки - Система і для опції Системний кеш виберіть Кешування відключено.
Також перейдіть в Розширення - Модулі. знайдіть плагін «Система - Кеш» і переконайтеся, що він вимкнений. Після цього перейдіть в Система - Очистити весь кеш і видаліть весь кеш.
Якщо Ви хочете залишити кешування і використовувати форми RSForm, то створюйте окремі сторінки для форм за допомогою пунктів меню тип RSForm! Pro - Форма. Або скористайтеся сторонніми компонентами кешування, які допоможуть задавати виключення з кешування для окремих сторінок, модулів, позицій шаблону і т.д. Наприклад, JotCache або Speed Cache. На одному зі своїх сайтів я саме так і вчинив. Форма вставлена на сторінку через модуль, а в налаштуваннях JotCache задано виключення позиції шаблону, де знаходиться модуль форми RSForm.
Проблема з кодуванням в CSV файлі
Компонент форм Joomla дозволяє експортувати надані користувачами дані в різні файли. Наприклад, в CSV. При відкритті такого файлу можуть бути проблеми з кодуванням (відображенням російських і українських букв).
Для мінімізації подібної проблеми рекомендую відкривати файли в LibreOffice Calc (малюнок нижче), вибравши в якості кодування Юнікод (UTF-8).
На малюнку вище показаний приклад налаштувань (Разделитель і Роздільник тексту) імпорту файлу в разі, якщо Ви передали дані з RSForm з настройками за замовчуванням.
Якщо у Вас Excel, то відкрийте його і на вкладці Дані - Отримання зовнішніх даних виберіть З тексту. вкажіть CSV файл і у вікні в спадающем списку Формат файлу виберіть 65001: Юнікод (UTF-8) (малюнок нижче). А на другому кроці потрібно вказати символ роздільник (за замовчуванням - кома).
Зверніть увагу, що в Excel можуть бути проблеми з акцентованими символами.
Якщо в результаті виконання вищеописаних дій Ви все одно стикаєтеся з проблемами в кодуванні, то відкрийте CSV файл в Notepad ++. перейдіть в меню Кодування (малюнок нижче) і перетворіть кодування файлу в UTF-8 без BOM. А потім повторіть вказані кроки імпортом файлу в Calc або Excel.
Необхідно вказати хоча б одного одержувача електронної пошти
Необхідно вказати хоча б одного одержувача електронної поштиЗавантажене зображення в повідомленні про подяки
Створіть поле тип Завантаження файлу. наприклад, з назвою «prikrepit-fajl». Перейдіть в властивості форми і в розділі Інформація про форму натисніть кнопку Редагувати повідомлення подяки. У нього додайте HTML код:
На малюнку нижче показаний приклад вікна з редагуванням повідомлення подяки.
Редагування повідомлення подякиНа сайті заповнене поле з відправкою файлу виглядає так, як показано на малюнку нижче.
А так (малюнок нижче), виглядає сторінка з подячним повідомленням.
Сторінка з подячним повідомленнямПоля на форми не відображаються на сайті
Можлива ситуація, коли Ви додаєте поля в адміністративній частині сайту, а вони не відображаються у фронтальній. Це може бути викликано відключеною опцією Генерувати макет автоматично? у властивостях форми в розділі Макет форми.
В такому випадку в макет форми не потрапляють всі потрібні наповнювачі. Форма може не працювати зовсім. Щоб це виправити, потрібно або вручну додати наповнювачі всіх полів, або включити опцію Генерувати макет автоматично? .
Якщо Ви зважитеся на ручне додавання полів, то тут Вам знадобляться знання HTML. Трохи про синтаксис наповнювачів. Припустимо, у Вас є поле з назвою «vashe_ima».
- «» - підпис поля.
- «» - саме поле, наприклад, текстовий рядок або, що випадає.
- «» - повідомлення перевірки. Якщо для поля задано правило перевірки, і воно спрацює, то буде показаний текст. Якщо все буде введено вірно, то текст показуватися не буде.
- «» - опис поля.
Рекомендується додавати все наповнювачі для кожного поля, але основні (обов'язкові) - це «» і «».
Зверніть увагу, що наповнювачі чутливі до регістру і їх не можна переводити на іншу мову. Якщо у Вас сайт не англійською, то все одно використовуйте саме такі наповнювачі.
Додавання умов і термінів
Розглянемо рішення задачі з додаванням поля «ліцензійної угоди». Наприклад, угоди, що дозволяє Вам обробляти персональні дані, які відправляє користувач через Вашу форму. При цьому зробимо так, що користувач зможе відправити дані, якщо прокрутить текст угоди до кінця.
Спершу створіть поле тип Текстова область. У моєму прикладі його назва «tekst_soglasheniya». Перейдіть на вкладку Атрибути цього поля і в поле Додаткові атрибути вставте код:
Цей код зробить текст поля доступним тільки для читання.
Цей код перевіряє, щоб користувач докрутили текст поля до кінця. Тут «tekst_soglasheniya» - назва поля з текстом ліцензійної угоди.
Додавання з'являється зображення при відправці форми
Розглянемо ситуацію, коли потрібно відобразити якийсь малюнок після натискання на кнопку відправки даних. До цього він повинен бути прихованим.
Перейдіть в властивості форми в розділ Макет форми і для опції Генерувати макет автоматично? виберіть Ні. В поле HTML макет додайте наступний код туди, де потрібно буде відображати картинку:
Де ID може бути не тільки «1». «/images/knopka.gif» - шлях до картинки на Вашому сервері.
Перейдіть до редагування поля тип Кнопка відправки і на вкладці Атрибути введіть наступний код в поле Додаткові атрибути:
Де «1» - це ID того дива, який Ви вставили в HTMLмакет. Тепер після натискання на кнопку відправки буде показуватися зображення. Вищеописаний приклад підійде і для поля тип Кнопка.
При натисканні на кнопку відправки нічого не відбувається
Якщо при натисканні на формі на кнопку «оправі» нічого не відбувається, спробуйте наступні варіанти вирішення проблеми.
Зміна першого дня тижня календаря
За замовчуванням, компонент форм Joomla, в поле тип Календар. ставить в якості першого дня тижня «Воскресіння». Щоб змінити його на «Понеділок» зайдіть в папку сайту «language / ru-RU» (або іншого потрібного Вас мови), знайдіть файл «ru-RU.com_rsform.ini», знайдіть у ньому рядок «RSFP_CALENDAR_START_WEEKDAY =" 0 "» ( приблизно №54) і замініть «0» на «1», щоб було так: «RSFP_CALENDAR_START_WEEKDAY =" 1 "» (без лапок ялинок). Тепер в календарі понеділок буде першим.
Міграція форм RSForm Pro з Joomla 1.5 на Joomla 3
Якщо Ви оновлюєте свій сайт з Joomla 1.5 до Joomla 3 і хочете перенести форми, то спершу переконайтеся, що на сайтах встановлені останні доступні версії RSForm Pro (з урахуванням сумісності з версією Joomla). Для Joomla 1.5 остання версія RSForm Pro - це rev.44. Є два варіанти міграції форм і наданих даних.
Варіант №1. На сайті під керуванням Joomla 1.5 перейдіть в Компоненти - RSForm! Pro - Архівація / Відновлення. Потім перейдіть на вкладку Архівація. виберіть всі форми, які хочете перенести, при необхідності перенесення відправлених даних активуйте опцію Включити надані дані ?. Експортуйте все в файл.
На сайті під керуванням Joomla 3 перейдіть в Компоненти - RSForm! Pro - Архівація / Відновлення. Потім перейдіть на вкладку Відновити. вкажіть експортований файл в поле Архівна копія. Якщо у Вас на новому сайті ще немає ніяких Важливих форм і відправлених даних (які не можна втратити), то можете активувати опції Замінити існуючі форми? і Отримання ID форм з архіву. Після цього натисніть Відновити.
Якщо не активувати дані опції (Замінити існуючі форми? І Отримання ID форм з архіву) то можуть виникнути проблеми з відображенням форм на сайті (в пунктах меню, модулях, матеріалах), так як відображення прив'язується до ID форм, а ці ID можуть помінятися.
Варіант №2. Відкрийте базу даних свого сайту під керуванням Joomla 1.5 в чомусь на кшталт phpMyAdmin (або в ньому). Знайдіть всі таблиці виду «ПРЕФІКС_rsform_НАЗВАНІЕ_ТАБЛІЦИ» (малюнок нижче).
Таблиця форм в базі данихЕкспортуйте їх за допомогою phpMyAdmin. Префікс таблиць у кожного буде свій. Кількість і набір таблиць бази даних RSForm Pro буде відрізнятися в залежності від кількості встановлених плагінів RSForm Pro.
Перед імпортом таблиць в нову базу даних перейменуйте старий префікс на новий.
Після імпорту таблиць в нову базу даних, а потім встановіть RSForm Pro на новому сайті. Це потрібно для поновлення структури таблиць до останньої версії.
Чи не працює AJAX перевірка
Якщо Ви зіткнулися з тим, що для полів не працює AJAX перевірка, то спробуйте наступні варіанти вирішення даної проблеми.
У наступній статті «Інструкція RSForm Pro (частина 4). reCaptcha v2 »поговоримо про приховані полях, префікс завантаження, перевірки спеціальних символах і інших часто-задаються питаннях.