我意识到这个问题已被问到,但我要么根本不明白或以前的答案不适用(或者我不明白如何应用它们)对我的情况。这里所说: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