You are here

page.tpl.php

如果你需要创建一个自定义的页面模板,那么你可以复制已有主题中的page.tpl.php文件,或者复制modules/system/page.tpl.php,复制完以后,再按照你的需要对它进行修改。实际上,一个最小的主题,所需要的文件仅仅是.info文件和style.css文件;如果你的主题中没有包含page.tpl.php文件,那么Drupal将使用modules/system/page.tpl.php。对于基本的主题,这可能就是你所想要的了。

    下面是在页面模板中可用的变量:
 
• $base_path: Drupal安装的基本路径。如果安装在根目录下,这是最简单的,它将默认为/。
 
• $body_classes: 一个使用空格分隔的CSS类名的字符串,它将应用于body元素中。使用这些CSS类,可以创建时髦的主题。例如,对于一个节点类型的页面,http://example.com/?q=node/3,$body_classes的值将会是“not-front logged-in page-node node-type-page one-sidebar sidebar-left”。
 
• $breadcrumb:返回页面上用于导航的面包屑的HTML。
 
• $closure:返回hook_footer()的输出,它通常显示在页面的底部。恰好在body的结束标签前面。hook_footer()允许模块在页面的尾部插入HTML或者JavaScript。注意,在hook_footer()中不能使用drupal_add_js()。
 
警告 $closure是一个非常重要的变量,它应该包含在所有的page.tpl.php文件中,这是因为,许多模块都依赖于这个变量。如果没有包含这个变量的话,那么这些模块可能就无法正常工作,因为它们将无法插入它们的HTML或者JavaScript。
 
• $content:返回将要显示的HTML内容。例如,它可以包含一个节点,一组节点,管理界面的内容,等等。
 
• $css:.返回一个数组结构,里面包含了将要添加到页面中的所有css文件。如果你需要$css数组的HTML版本,那么可以使用$styles。
 
• $directory:主题所在的相对路径。例如themes/bluemarine 或者 sites/all/themes/custom/greyscale.。你通常把这个变量和$base_path一起使用,来构建你的站点主题的绝对路径:
 
<?php print $base_path . $directory ?>
将转变为
<?php print '/' . 'sites/all/themes/custom/greyscale' ?>
 
• $feed_icons:为该页面返回RSS种子链接。可以通过drupal_add_feed()来添加RSS种子链接。
 
• $footer: 返回页脚区域的HTML,里面包含了该区域中所有区块的HTML。不要把它与hook_footer()混淆了,后者是一个Drupal钩子函数,用来向变量$closure中添加HTML或者JavaScript,而变量$closure显示在body结束标签的前面。
 
• $footer_message:返回页脚消息文本,可在管理界面“管理➤站点配置➤站点信息”中对它进行设置。
 
• $front_page: 不带参数的url()函数的输出;例如,/drupal/。在链接到一个站点的首页时,使用$front_page来代替$base_path,这是因为在多语言站点上,$front_page变量可以包含语言的域和前缀。
 
• $head:返回放置在<head></head>部分的HTML。模块可以通过调用drupal_set_html_head()来向$head添加额外的标识文本(markup)。
 老葛的Drupal培训班 Think in Drupal

Drupal版本: