Тип predefinedlist поля формы предоставляет раскрывающийся список предварительно определенных записей. Если в поле есть сохраненное значение, оно выбирается при первой загрузке страницы. В противном случае выбирается значение по умолчанию (если есть).
В основном параметры конфигурации такие же, как и у поля списка, однако значения для поля создаются переменной класса predefinedOptions параметров. Таким образом, следующие переменные имеют то же значение, что и поле списка:
- type (обязательный) - должен быть PredefinedList.
- name (обязательно) - уникальное имя поля.
- label (обязательно) (разрешается переводить) - описательный заголовок поля.
- default (необязательно) - значение элемента списка по умолчанию.
- description (необязательно) (разрешается переводить) - это текст, который будет отображаться как всплывающая подсказка, когда пользователь наводит указатель мыши на раскрывающийся список.
- class (необязательно) - это имя класса CSS для поля формы HTML. Если этот параметр не указан, по умолчанию используется inputbox.
- multiple (необязательно) - можно ли выбрать несколько элементов одновременно (true или false).
- required (необязательный) - если установлено значение true, первая опция поля должна быть пустой, см. последний пример.
- useglobal (необязательно) - если задано значение true, будет отображаться значение, установленное в глобальной конфигурации, если оно найдено в базе данных.
Пример XML определения
<field name="mylistvalue" type="Myextension.Mycustompredefinedlist" default="" label="Select an option" description="">
</field>
это будет сопровождаться вашим полем, определенным в PHP, которое будет выглядеть так:
class MyextensionFormFieldMycustompredefinedlist extends JFormFieldPredefinedList
{
public $type = 'Mycustompredefinedlist';
protected $predefinedOptions = array(
'1' => 'COM_FOO_LABEL_FOR_TRANSLATION',
'0' => 'COM_FOO_ANOTHER_LABEL_FOR_TRANSLATION',
);
}
Кроме того, в PHP вы можете установить для переменной класса translate значение false, что приведет к тому, что значения вашей предопределенной опции не будут проходить через JText для перевода до того, как будут показаны пользователю.
Посмотреть все стандартные типы полей формы можно здесь: https://d-nik.site/ru/joomla-4/joomla-dlya-razrabotchikov/standartnye-tipy-polej-formy
Источник: https://docs.joomla.org/Predefined_List_form_field_type
