即时通讯使用自定义模块在example.com/frontpage创建我的主页的内容。
在模块中我运行查询得到我需要的数据,在阵列中。 当我回到主题(“页”,$ my_array)我得到了“网页内网页”,即默认的Drupal标志和站点名称将显示在主内容区域中的第二次。
什么是去了解这一点,创建一个特定的文件tpl.php最好的方式,其内容应该是...?
我意识到它是一个非常普遍的问题,但在2个小时的努力的事情了,阅读教程,香港专业教育学院变得不是很远都...
谢谢
即时通讯使用自定义模块在example.com/frontpage创建我的主页的内容。
在模块中我运行查询得到我需要的数据,在阵列中。 当我回到主题(“页”,$ my_array)我得到了“网页内网页”,即默认的Drupal标志和站点名称将显示在主内容区域中的第二次。
什么是去了解这一点,创建一个特定的文件tpl.php最好的方式,其内容应该是...?
我意识到它是一个非常普遍的问题,但在2个小时的努力的事情了,阅读教程,香港专业教育学院变得不是很远都...
谢谢
如果我正确理解你的问题,你所要做的就是返回的内容,而无需通过运行它theme_page
。 theme_page
需要你的内容并把它封装在网站模板,所以手动调用它在你的情况下被复制的模板。
另一种解决方案是让你的网页的回调函数没有返回值,而不是打印的输出theme_page
。 如果回调函数返回没有文本,该网站的模板不会自动包含。
<?php
function mymodule_menu() {
$items = array();
$items['option1'] = array(
'title' => 'Front page option #1',
'access arguments' => array('access content'),
'page callback' => 'mymodule_option1',
'type' => MENU_CALLBACK,
);
$items['option2'] = array(
'title' => 'Front page option #2',
'access arguments' => array('access content'),
'page callback' => 'mymodule_option2',
'type' => MENU_CALLBACK,
);
return $items;
}
function mymodule_option1() {
// build HTML content here
return $content;
}
function mymodule_option2() {
// build HTML content here
print theme('page', $content);
return null;
}
你可能是比一个自定义模块“若干意见”,为unles网页查询是很奇怪的,观点应该比那种事情的自定义模块更好。
如果你有自己的主题(或愿意创建一个),你还可以使用网页front.tpl.php(如解释在这里 )
是什么在你的模板文件? 是否有可能正在在你的主题的page.tpl.php中呈现的那些元素两次,因为他们被包含了两次,即一次又一次$content
变量(看起来被你的模块产生)?
许多模板文件具有以下结构:
print $head;
print $logo, $search, $navbar, $messages;
print $content;
print $footer, $closure;
如果theme('page', $my_array)
负责创建在$content
变量, $content
已经包括$logo
和朋友,他们会被渲染两次。
第一步我想借此在这种情况下是实现hook_preprocess_page()
在我的主题的template.php文件中,并在一些投掷dsm()
调用(如果你有安装devel模块-你应该),或print_r()
的,看看到底是什么做它的页面模板。
HTH