在内容类型的nodereference字段中,是否可以显示使用自动填充结果添加的内容类型名称?
我有一个名为Article的内容类型,它有一个节点引用字段(相关内容 - > field_related_documents),因此本文将引用其他节点。
创建文章时,输入“帮助”#39; in' field_related_documents'我正在获得自动完成结果(引用节点的标题),如下所示
helpsystems - rules
Decision management Help
Using help menu
Help support glossary
相反,我喜欢显示如下结果
Page | helpsystems - rules
HelpSystems | Decision management Help
Page | Using help menu
Document | Help support glossary
ie)自动完成结果应显示添加了其相关内容类型的其他节点的标题。
我应该如何实现这一目标?是否有任何可用的模块可用于实现此目的?
答案 0 :(得分:0)
我创建了一个新的自定义Module nodereference_patch with hook hook
/*
* Altering nodereference/autocomplete menu using menu alter
*/
function nodereference_patch_menu_alter(&$items) {
$items['nodereference/autocomplete']['page callback'] = 'nodereference_patch_new_nodereference_autocomplete';
}
然后,我将nodereference_autocomplete函数复制到您的自定义模块中,将其名称更改为nodereference_patch_new_nodereference_autocomplete。
然后我更改了这一行:
$matches[$row['title'] ." [nid:$id]"] = '<div class="reference-autocomplete">'. $row['rendered'] . '</div>';
到
$matches[$row['type'] . " | " . $row['title'] . " [nid:$id]"] = '<div class="reference-autocomplete">' . $row['type'] . " | " . $row['rendered'] . '</div>';
我将_nodereference_potential_references函数从nodereference.module复制到自定义模块,并将其重命名为_nodereference_patch_potential_references
然后我将以下行更改为
$references = _nodereference_potential_references_standard($field, $string, $match, $ids, $limit);
到
$references = _nodereference_patch_potential_references_standard($field, $string, $match, $ids, $limit);
我将_nodereference_potential_references_standard从nodereference.module复制到自定义模块,并将其重命名为_nodereference_patch_potential_references_standard
然后我添加了&#39;键入&#39;元素到$ references []。 ie)从
更改了以下数组$references[$node->nid] = array(
'title' => $node->node_title,
'rendered' => check_plain($node->node_title),
);
到
$references[$node->nid] = array(
'title' => $node->node_title,
'type' => $node->node_type,
'rendered' => check_plain($node->node_title),
);
答案 1 :(得分:0)
我更倾向于使用不同的方法,使用类似的方法,而不是复制整个模块并重命名,我创建一个新的menu_hook和form_alters来更新自动完成路径。
如果您正在使用实体引用而不是节点引用,则可以使用视图来显示内容,而不是我的首选路由,但会减少自定义代码的数量。快速谷歌的演示提供了以下视频(http://codekarate.com/daily-dose-of-drupal/using-views-entity-reference-module-drupal-7)
另外,只是注意,如果您打算像上面的回答一样复制模块,我强烈建议从模块信息文件中删除一些行。以下信息&#39 ;; drupal.org打包脚本添加的信息&#39;信息文件中的信息被更新模块使用,并增加了原始模块替换此新模块的风险。