我一直在阅读有关 Drupal 主题和预处理函数的信息,并注意到他们按预处理函数的顺序列出了 engineName _engine_preprocess和engineName _engine_preprocess_hook但我不完全确定引擎层是什么?我了解核心、包含、模块和主题。
非常感谢
我一直在阅读有关 Drupal 主题和预处理函数的信息,并注意到他们按预处理函数的顺序列出了 engineName _engine_preprocess和engineName _engine_preprocess_hook但我不完全确定引擎层是什么?我了解核心、包含、模块和主题。
非常感谢
我试着让它变得非常简单。
Drupal 中的模板引擎是软件组件,它将来自 Drupal 的数据与来自主题的模板结合起来,并向用户显示结果 - 这是最终的 HTML。
+-----------+ +----------------+ | 数据来自 | | 模板来自 | | 德鲁巴 | | 主题 | +-----------+ +----------------+ | | v +--------+ v +--------| 主题|--------+ | 引擎 | +--------+ | v +--------------+ | 最终 HTML | +--------------+
为什么 Drupal 使用主题引擎?因为不同的开发者有不同的编码品味,Drupal 不想直接处理不同的模板“编码风格”。
如果您正在学习 Drupal 主题设计,则无需了解主题引擎设计。现在,几乎所有 Drupal 主题都使用一个引擎:PHPTemplate,在我看来,它非常棒。如果您想设计高级主题,您只需要了解主题引擎 API。对于基本用法,即使 API 知识也不是必须的。
作为一个简单的开始,尝试查看和调整一个简单的 Drupal 主题——比如 Bluemarine
引擎是使用的模板引擎。默认情况下,Drupal 使用PHPTemplate
引擎,但您可以使用其他模板引擎,从而根据引擎类型创建不同的预处理钩子。
模板引擎用于运行模板中的代码。有不同类型的模板引擎允许您在模板中使用不同的语法执行不同的操作,将变量获取到模板的不同方式等。PHPTemplate 使用以.tpl.php
. 所以所有这些都有效,因为有一些代码无法解释它们
阅读有关PHPTemplate的更多信息(一些古老的历史)