2015-11-29 41 views
0

首先,我知道這不是在D7中這樣做的正確方法,但我需要這樣做。在node.tpl.php中包含帶有函數的文件,並在節點內容上執行它們

我已經包括在node.tpl.php文件:

include DRUPAL_ROOT . '/sites/all/themes/mytheme/inc/node_functions.php'; 

在這個包含的文件我有,後來我想從一個節點的內容體調用一個函數。

目前,如果我從節點內容調用函數,我會得到一個WSOD。我還檢查如果一個節點內容的功能存在中,用PHP函數:

function_exists('name_of_my_function') 

但它返回FALSE,這樣功能沒有在這個「範圍」存在。總之,我想要一個包含/連接到一個節點的有用功能的集合,但是我不想在每次創建一個節點時編寫include/require語句。我只想簡單地'調用'這些函數。那麼,我該怎麼做呢?

在此先感謝。

+0

試着問:http://drupal.stackexchange.com – cleaver

+0

感謝您的意見。我在Drupal Answers中發佈了相同的問題。這是網址,對於可能有趣的人: [Drupal Answers(已解決)中的同樣問題](http://goo.gl/92UB4x) – donbuche

回答

0

我終於寫了一個自定義模塊來達到我的目標。正如@Leonando Tan在DrupalAnswers處注意到我的,有人可以用自定義函數編寫一個模塊(與特定的鉤子無關)。我不知道它,因爲我是新開發的drupal模塊(事實上,這是我的第一個模塊)。

但是,在這種情況下,很容易將我的通用功能包含在模塊中。這樣做,這些功能可以通過所有的網站,所以我隨時隨地撥打/調用它們。

0

你好在template.php文件中使用下面的代碼,爲此你必須使用節點預處理函數。

function THEME_NAME_preprocess_node(&$variables) { 
if(function_exists('FUNCTION_NAME_TO_BE_CALLED')) { 
    include base_path() . path_to_theme() . "/file_to_include.php"; 
} 
} 
function FUNCTION_NAME_TO_BE_CALLED() { 
    echo "hello"; 
} 
相關問題