Drupal:使用规则和自定义php代码编写分类法引用字段
我有一个分类词汇kategorie如下:Drupal:使用规则和自定义php代码编写分类法引用字段,php,drupal-7,drupal-rules,Php,Drupal 7,Drupal Rules,我有一个分类词汇kategorie如下: Kat01 儿童01 儿童02 Kat02 儿童01 儿童02 词汇表有一个ID如下的自定义字段:957214d2-ce39-423d-aeb1-32f2e8b972f6,因此每个术语和父术语都有一个ID(不是tid!) 我有一个带有引用分类字段的内容类型kategorie。还有一个名为kategorieTempId的数组字段,其值与kategorie分类法中的值相同。该数组中的ID数表示术语和父术语的层次顺序。因此,如果节点应位于kateg
- Kat01
- 儿童01
- 儿童02
- Kat02
- 儿童01
- 儿童02
现在我需要获取子术语的ID,然后从词汇表中获取分类术语并将其写入引用的术语字段 到目前为止我所做的:
设置一条规则,该规则在保存节点之前被激发,使用操作按属性获取实体将分类术语从词汇表中获取到数组中。然后,我添加了一个操作执行自定义PHP代码,以查找子tid并将其写入名为katreurn的字段中
下面是我使用的代码(我完全是php初学者,我不知道这是否是一种优雅的方式,但它可以工作): 现在我知道了子术语的tid,我想把它写进referencetaxonomy字段,但我不明白。我尝试的代码是:
foreach ($kat_id_fetched as $kat) {
if ($kat->tid == $returned_kat) {
$node->field_kategorie[] = $kat;
break;
};
};
我希望,我清楚地表明了我想要什么。正如我之前所说,我的php技能有限,我非常感谢任何帮助,这为我指明了正确的方向。Thanx.解决方案比我想象的要简单。感谢@Clive
我可以直接保存存储在$item中的术语id,而无需经过第三个foreach循环
$node->field_kat_return['und'][0]['tid'] = $item;
术语引用的字段列是
tid
,因此您的代码应该是$node->field_kat_return['und'][0]['tid']=$item谢谢你的回复,但我不明白。字段_kategorie不是参考分类字段。它只是一个获取值的辅助字段,与我要查找的术语的tid相同。术语参考字段是字段_kategorie。我想把我从上一个foreach循环中得到的分类术语写到这个字段中,我的答案有一个错误。当然,字段_kategorie是参考分类字段。返回的字段是helper字段…啊@克莱夫,我太蠢了!谢谢你的回答。当然,您的代码就是答案,而且工作非常完美!
$node->field_kat_return['und'][0]['tid'] = $item;