Запуск Joomla 3.3.0-dev
Я следую за информацией, размещенной здесь о добавлении поддержки тегов к стороннему компоненту.
Я добавил тип содержимого в таблицу #__content_types
и изменил свой файл table
следующим образом:
class MycomponentTableElement extends JTable { public $tagsHelper = null; // failed when protected and public public function __construct(&$_db) { parent::__construct('#__mycomponent', 'id', $_db); // Add Joomla tags JObserverMapper::addObserverClassToClass('JTableObserverTags', 'MycomponentTableElement', array('typeAlias' => 'com_mycomponent.element')); //$this->_observers = new JObserverUpdater($this); JObserverMapper::attachAllObservers($this); // failed with or without this line }
Я добавил поле тега в шаблон edit
, и он работал нормально – но когда я сохраняю объект, я получаю следующую ошибку:
Save failed with the following error: Unknown column 'tagsHelper' in 'field list'
Что мне не хватает? Нет никаких других шагов (помимо шагов переднего плана!), Которые упомянуты. Похоже, мне нужно изменить модель, но эта информация не применима.
благодаря
« Эта страница нуждается в редактировании копии », и это действительно так!
Я также выполняю начальные шаги, описанные на странице
Но для создания тега поля для пользовательских расширений мне нужно явно указать значение поля формы в файле вида бэкэнда:
$tagsHelper = new JHelperTags; $this->form= $this->get('Form'); $this->form->setValue('tags', null, $tagsHelper->getTagIds( $this->item->id, 'com_custom.viewname') );
таким образом, на странице редактирования все, кажется, работает правильно. Конечно, существует лучший и более чистый метод, но пока страница doc не будет обновлена, это может помочь кому-то!
1- Добавить поле тега в файл формы xml или отредактировать файл шаблона
2- Изменить #__content_types
таблицы #__content_types
:
function __construct(&$db) { parent::__construct('#__ir_products', 'id', $db); JTableObserverTags::createObserver($this, array('typeAlias' => 'com_itemreview.product')); }
3. Изменить функцию getItem файла модели:
public function getItem($pk = null) { $item = parent::getItem($pk); if (!empty($item->id)) { $item->tags = new JHelperTags; $item->tags->getTagIds($item->id, 'com_yourcomponent.yourmodel'); } return $item; }