drupal-theme:按照内容类型设计页面布局
说明:
这篇文章介绍如何根据不同的内容类型(content types)进行页面布局(full page layout)。比如说你想让你的blog和books拥有不同的外观。
步骤:
作为一个示例,下面一步一步演示一下如何为网站的blogs,books和首页(front page)拥有不同的页面布局。
首先:
- 复制page.tpl.php文件一份副本,将它重命名为page-default.tpl.php
- 再做几次相同的工作,分别将其命名为"page-front.tpl.php", "page-blog.tpl.php" 和 "page-book.tpl.php" 等等
- 使用编辑器,修改每一个tpl.php文件,按照你的要求进行修改页面布局
- 将修改后的tpl-type.php文件(page-front.tpl.php , page-blog.tpl.php 等等)上传到你正在使用的theme目录下
然后:
- 用下面这段代码替换page.tpl.php中的内容
- 确保theme内有page-default.tpl.php文件
- 上传page.tpl.php文件到你现在正在使用的theme目录内,新的页面而已就会自动生效了
Evance注:
- 下面的代码片断可以按照新增加/删减的内容类型进行添加/删除。
- page-default.tpl.php文件将会是未指定特定内容类型的布局文件所默认的布局,比如说,按照前期设计要求完成了theme设计。后来可能根据新的需求又增加了新的内容类型,那么它将会使用page-default.tpl.php的布局进行页面组织。
代码:
<?php
/**
* This snippet loads up different page-type.tpl.php layout
* files automatically. For use in a page.tpl.php file.
*/
if
(
$is_front
) {
/* check if it's the front page */
include
'page-front.tpl.php'
;
/*load a custom front-page.tpl.php */
return
; }
if
(
$node
->type ==
'book'
) {
/* check if it's a book page */
include
'page-book.tpl.php'
;
/*load a page-book.tpl.php */
return
; }
if
(
$node
->type ==
'blog'
) {
/* check if it's a blog node */
include
'page-blog.tpl.php'
;
/*load page-blog.tpl.php */
return
; }
if
(
$node
->type ==
'image'
) {
/* check if it's an image node */
include
'page-image.tpl.php'
;
/*load page-image.tpl.php */
return
; }
if
(
$node
->type ==
'forum'
) {
/* check if it's a forum node */
include
'page-forum.tpl.php'
;
/*load page-forum.tpl.php */
return
; }
include
'page-default.tpl.php'
;
/*if none of the above applies, load the page-default.tpl.php */
return
;
?>
<?php
/**
* This snippet loads up different page-type.tpl.php layout
* files automatically. For use in a page.tpl.php file.
*/
if
(
$is_front
) {
/* check if it's the front page */
include
'page-front.tpl.php'
;
/*load a custom front-page.tpl.php */
return
; }
if
(
$node
->type ==
'book'
) {
/* check if it's a book page */
include
'page-book.tpl.php'
;
/*load a page-book.tpl.php */
return
; }
if
(
$node
->type ==
'blog'
) {
/* check if it's a blog node */
include
'page-blog.tpl.php'
;
/*load page-blog.tpl.php */
return
; }
if
(
$node
->type ==
'image'
) {
/* check if it's an image node */
include
'page-image.tpl.php'
;
/*load page-image.tpl.php */
return
; }
if
(
$node
->type ==
'forum'
) {
/* check if it's a forum node */
include
'page-forum.tpl.php'
;
/*load page-forum.tpl.php */
return
; }
include
'page-default.tpl.php'
;
/*if none of the above applies, load the page-default.tpl.php */
return
;
?>
英文原文: Customising the full page layout and sections based on node type
中文原文: drupal theme:按照内容类型设计页面布局
上一篇: Fork CMS
下一篇: Piwigo(开源相册)