2016-09-11 9 views
0

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

Example

The joomla website предоставляет этот пример кода:

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

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

Глядя в «администраторе/компонентах/com_content/модели/форме/artile.xml» поле категорий перечислен как:

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

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

Как я могу легко найти раскрывающееся меню, не программируя его с нуля?

ответ

1

Тип поля категории является стандартным типом поля формы, поэтому он доступен вам везде, где вы создаете форму в 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>

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

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

+0

Это ничего не изменило. Я по-прежнему получаю ту же категорию, что и без функции автозаполнения. – Codewise

0

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

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