2012-09-04 98 views
0

我需要在預處理函數中初始化一些變量。 我知道頁面模板我可以使用mytheme_preprocess_pageDrupal 7自定義頁面模板的預處理函數

我有一個自定義頁面模板page--mycustompage.tpl.php。我只想爲該模板預處理一些變量。有沒有像mytheme_preprocess_page_mycustompage(&$vars)這樣的選項?

+0

只是恕我直言:這是邏輯不正確。預處理不是一個您應該根據模板建議結果檢查哪些數據可用於哪個模板的地方。如果你想這樣做是因爲訪問控制,那麼你應該在你的模塊代碼中執行它,而不是基於哪個模板被選擇,而是使用哪個URL /哪個用戶登錄/他擁有哪些角色等。你應該把它放在別的地方(在你的模塊等),然後在preprocess()中分配它,而不管選擇了哪個模板。然後,只需在正確的模板中輸出。 –

回答

1

我想你應該嘗試下面的代碼:

function mytheme_preprocess_page(&$vars) 
{ 
    if(arg(0) == "mycustompage" && is_null(arg(1))) 
    { 
     // Your code goes here... 
    } 
} 

請注意,我假設「mycustompage」是路徑到您的網頁。

希望它有效...穆罕默德。