进阶篇54. Drupal中的排版10——自定义版式
自定义版式,也叫做自定义页面布局——最简单的方法就是在你的模块或者主题里加入一个.layouts.yml文件。
它的前缀是你的主题或者模块的机器名,所以如果你的主题机器名是mytheme,那么这个文件的名称就应该是mytheme.layouts.yml。
这个文件应该放在主题或者模块文件夹的根目录下,并且创建之后需要重建缓存才能生效。
一个简单的例子
one_column:
label: 'One column'
category: 'My Layouts'
template: templates/one-column
default_region: main
regions:
main:
label: Main content
two_column:
label: 'Two column'
category: 'My Layouts'
template: templates/two-column
default_region: main
regions:
main:
label: Main content
sidebar:
label: Sidebar
上面的代码注册了两个不同的版式: "One column(1栏)” 和 "Two column(2栏)”。其中的label和category是不能省略的。
第一个版式声明了一个“Main content”区域,而第二个版式则声明了一个“Main content”区域和一个“sidebar”区域。
template声明的是模板文件,这里不需要写后缀.html.twig。也就是说templates/one-column 指的就是 templates/one-column.html.twig文件。对于每个版式,至少要声明一个模板文件。
然后你可以在模板文件中,通过
{{ content.main }}
{{ content.sidebar }}
来分别打印每一个区域,如下:
<div class="two-column">
<div class="main-region">
{{ content.main }}
</div>
<div class="sidebar-region">
{{ content.sidebar }}
</div>
</div>
以上就是最简单最通用的自定义版式的办法,如果你还需要更高级更详细的解决方案,请阅读官网文档:《How to register layouts》