尝试使用hook_filter_info()
. 我必须根据当前查看节点的字段进行一些替换。我只是使用以下代码。
return str_replace('%people1%', 'REPLACING WORKING', $text);
在进程回调中,该代码工作正常,但我无法获取当前节点 ID(menu_get_item()
或arg()
)。此外,每次进行一些更改时,我都必须清除缓存('cache' => FALSE
)。
关于在流程回调中处理数据,我有什么需要了解的吗?
尝试使用hook_filter_info()
. 我必须根据当前查看节点的字段进行一些替换。我只是使用以下代码。
return str_replace('%people1%', 'REPLACING WORKING', $text);
在进程回调中,该代码工作正常,但我无法获取当前节点 ID(menu_get_item()
或arg()
)。此外,每次进行一些更改时,我都必须清除缓存('cache' => FALSE
)。
关于在流程回调中处理数据,我有什么需要了解的吗?
menu_get_item()
并且arg()
在从输入过滤器的进程回调调用时不返回不同的值;他们没有返回您期望的值,可能是因为输入过滤器在与您想象的不同的上下文中被调用。
在以下情况下调用输入过滤器:
即使在输入过滤器用于渲染节点主体的情况下,仍然可能存在两种情况:
实现输入过滤器的模块无法理解为哪个实体调用它,并且当前页面的路径不一定提供该信息。例如,我可以有一个模块,它在 mymodule/disclaimer 显示 ID 等于 2 的节点的内容,或者我可以在 example_path/just_to_make_an_example 显示从符合我决定的某些标准的节点中提取的摘录。
如果您需要替换节点正文中的某些单词,例如将 %author% 替换为节点创建者的用户名,您应该实现hook_node_view_alter()。