Тип поля формы PredefinedList предоставляет раскрывающийся список предопределенных записей. Если поле имеет сохраненное значение, оно выбирается при первой загрузке страницы. Если нет, выбрано значение по умолчанию (если есть).

В основном параметры конфигурации такие же, как и в поле списка, однако значения для поля создаются переменной класса predefinedOptions. Таким образом, следующие переменные имеют то же значение, что и поле списка:

Params.list.jpg
  • 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 для перевода, прежде чем будут показаны пользователю.