我意識到這個問題已被問到,但我要麼根本不明白或以前的答案不適用(或者我不明白如何應用它們)對我的情況。這裏所說:Drupal:從自定義模塊傳遞自定義變量到我的模板
我有一個名爲自定義模塊:
中/網站/所有/模塊/自定義/ my_module 「my_module」
我有一個模塊文件:
/網站/所有/modules/custom/my_module/my_module.module
我有一個頁面模板名稱「頁,我的空間」,這是不是我的模塊中:
/網站/所有/主題/ 的MyTheme /頁 /page-mypath-mypage.tpl.php
我給這個鉤子菜單:
$items['mypath/mypage'] = array(
'title' => 'My Page!',
'page callback' => 'my_module_mypage',
'page arguments' => array(1,2),
'access callback' => true,
'type' => MENU_CALLBACK,
);
在功能方面,我建立了一些內容,像這樣:
function my_module_mypage($x, $y) {
$output = "foo AND bar!";
return $output;
}
在模板(再次,而不是在我的模塊文件夾,但在主題子文件夾「頁」,我有:
<?php print $content ?>
當我去http://mysite/mypath/mypage我得到「富和酒吧!」
現在的問題。我想要一個名爲'$ moar_content'的my_module_mypage()中定義的新變量。我想在我的頁面輸出$ moar_content-mypath-mypage.tpl.php。我只需要爲此模塊和此模板執行此操作。我不需要它在主題範圍內,所以我不認爲使用mytheme的'template.php'是適當的。
我想我需要使用某種預處理,但我嘗試的所有事情都失敗了,而且我讀的所有東西似乎都缺少某種神奇的成分。
我的想法是:
function my_module_preprocess_page_mypath_mypage(&$variables) {
$variables['moar_content'] = 'OATMEAL';
}
或
function my_module_preprocess_my_module_mypage(&$variables) {
$variables['moar_content'] = 'OATMEAL';
}
什麼的。我很確定自己走在正確的軌道上,但是我正在打磚牆。
巨大取決於你使用的Drupal的版本 - 6或7? – Clive
Drupal 6.對不起,我應該提前說過。 – Spanky