使用 cck 节点引用的自动完成字段始终将节点 ID 显示为隐蔽的括号扩展:
Page Title [nid:23]
我知道这可以确保在节点具有相同标题的情况下选择是唯一的,但显然这对用户来说是一件令人讨厌的事情。
有没有人成功删除这些括号或添加不同的唯一标识符?
最佳答案
最终,您需要更改 nodereference_autocomplete()
的输出在 nodereference.module 中。
要正确执行此操作,您需要一个自定义模块来干净地覆盖该函数。
这个函数被定义为一个菜单回调,因此,
/**
* Implementation of hook_menu_alter().
*/
function custom_module_menu_alter(&$items) {
$items['nodereference/autocomplete']['page callback'] = 'custom_module_new_nodereference_autocomplete';
}
然后,将 nodereference_autocomplete 函数复制到您的自定义模块中,更改其名称以匹配您的回调。然后改变这一行:
$matches[$row['title'] ." [nid:$id]"] = '<div class="reference-autocomplete">'. $row['rendered'] . '</div>';
删除nid 引用。
$matches[$row['title']] = '<div class="reference-autocomplete">'. $row['rendered'] . '</div>';
我相信此时标识符纯粹是装饰性的,这意味着您也可以随意更改文本。如果它不是纯粹的装饰,那么,我还没有测试过在错误的条件下会发生什么。
我一直想确定如何做到这一点。谢谢你用你的问题激励我。
关于drupal - 删除 [nid :n] in nodereference autocomplete,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1515722/