如何在一个名为sitename_modulename_user_loginblock($ form)的函数中从preprocess函数获取一个值到template.php?
我使用自定义查询在预处理函数中创建了值,所以我可以在loginblock函数本身中执行此操作,但只有$ form可用,我需要3个其他变量来构造查询。
loginblock函数返回$ output,即标记和一些变量。 afaik这个函数和它在页面上显示返回值之间没有额外的步骤吗?
答案 0 :(得分:1)
从预处理函数传递到template.php填充$ vars []数组,您指定的键将是模板中的变量名,值变量值为:
$vars['foo'] = "bar";
预处理函数中的将在模板中创建$ foo,其值为“bar”
我对你要做的事感到有些困惑。理想情况下,logingblock将是一个块,而不是在预处理中创建的东西。您可能想看看该选项。
答案 1 :(得分:0)
正如杰里米所说,你想要做的事情并不是很清楚,所以也许你应该编辑你的问题来澄清。
对我而言,听起来好像要在主题template.php中使用自定义版本覆盖默认的user_login_block()
功能。如果是这种情况,则不能从预处理函数传递变量,因为那些只为相应的* .tpl.php文件准备变量。
此article on overriding form functions可能会有所帮助,具体取决于您希望实现的目标。
命名很重要。要使该函数作为覆盖,您必须将其命名为themename_user_loginblock($form)
。