PredefinedList - Предопределенный тип поля формы списка
Тип поля формы 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 для перевода, прежде чем будут показаны пользователю.