运行Joomla 3.3.0-dev
我发布了here发布的有关向第三方组件添加标记支持的信息。
我已将内容类型添加到#__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'
我错过了什么?提到的没有其他步骤(除了前端步骤!)。似乎我需要修改模型,但该信息不适用。
由于
答案 0 :(得分:0)
" 此页面需要复制编辑"这是真的!
我还按照第
页中所述的初始步骤进行操作但是要使字段标记适用于自定义扩展,我需要在后端的视图文件中显式设置表单字段值:
$tagsHelper = new JHelperTags;
$this->form= $this->get('Form');
$this->form->setValue('tags', null, $tagsHelper->getTagIds( $this->item->id, 'com_custom.viewname') );
以这种方式编辑页面似乎都正常工作..肯定存在更好更干净的方法,但是直到doc页面不会更新,这可以帮助别人!
答案 1 :(得分:0)
1-将标记字段添加到xml表单文件或编辑模板文件
2-修改#__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;
}