我在这个上花了几天时间,所以我举手了。我正在我自己的组件中实现标签,并已按照 Elin 在 Joomla 网站上的说明进行操作(2013 年 7 月 27 日)。我可以正确地将新标签保存在 TAGS 表中,但不能像所有标准组件那样保存在 UCM 或 TAG MAP 表中。我一直跟踪代码,并与 com_contacts 进行了比较,并且在我的生活中无法看到我的组件有任何差异。我应该在哪里寻找代码更新其他两个表的位置?我知道这将以一个令人尴尬的答案结束,但我很高兴看起来很愚蠢。我的表没有元字段,但我手动修改了 $data 数组中的元数据数组。任何帮助表示赞赏。
问问题
1957 次
1 回答
2
经过多天的额外挫折后,我发现对于我的组件,我必须将存档信息包含到我的表类中,这不再是必需的了。
添加属性
/**
* Indicator that the tags have been changed
*
* @var JHelperTags
* @since 3.1
*/
protected $tagsHelper = null;
此属性有助于管理标签的更改。修改你的构造函数
按照这个例子来修改你的构造函数,这大大减少了重复代码。
$this->tagsHelper = new JHelperTags();
$this->tagsHelper->typeAlias = 'com_contact.contact';
修改你的 store() 方法
标记和相关数据的管理主要通过 store() 方法处理。这为跨多个扩展处理标签提供了最大的灵活性。
如果您没有 store() 方法,则需要添加一个。假设表将从 JTable 继承。
处理涉及 preStoreProcess()、对父 store() 方法的调用,然后是 postStoreProcess()。
$this->tagsHelper->preStoreProcess($this);
$result = parent::store($updateNulls);
return $result && $this->tagsHelper->postStoreProcess($this);
于 2013-08-10T02:50:37.180 回答