EEDU Blog: 博客 ·  资讯 ·  论坛 ·  留言
登录 新用户? 注册   |  

ahaoxie's blog

订阅博客:

环境生态网站长

阅读全文

drupal-theme:按照内容类型设计页面布局

说明:

这篇文章介绍如何根据不同的内容类型(content types)进行页面布局(full page layout)。比如说你想让你的blog和books拥有不同的外观。

步骤:

作为一个示例,下面一步一步演示一下如何为网站的blogs,books和首页(front page)拥有不同的页面布局。

首先:

  1. 复制page.tpl.php文件一份副本,将它重命名为page-default.tpl.php
  2. 再做几次相同的工作,分别将其命名为"page-front.tpl.php", "page-blog.tpl.php" 和 "page-book.tpl.php" 等等
  3. 使用编辑器,修改每一个tpl.php文件,按照你的要求进行修改页面布局
  4. 将修改后的tpl-type.php文件(page-front.tpl.php , page-blog.tpl.php 等等)上传到你正在使用的theme目录下

然后:

  1. 用下面这段代码替换page.tpl.php中的内容
  2. 确保theme内有page-default.tpl.php文件
  3. 上传page.tpl.php文件到你现在正在使用的theme目录内,新的页面而已就会自动生效了

Evance注:

  1. 下面的代码片断可以按照新增加/删减的内容类型进行添加/删除。
  2. 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;
  
?>

英文原文: Customising the full page layout and sections based on node type

中文原文:  drupal theme:按照内容类型设计页面布局


发表于: 2011-08-30 21:57 | 全文(查看: 258) | 评论(0) | 本文地址 | 收藏 
分类: 小窍门(95)   标签: drupal  布局  新知  

"drupal-theme:按照内容类型设计页面布局" 的评论: (共 0 条)

你对本文的评论:

登录后再作评论
Page was generated in 16 milliseconds