2009-10-28 52 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)