1.6 区块(Block):区域与区块
在 Drupal 8 中,与之前的版本一样,我们可以在不同的区域(Region)中添加自定义区块(Block)。通常,一个 Drupal 主题包含以下常见区域:页眉(Header)、第一个与第二个侧边栏(Sidebar)、主要内容(Content)和页脚(Footer)。
让我们前往菜单:Structure(结构) → Block Layout(区块布局)。在默认的 Bartik 主题中,我们可以看到以下区域:
Header(页眉)
Primary menu(主菜单)
Secondary menu(次级菜单)
Highlighted(高亮区域)
Featured top(顶部特色区)
Breadcrumb(面包屑导航)
Content(主要内容)
Sidebar first(第一个侧边栏)
Sidebar second(第二个侧边栏)
Featured bottom first(底部第一特色区)
Featured bottom second(底部第二特色区)
Featured bottom third(底部第三特色区)
Footer first(页脚第一列)
Footer second(页脚第二列)
Footer third(页脚第三列)
Footer fourth(页脚第四列)
Footer fifth(页脚第五列)
我们可以在这些区域中放置任意区块。例如,将 搜索(Search) 区块放在第二个侧边栏(Sidebar second)中:
这样,我们的页面将呈现三栏布局:
如果我们希望创建一个右侧两栏布局(例如出于 SEO 目的),只需将所有区块从第一个侧边栏(Sidebar first)移动到第二个侧边栏即可:
效果如下:
至此,相信你已经熟悉了区块与区域的基本概念。接下来,我们来看一下每个区块都具备的一个重要特性 —— 可见性参数(Visibility Settings)。
有时候,我们希望某个区块仅对管理员可见,例如“添加内容”区块。这时,我们进入“角色(Roles)”选项卡,选择该区块应显示给哪些角色:
我们还可以将区块设置为仅在特定内容类型的页面上显示。例如,我们来配置“搜索(Search)”区块:
这里我们设置为:仅在文章(Article)页面上显示。这样,搜索区块将不会出现在主页或其他内容类型页面上,只会出现在文章页面中。
如果我们希望区块在除首页以外的所有页面显示,则可以使用“Pages(页面)”选项卡。在此示例中,我们将 “Powered by Drupal” 区块设置为仅在非首页页面显示:
这里我们使用 <front>
代表首页。
如果选择“隐藏列表中的页面(Hide for the listed pages)”,则该区块将在除首页外的所有页面显示。
相反,如果想让区块仅在首页显示,则勾选“仅在列出的页面上显示(Show for the listed pages)”。
我们还可以使用通配符 * 符号来定义批量路径,例如:
node/*
— 所有节点页面taxonomy/term/*
— 所有分类术语页面user/*
— 所有用户页面
如果需要设置多个条件,可以在下一行分别输入路径:
此外,还可以组合使用 Page(页面)、Roles(角色) 和 Content Types(内容类型) 条件。例如,可以设置“仅在文章页面且仅对管理员可见”。
区块的基础知识到此为止。在接下来的课程中,我们将学习如何使用 Views 模块 创建自定义区块。现在你可以继续学习下一节内容。