Joomla как вставить форму

Формы в Joomla

Рассматриваем принцип работы форм в Joomla.

Форма в Joomla — это по сути XML-файл (манифест), описывающий содержимое формы. Файл манифеста заполняется типами полей, которые содержат метаданные этих полей, а также данные о фильтрации / валидации полей.

За обработку форм в Joomla отвечает пакет классов Form.

Использование форм

Гибкость форм в Joomla позволяет использовать их для различных целей. Чаще всего мы можем встретить использование форм для описания параметров конфигурации и установочных файлов расширений.

В типичном расширении Joomla формы используются для получения данных от пользователя, при этом файлы манифеста формы располагаются в папке forms расширения, а классы пользовательских полей в папке fields .

Если мы создаем компонент, то для работы с формами в Joomla существуют специальные MVC классы, которые упрощают работу с формами. Например, FormController или FormModel .

Концепция XML-файла формы

В форме есть три основных понятия: группа полей (fields), набор полей (fieldset) и поле (field).

Группа позволяет группировать поля и наборы полей. При получении данных формы каждой группе присваивается своё значение в виде массива полей.

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

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

Поля описывают отдельные поля формы. При определении полей важно определять только одно поле с заданным именем на группу.

Пример ниже иллюстрирует эти понятия:

Определение полей формы

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

Стандартные поля

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

  • Атрибут type (тип) является обязательным и используется для определения того, какой тип поля мы описываем.
  • Атрибут name (имя) также обязателен, это имя используется для передачи входных данных на сервер.
  • Атрибут id (идентификатор) не обязателен. Если мы не укажем идентификатор, будет использован атрибут name .
  • Атрибут label (метка) — это обязательный атрибут, отображаемый в виде HTML метки, а необязательный атрибут description (описание) используется как заголовок HTML метки. Значения в этих двух атрибутах переводятся классом Text , поэтому задаются в верхнем регистре.
  • Атрибут class задаёт CSS-класс поля.
  • Атрибуты size и maxLength являются специфическими для текстового поля. Они определяют размер отображения поля и максимальную длину любого значения, введенного в поле.

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

Читайте также:  Skype 0x800704cf windows 11

Это очень похоже на определение текстового поля. Здесь есть все те же атрибуты type , name , id , label и description . Дополнительно мы описываем значения опций списка, используя элементы option .

А вот как просто можно вывести поле редактора:

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

Пользовательский тип поля

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

Определение своего типа поля практически не отличается от определения стандартных полей:

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

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

А теперь, возвращаясь к нашему примеру XML-файла, давайте соберем всё вместе:

Отображение формы

Вывод формы пользователю осуществляется с помощью класса Form и FormField.

Сначала мы получаем объект класса формы:

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

Объект формы кэшируется на основании имени формы. При следующем вызове формы с этим же именем мы получим уже сформированный объект.

Теперь мы готовы выводить поля формы. Самый простой способ, это пройтись циклом по наборам полей с применением методов класса Form:

Если мы хотим получить более тонкий контроль над выводом полей, то можно использовать возможности класса FormField:

Практически все стандартные поля Joomla поддерживают переопределение макетов вывода, которы должны располагаться в /templates/<активный_шаблон>/html/layouts/joomla/form :

  • field — папка для размещения макетов вывода полей;
  • renderfield.php — файл вывода поля;
  • renderlabel.php — файл вывода метки.

Фильтрация данных поля

Фильтрация данных — это возможность обезопасить ввод данных на уровне определения поля, путём добавления атрибута filter . Он может принимать такие значения как: int , word , safehtml , string , tel , email , url и другие.

По умолчанию ко всем полям применяется фильтрация, которая удаляет весь HTML-код.

Подробнее о фильтрах полей читаем здесь.

Валидация данных поля

Валидация данных делится на два типа: проверка на стороне клиента и проверка на стороне сервера.

Валидация на стороне клиента задается через добавление специального класса validate-* для поля.

Например, для валидации адреса электронной почты используем класс validate-email :

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

А самой форме задать класс form-validate :

Кроме стандартных типов валидации, мы можем создавать свои.

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

Валидация на стороне сервера задается через атрибут validate . В качестве значения атрибута выступает правило (rule), которое определяет поведение проверки поля. Правила являются классами, которые наследуются от класса FormRule.

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

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

  • Последнее обновление: 01 августа 2019 .
Читайте также:  Как заправить самому принтер canon mg2545s

Источник

Как создать форму обратной связи для Joomla

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

В этой связи представляется логичным использование формы обратной связи.

Сущность и значение формы обратной связи для Joomla

Форма обратной связи представляет собой удобный инструмент для отправки сообщений администрации сайта.

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

Система управления контентом (CMS) Joomla 3 позволяет создать форму обратной связи, которая имеет следующие преимущества:

  • Простую настройку;
  • Красивый и удобный интерфейс;
  • Возможность оперативной отправки сообщений;
  • Наличие контактной формы на всех страницах сайта;
  • Возможность обойтись без перезагрузки страницы;
  • Защиту от спама.

Когда пользователь отправляет администрации письмо через данный компонент оно автоматически приходит на электронный ящик владельцев сайта.

По сути, весь процесс работы формы обратной связи можно представить в виде двух этапов:

  1. Заполнение посетителем нужных полей;
  2. Отправка сообщения.

Важно отметить, что подобная форма может состоять из произвольного количества полей различного назначения. При этом такие поля, как « E-mail », « Имя », « Тема » и « Сообщение » являются обязательными.

Процесс создания формы обратной связи в Joomla 3 : пошаговая инструкция

Стандартный функционал CMS Joomla 3 позволяет создать форму обратной связи, без установки дополнительных расширений. Это значительно упрощает задачу формирования этого важного модуля на любом сайте.

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

Целесообразно детально рассмотреть каждый из этапов создания формы обратной связи на Joomla 3 .

Шаг 1.

В админ-панели Joomla 3 следует открыть меню « Компоненты » и перейти на вкладку « Контакты »:

Шаг 2.

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

В частности, поля « Имя », « Категория » и « Связанный пользователь » являются обязательными для заполнения. Кроме того, можно указать следующие контактные данные: « Должность », « Почтовый ящик », « Город », « Сайт », « Телефон » и т.д.

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

Шаг 3.

На вкладке « Дополнительная информация » можно разместить дополнительные контактные данные, например схему проезда, или график работы, которые могут иметь важное значение для пользователей формы обратной связи:

Шаг 4.

На вкладке « Параметры публикации » представляется возможным указать дату начала и конца публикации, а также прописать мета-описания и мета-тег « разрешить/запретить » индексацию страницы:

Шаг 5.

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

Здесь же следует установить формат отображения формы обратной связи Joomla 3 .

Следует подчеркнуть, что всего доступно три варианта отображения:

  • « Сворачивающиеся списки » — на странице будут два или три пункта: контакт, форма обратной связи и дополнительная информация, расположенные вертикально;
  • « Вкладки » — будут отображаться те же вкладки, только горизонтально;
  • « Обычный » — на странице будут видны все указанные контактные данные.
Читайте также:  Generate new ssh key github

Шаг 6.

На последней вкладке « Настройки отображения контактов » можно настроить блокируемые темы и почтовые ящики, а также активировать пункт « Отправить копию письма на почту отправителя »:

Шаг 7.

После того как указаны все необходимые данные, нужно сохранить контакт:

Шаг 8.

После сохранения необходимо сформировать пункт меню для созданного контакта. Для этого нужно перейти в раздел « Меню » и выбрать в нем « Главное меню », затем вкладку « Создать пункт меню »:

Шаг 9.

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

Шаг 10.

В качестве типа пункта меню необходимо выбрать раздел « Контакты »:

Шаг 11.

После установки типа пункта меню, появится поле « Выбор контакта ». В нем нужно выбрать созданный на предыдущих этапах контакт (в данном случае – Администратор).

Важно подчеркнуть, что вкладки « Параметры отображения контактов » и « Параметры почты », копируют настройки вкладок « Настройки отображения » и « Настройки отображения контактов » соответственно:

Шаг 12.

На вкладке « Параметры отображения ссылки » прописывается поле « Заголовок, как ссылка », которое является пользовательским описанием данного пункта меню. Впоследствии данное описание будет отображаться при наведении курсора на пункт меню.

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

Шаг 13.

После завершения описанных выше операций можно настроить параметры отображения страницы, а именно теги title и h1 данной страницы.

Эту вкладку также можно пропустить, в этом случае заголовок будет отображать название страницы, в данном случае – «Обратная связь»:

Шаг 14.

На вкладке « Метаданные » указываются мета теги Description и Keywords веб-страницы. По сути, эта вкладка повторяет настройки раздела « Параметры публикации », который открывается в окне создания контактов.

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

Таким образом, меню (в данном случае главное меню) пополнится еще одним пунктом – « Обратная связь », как показано на рисунке ниже:

Если все предыдущие шаги были выполнены верно, то на странице обратной связи появятся две или три вкладки (в зависимости от наличия данных заполненных на 3-ем шаге):

Таким образом, форма обратной связи для Joomla 3 создана. Её отображение может иметь вид сворачивающихся списков, что устанавливается по умолчанию, либо вид вкладок.

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

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

Источник

Поделиться с друзьями
КомпСовет
Adblock
detector