复写规则,实际上就是重写网页样式,为什么要这个规则?举个例子,Drupal8通过控制台可以自动生成一张网页,但是我们希望定制化该网页,并引入第三方动态库实现花里胡哨,哦不,酷炫网页,我们知道该网页没有源码,而是通过编译自动生成的,这时要怎么办?答案就是通过复写规则重写这张网页。

复写规则:按一定规则命名的主题文件,在编译时覆盖掉指定网页,从而实现重写页面的功能。

TWIG文件复写规则

在Drupal8主题目录位于tmplates/目录有许多文件,默认后缀为.html.twig,这些都是支持重写的模板文件。
一、page模板
page.html.twig 所有页面都加载
page—front.html.twig 定义首页HTML模板文件
page—node.html.twig 所有节点
page—node—1.html.twig 定义节点为1的

二、block模板
如果有一个区块,位于help区域,id为2:
block.html.twig 所有区块
block—help.html.twig HELP区域内的区块
block—block.html.twig
block—block.2.html.twig ID为2的区块

三、node模板
node模板除了可以根据路径来确定命名规则外,还可以根据节点类型来确定命名,例如node/3这个文章为article类型:
node—article.html.twig article类型的节点
node—3.html.twig 定义节点为3
drupal默认只有page和node可以直观的通过路径来确定模板名

四、region模板
region.html.twig
region—help.html.twig

五、menu模板
menu—extras.html.twig
menu—footer.html.twig

六、view视图模板
views-view.html.twig
views-view-fields—frontpage.html.twig
views-view-list—frontpage.html.twig

模板的就近原则:当前主题若有合适的模板,就选择当前主题的模板;反之,就选择基主题的模板。