Как сделать произвольное поле в панели администрирования для своего компонента

06.07.2015
Потребовалось добавить поле с категориями в компонент, но встроенные типы полей не подошли.
Для таких случаев, есть возможность добавить свой тип полей.
  1. В файле
    /administrator/components/com_test/models/forms/item.xml

    1
    2
    3
    4
    5
    6
    7
    <field
    name="id_ category"
    type="category"
    label="Select an category"
    query="SELECT id, title FROM real_ category" key_field="title"
    >
    </field>

  2. Добавил в компонент файл: /administrator/components/com_test/models/fields/category.php

    С кодом:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    class JFormFieldСategory extends JFormFieldList
    {
      protected $type = 'Сategory';
    
      public function getOptions()
      {
        $options = array();
    
        $db = JFactory::getDBO();
        $query = $db->getQuery(true)
        ->select('id As value, title As text')
        ->from('real_сategory AS a')
        ->order('a.title');
        $db->setQuery($query);
        $data=$db->loadObjectList();
    
        $options = $db->loadObjectList();
    
        return array_merge(parent::getOptions(), $options);
      }
    
    }


Категории: CMS Joomla 3.X, Joomla
Яндекс.Метрика