drupal 开发学习记录

webpenson, 29 六月, 2021

Drupal8开发学习

初级阶段:

1,会覆写模板的预处理函数

  • 预处理函数是什么?
    • 预处理函数仅适用于模板形式的主题钩子.它的主要作用是设置模板文件((.tpl.php)中所用到的变量。在预处理器(Preprocessor)中,一般涉及不到普通的主题函数。对于单个主题钩子,可以有多个预处理器。内核,模块,引擎,主题,每层都可以有一个预处理器,来逐步的构建显示在模板文件中的变量集。通过将大部分逻辑放到这些预处理器中,可使得模板文件更加简洁,易于使用。
  • 预处理函数的顺序
    • Drupal的主题机制当中存在很多种预处理函数和处理函数,下面是他们执行的基本规律。

    • Drupal的所有预处理函数在处理函数之前运行。
    • template前缀的函数首先运行,module前缀的函数其次运行,theme前缀的函数最后运行。
    • Drupal的多钩子函数在特定钩子函数之前运行。
    • 下面是预期的预处理器。当它们同时存在时,按照下面的顺序运行:

      • template_preprocess -这个是由内核提供的,也是始终存在的。这里声称的变量在所有的模板钩子中都可以使用.
      • template_preprocess_hook -实现了主题钩子的内核或者模块提供该处理器。特定于某个钩子的变量,通常首先在这里生成。
      • moduleName_preprocess -不要将这个与前面的预处理器混淆了。对于那些最初没有实现钩子的模块,它允许影响变量集。它将在所有的钩子中运行。
      • moduleName_preprocess_hook -和第3个一样,但是特定于某个钩子。
      • engineName_engine_preprocess -主题引擎的预处理器。适用于所有的钩子。
      • engineName_engine_preprocess_hook -主题引擎的另一个预处理器,特定于单个钩子。
      • engineName_preprocess -这是第一个可以在主题内部使用的预处理器。命名方式为,主题所用引擎名称+预处理器名。适用于所有的钩子。
      • engineName_preprocess_hook -这个和第7个一样,但是特定于单个钩子。
      • themeName_preprocess -命名方式为:主题名+预处理器名。适用于所有的钩子。
      • themeName_preprocess_hook -与前者一样,但是特定于单个钩子。
    • 这里有多种方式可修改变量集。在大多数情况下,只有前两个预处理器存在。第一个,添加了所有的默认基本变量,而第2个添加了特定于该主题钩子的变量。第3方模块,如果用到了第3和第4个预处理器的话,需要添加注释对其进行详细说明。这里就不对此展开讨论了。

      尽管可以这样做,但是默认的PHPTemplate没有对变量集进行修改。

      从列表中的第7个开始,所有的预处理器都是放置在主题中的。这个预处理器列表最多是可以超过10个的,那就是使用子主题,子主题是基于第9和第10个预处理的前缀主题名的,但是这种情况在实际中很少用到。

2,会自定义模块,定义菜单+回调 controller

3, 能够通过代码定义区块

4,定义表单区块,或者表单页面

5,能够操作数据库,

 

另外就是:加强主题模板复写的学习:

1,能够复写node 的模板

2,复写views的模板文件

评论