Drupal文档教程翻译 - 覆写输出 - Drupal主题架构
本站原创编译,转载请给面子,尊重劳动果实,欢迎交流指正。
周一的早上好。淋了一路,全当天然洗个澡,淋淋更健康。上周的最后三篇Drupal文档中文翻译中,我们对模板suggestion做了些许了解,是比较实际有用的东西,希望用的上。今天来看所谓Drupal主题架构,Architectural view of theming。
软件开发方面一个比较常见的概念就是将逻辑层与表现层划分开来;这样做的原因众多,主要一个就是业务逻辑层的创建与视觉表现、用户界面等方面的创建方式迥异...我去。作为主题开发者,你可以控制可用数据的各个方面,但在输出和表现方面却有所受限。
对于Drupal的架构,只有核心和模块会涉及到输入方面的功能。例如某个模块可以以最基础默认的样式输出一个表单给用户进行输入,并将数据保存至数据库。主题负责进一步定制这个表单的具体风格和样式。
这个抽象过程由theme函数贯穿实现,它相当于一个中转,允许主题引擎(theme engines)提为标记语言(如PHPTAL和Smarty)提供一个中间层,同时它还允许主题控制所有涉及到呈现的标记。
主题引擎和标记语言都是可选的,对于Drupal,默认的主题引擎是PHPTemplate,顾名思义,它使用PHP将各种变量输出混合到XHTML标记代码中。
主题引擎可以覆写系统核心和模块的输出,主题本身则可以覆写任何其他的输出。
如果我们可以仅仅通过CSS的手段来达到覆写需求,那么就没必要顾及这些;否则正像我们在“覆写输出”这一档开始时所讲到,找到输出的源头是首先需要做的。
有几点需要反复絮叨一下:
- Drupal系统核心和绝大多数模块扩展都使用主题函数和模板文件进行表现层代码输出。尽最大可能避免在主题层面之外进行系统hack。
- 从前版本中,PHPTemplate主题引擎提供的大部分功能在Drupal 6和7里都已经被集成到更深层的系统核心中了。现在的PHPTemplate更像一个主题开发助手,而非引擎。
译者:Viiiix7210
如需转载,请注明官方英文文 档及本人译文的出处,谢谢。查看英文原文: Architectural view of theming
| < Prev | Next > |
|---|
