Разработка компонентов Joomla: поле формы для поиска

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

пример

Веб-сайт Joomla предоставляет этот пример кода:

<field name="mycategory" type="category" extension="com_content" label="Select a category" description="" />

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

Глядя в ‘administrator / components / com_content / models / forms / artile.xml’, поле категории выглядит так:

    <field name="catid"type="categoryedit"label="JCATEGORY"description="JFIELD_CATEGORY_DESC"required="true"default="">
</field>

Однако это дает мне простое текстовое поле для ввода идентификатора категории.

Как я могу легко получить выпадающий поиск без программирования с нуля?

0

Решение

Тип поля категории является стандартным типом поля формы, поэтому он доступен вам везде, где вы создаете форму в Joomla. Вы можете прочитать больше о стандартных полях формы на https://docs.joomla.org/Standard_form_field_types. Однако тип поля categoryedit является чем-то уникальным / нестандартным для компонента менеджера категорий. Вы можете прочитать больше о пользовательских полях формы на https://docs.joomla.org/Creating_a_custom_form_field_type.

Чтобы использовать настраиваемые поля в xml, вы должны объявить путь к месту хранения полей, используя атрибут addfieldpath в теге fieldset вашего xml-файла.

пример

<fieldset addfieldpath="/administrator/components/<component name>/models/fields"></fieldset>[/ NOEDIT]

В приведенном выше примере будет com_categories, поэтому полный путь для использования categoryedit будет

<fieldset addfieldpath="administrator/components/com_categories/models/fields"></fieldset>[/ NOEDIT]

1

Другие решения

Добавление этой строки в шаблон включает функцию автозаполнения.

JHtml::_('formbehavior.chosen', 'select', null, array('disable_search_threshold' => 0 ));
0

По вопросам рекламы [email protected]