3

我有一个表单,并希望以编程方式更改显示在页面顶部的帮助文本。有没有可用的钩子来做到这一点?

编辑:“帮助文本”是指在 CCK 表单中输入的文本:admin/content/node-type/sample-form

在文本框上方,它被标记为:

解释或提交指南:

textarea 有 idedit-help

下面,有文字:

此文本将显示在此内容类型的提交表单的顶部。它对于帮助或指导您的用户很有用。

这足够具体吗?

4

1 回答 1

3

帮助文本由模块hook_help()实现返回,因此要添加您自己的,这将是查看的地方。

至于更改由不同模块设置的帮助文本hook_help(),这有点棘手。看一下theme_help()- 这是通过调用来组装帮助文本的地方menu_get_active_help(),这反过来又调用模块hook_help()实现。

因此,您的第一个选项似乎是覆盖theme_help(),或者通过省略调用menu_get_active_help()并直接设置您自己的值,或者您在返回结果之前进行调用并修改结果。

在该覆盖中确定您的上下文会有点困难,因为该theme_help()函数会为每个呈现的页面调用,并且不提供任何参数,如果您在正确的页面(您想要的表单页面)上,您可以从中获取信息改变)。如果表单页面具有明显可识别的路径结构,您可能必须为此使用arg()函数。

获取帮助文本的第二个选项是稍后一步,通过更改传递给 page.tpl.php 的 $help 变量的内容。您可以实现自己的preprocess_page(&$variables)功能并更改$variables['help']那里的内容。您仍然需要确定您是否在正确的页面上,但是 $variables 数组包含很多可以帮助您的信息。

于 2009-08-23T18:37:50.110 回答