【发布时间】:2011-10-12 05:57:20
【问题描述】:
我知道有人问过这个问题,但我要么根本不明白,要么之前的答案不适用于我的情况(或者我不明白如何应用它们)。如下:
我有一个自定义模块,名为:
/sites/all/modules/custom/my_module 中的“my_module”
我有一个模块文件:
/sites/all/modules/custom/my_module/my_module.module
我有一个页面模板名称“page-mypage”不在我的模块中:
/sites/all/themes/mytheme/pages/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;
}
在模板中(同样,不是在我的模块文件夹中,而是在主题子文件夹“pages”中,我有:
<?php print $content ?>
当我转到 http://mysite/mypath/mypage 时,我得到“foo AND bar!”
现在回答问题。我想要一个在 my_module_mypage() 中定义的新变量,名为“$moar_content”。我想在我的 page-mypath-mypage.tpl.php 中输出 $moar_content。我只需要为这个模块和这个模板做这个。我在主题范围内不需要它,所以我认为使用 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?
-
Drupal 6。抱歉,我应该在前面提到。
标签: drupal drupal-6 preprocessor drupal-modules customization