进阶篇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

本书共99小节:

评论 (写第一个评论)