Поля для формы появились в Joomla начиная с версии 1.6. Они служат для того что бы удобно и гибко создавать любое поле для HTML формы в не зависимости от того где эти поля будут размешены, будь то компоененты, модули или плагины.

Что бы создать произвольное поле достаточно в секцию в файле XML манифеста вписать следующий код:

<field name="field_name" type="field_type" 
label="field_label" description="field_description" />

Где field_name - имя поля по которому можно обратится к нему из приложения для получения значения
field_type - тип поля, например текстовое поле
field_abel - название поля
field_description - описание поля которое появляется при наведении на "Название поля"

Список общих полей которые могут использоваться при любом создании элементов формы для Joomla:

полезначение
type (Обязательное) Тип поля
name (Обязательное) уникальное имя этого поля
label (Обязательное) название поля
default (Не обязательное) Значение по умолчанию для этого поля
description (Не обязательное) Текстовая подсказка которая появляется при наведение на название поля
readonly (Не обязательное) устанавливает поле в режим только для чтения
disabled (Не обязательное) Отключено
class (Обязательное) имя CSS класса для текстового поля

 

 

В модулях и плагинах достаточно в XML файле манифеста (он же установочный файл) добавить секцию <config></config> в секцию <extension></extension>

Для модуля конфигурация будет выглядеть следующим образом:

<config>
    <fields name="params">
        <fieldset name="basic">

        </fieldset>
        <fieldset name="advanced">
            <field name="layout" type="modulelayout" label="JFIELD_ALT_LAYOUT_LABEL"
                    description="JFIELD_ALT_MODULE_LAYOUT_DESC"/>
            <field name="moduleclass_sfx" type="text" label="COM_MODULES_FIELD_MODULECLASS_SFX_LABEL"
                    description="COM_MODULES_FIELD_MODULECLASS_SFX_DESC"/>
            <field name="cache" type="list" label="COM_MODULES_FIELD_CACHING_LABEL"
                    description="COM_MODULES_FIELD_CACHING_DESC" default="1">
                <option value="0">COM_MODULES_FIELD_VALUE_NOCACHING</option>
                <option value="1">JGLOBAL_USE_GLOBAL</option>
            </field>
        </fieldset>
    </fields>
</config>
			

После создании данной секции в XML Файле манифеста в администрировании модуля у нас появится такие блоки:
Настройки модуля для размещения полей в блоке "Основные параметры" нужно добавлять поля в секцию <fieldset name="basic"></fieldset>.
Блок "Дополнительные параметры" находится в секции <fieldset name="advanced"></fieldset> в этом блоке уже опеределены три стандартных поля для работы с модулем

 

Для добавления конфигурации для плагина также нужно в XML файле манифеста создать секцию <config></config>
В которой будет точно такой же код как и в модуле, только не нужно вставлять секцию <fieldset name="advanced"></fieldset> и у нас появится точно такой же блок "Основные параметры" в котором через XML файл манифеста можно создать любое количество произвольных полей

 

Для административной части нужно создавать файл config.xml в administrator/components/com_mycomponent/. В этот файл вставляется отдельно секция <config></config> которая является родительской, внутри она ничем не отличается от той что создается в XML файле манифеста для модуля, но как и для плагина не нужно все что в секции advanced модуля

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

JToolBarHelper::preferences( 'com_mycomponetn' );

После чего появится кнопка "Настройки" нажав на которую появится окно настроек для компонента

 

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