4.3 主题

  作者:老葛,北京亚艾元软件有限责任公司,http://www.yaiyuan.com

  我们在前面的Drupal文件结构的分析中,提到过themes文件夹,这里面放置的就是Drupal核心自带的主题。Drupal中的主题主要负责把原始
数据转化为格式化的HTML输出。通常一个Drupal主题,由info文件、模板文件、template.php、CSS文件、JS文件、图片构成。我
们打开一个Drupal主题,比如garland,就会看到在模板文件中,里面包含了html代码片断和PHP变量。主题对外观的控制,就是通过这样的模
板文件和主题函数实现的。除了Drupal核心自带的这些主题外,
Drupal.org还有很多第3方的主题可用,比较常用的有Zen、fusion、tao等等(http://drupal.org/project/themes)。

 

    前面所说的主题,指的是具体的主题。在Drupal中,主题系统,所包含的含义就会更加广泛一些。除了上面的所说的具体的主题外,它还包含Drupal的主
题机制,包含在Drupal核心模块中、第3方模块中的各种模板文件和主题函数,以及Drupal的主题覆写。Drupal通过自己的主题系统,将逻辑层
与表现层作了分离;将逻辑与外观分离,这也是Drupal的最佳实践之一。在
includes文件夹下,有一个theme.inc文件,里面的代码包含了Drupal的主题覆写机制,也包含了各种预处理函数、处理函数、还有常用的主题函数,阅读这些代码,有助于大家熟悉Drupal的主题系统。

 

Drupal
通过主题系统来控制网站的外观,我们可以通过定制自己的主题,来实现自己的具体外观。在定制主题的过程中,对于Drupal核心或者第3方模块的默认输
出,我们通常有两种定制方式:一种就是使用CSS的覆写机制,重新定义CSS规则,保留原有的markup输出;这种方式的优点是,简单方便,缺点就是有
大量的垃圾html输出,在后续过程中,不易复用。另一种方式就是在自己的主题中通过覆写模板与主题函数实现,这样可以完全使用自己的markup输出、
使用自己的CSS规则;这种方式的优点是html代码干净、浏览器兼容性比较好,易于复用,缺点就是比较复杂,前期成本高。


Drupal版本: