主题
有了内容,我们就需要考虑如何展示页面,在Drupal里,由主题(Theme)来负责页面内容的展示。
与传统CMS不同的是,Drupal把页面分成不同的区域(Region),经典的页面分隔为头部区域、高亮区域、侧边栏、正文区域、底部区域。在区域里嵌有区块(Block)。每个区块里的内容可以是普通的文本,也可以是通过View模块来组织的内容,也可以是通过自定义模块通过PHP代码生成的。
Drupal主题是以文件夹的形式存在站点目录sites/all/themes或者sites/default/themes下面。其中的.info文件是必须的,类似于项目工程文件,描述了主题元数据(如名称、描述、版本信息)、定义的区域、应包含的样式单文件、应包含的JavaScript脚本文件。如:
name=shmtu2012
description=上海海事大学中文网站2012版
version=1.0
core=7.x
engine=phptemplate
regions[header]=Header
regions[highlighted] = Highlighted
regions[help] = Help
regions[content] = Content
regions[sidebar_first] = Left sidebar
regions[sidebar_second] = Right sidebar
regions[footer] = Footer
regions[banner] = Banner
regions[topnav] = Top Menu Bar
regions[menu] = Menu
regions[news] = News
regions[hp-content] = HomePage Content
regions[hp-banner] = HomePage Banner
features[] = logo
features[] = favicon
features[] = main_menu
features[] = secondary_menu
stylesheets[all][] = smu.css
scripts[] = jquery.masonry.min.js
scripts[] = pngFix/jquery.pngFix.pack.js
主题定义中还有很多模板文件(.tpl.php)。Drupal是基于PHPTemplate引擎来渲染HTML,因此这些模板文件就是嵌入PHP代码的HTML文件。Drupal从HTML到Page、到区域、到区块、到内容类型、到字段都提供了默认的模板文件,用户可以完全覆写这些模板文件。模板文件的命名非常清晰,譬如整体的HTML模板命名为html.tpl.php,对于页面的模板命名为page.tpl.php,对于区块的命名为block.tpl.php。如果对于文件命名有疑问,可以启用Theme developer模块来提示。而对于视图的模板,在视图编辑界面里有详细提示。主题下还有一个template.php文件,该文件内部为纯php代码,用来对输出进行逻辑控制和数据处理,也可以自定义过程,覆盖主题输出,如图2所示。
Drupal提供了子主题的功能,子主题类似于主题,只是它继承了父主题的资源。著名的主题zen、bootstrap、omega等都是父主题,允许用户在此基础上创建自己的子主题。
Zen是一个功能强大的简单的、基于HTML5、采用响应式设计、移动设备优先的格状设计主题。Zen的开发文档很丰富,易于上手,方便了设计者,因此得到了广泛的应用。
Omega也是一个开发者比较喜欢的父主题,它允许开发者通过代码完全控制主题的各方面细节,所以比较适合对Drupal已经熟悉的开发者,部分国外高校的主题基于Omega。
Bootstrap是排名第三的父主题,该主题对接了著名的Bootstrap框架,充分利用了Bootstrap的功能,因此对于响应式设计有诉求的用户可以使用该主题,Bootstrap自带的样式和脚本,也极大的方便了用户快速开发自己的主题。
特别声明:本站注明稿件来源为其他媒体的文/图等稿件均为转载稿,本站转载出于非商业性的教育和科研之目的,并不意味着赞同其观点或证实其内容的真实性。如转载稿涉及版权等问题,请作者在两周内速来电或来函联系。