2009-10-28 46 views
2

如何从名为sitename_modulename_user_loginblock($ form)的函数中将预处理函数的值传递给template.php?Drupal:将预处理的变量传递给template.php?

我创建了一个自定义查询预处理功能的价值,所以我可以做的是,在loginblock功能本身,但只有$表可那里,我需要等3个变量构造查询。

的loginblock函数返回$输出是标记和几个变量。 afaik在这个函数和在页面上显示它的返回值之间没有额外的步骤?

回答

1

从预处理功能传递到template.php文件填充$瓦尔[]数组,这个键就会在模板中的变量名和值的变量值,以便:

$vars['foo'] = "bar"; 

在预处理功能将与“酒吧”

值模板创建$ foo的我有点困惑你正在尝试做的。理想情况下,logingblock将是一个块,而不是在预处理中创建的东西。你可能想看看这个选项。

+0

我不太确定,但我认为他并不是指将变量传递给模板文件,而是将其替换为主题template.php文件中不可用的函数afaik。 – 2009-10-28 22:36:23

0

杰里米说,它是不是真的清楚自己想要做什么,所以也许你应该修改你的问题澄清。

对我来说,听起来好像要覆盖默认user_login_block()功能与你的主题的template.php的定制版本。如果是这种情况,你不能从预处理函数传递变量,因为那些变量只能为相应的* .tpl.php文件准备变量。

article on overriding form functions可能是有益的,这取决于你想要达到的目标。

这个命名很重要。为了使该功能可以作为替代,您必须将其命名为themename_user_loginblock($form)