logo

额外区块类型 (EBT) - 全新的布局构建器体验❗

额外区块类型 (EBT) - 样式化、可定制的区块类型:幻灯片、标签页、卡片、手风琴等更多类型。内置背景、DOM Box、JavaScript 插件的设置。立即体验布局构建的未来。

演示 EBT 模块 下载 EBT 模块

❗额外段落类型 (EPT) - 全新的 Paragraphs 体验

额外段落类型 (EPT) - 类似的基于 Paragraph 的模块集合。

演示 EPT 模块 滚动

滚动
18/10/2025, by Ivan

如果你对 Drupal 感兴趣,那么迟早你会接触到 Views 模块。这个模块允许你显示几乎所有 Drupal 中的数据:用户、内容、评论、分类术语等。此外,它还可以显示表格、区块、幻灯片、日历、列表、图表以及其他类型的数据和设计。自 Drupal 8 版本起,该模块已被纳入核心。因此,让我们来了解一下这个模块。

首先需要注意的是这个模块的体积:Views 和 Views UI 模块分别占用了 808 KB 和 3.6 MB。体积非常大,但使用它时并不需要了解其内部工作原理。Views 拥有一个相当庞大的界面,如果你愿意,即使没有编程知识也可以理解它的使用方式。

在 Drupal 菜单中,Views 位于「结构(Structure)」—「视图(Views)」:

drupal 8 views

如你所见,Views 显示了主页、新评论、最近访问网站的用户以及许多其他列表。

让我们进入主页的 View。为此,在 Frontpage 视图行中点击 Edit 按钮。

drupal 8 views

下面我将对每个区块进行描述,并提供对应的文章链接以作进一步了解。

首先,你需要注意 Views 要显示的内容:

drupal 8 views

在此视图中,我们显示的是内容,也就是网站的节点。这也可以是分类术语、评论、用户等等。这个设置在创建视图时就需要确定,之后无法更改,若要修改只能重新创建视图。因此,在创建视图时应明确你要输出的内容。

接下来我们可以设置管理标题(Administrative title),即在视图内部和任何引用该视图的地方显示的名称。而下面的标题则是在网站页面或区块中实际显示的标题。

drupal 8

下面是区块格式。Views 可以通过其他模块扩展,从而增强显示信息的能力。例如,安装 Views Slideshow 模块后,就可以显示幻灯片:

https://www.drupal.org/project/views_slideshow

如果添加 Calendar 模块,就能显示日历:

https://www.drupal.org/project/calendar

类似的模块非常多,你可以通过 Google 搜索 “Drupal views +(你想显示的内容名称)” 来轻松找到所需模块。

默认情况下,我们可以以区块(Unformatted list)、HTML 列表(标签 <ul>, <li>)、网格(无标题的表格)、表格(带标题且可排序)等形式输出内容。

在 “Show” 设置中,我们可以选择以字段(fields)或完整实体(entity)显示数据,也可以使用摘要(teaser)方式显示部分内容。使用摘要非常方便。假设我们有一种标准的商品摘要显示类型:图片、名称、价格和购买按钮。我们希望在多个区块中显示这种商品类型:分类、类似商品、推荐商品、购物车。如果我们不想重复 CSS 样式代码,只需一次性美化摘要的输出,然后在其他视图中重复使用即可。

字段(Fields)

在字段设置中,我们可以从节点中选择字段,如标题和内容。我们还可以在此处理字段输出或对其分组。

过滤条件(Filter criteria)

过滤条件用于限定要显示的数据。例如,只显示已发布的节点或属于某个分类的内容。

排序条件(Sort criteria)

在筛选出所需数据后,我们通常希望对其排序。例如,可以让最新的新闻显示在最上方。

页面设置(Page Settings)

在这里我们可以配置视图页面的访问路径(Path),并设置访问权限,例如仅允许授权用户访问此视图。

页眉与页脚(Header and Footer)

允许在视图的顶部或底部显示数据。而且我们不仅可以插入简单的 HTML,还可以插入视图中的字段,甚至可以将另一个视图嵌入当前视图中。

空结果行为(Failure to conduct)

此部分功能与页眉类似,但它在视图没有返回任何数据时生效。

分页器(Pager)

当列表很长时,我们需要分页器来分割内容。例如,我们有 100 条新闻,但希望每页仅显示 10 条。

语言(Language)

允许为视图选择语言。通常用于多语言网站。

高级(Advanced)

这里开始的是需要更深理解的高级配置部分。

drupal 8 extended

上下文过滤器(Contextual Filters)

上下文过滤器允许根据页面 URL 显示数据。例如,如果 URL 为 node/10,那么这些过滤器将显示 ID 为 10 的节点数据。你可以将此过滤器配置为与用户关联,从而在用户的账户页面中显示该用户创建的节点。

关系(Relationships)

关系是一种强大的工具,它允许显示相关的实体。例如,节点与其评论、分类与属于该分类的节点、用户与他创建的内容等。

公开表单(Exposed form)

这些是为公开的过滤器提供的设置,使用户能够动态更改视图的过滤条件进行搜索。

其他设置(Other settings)

机器名称(Machine name):可以修改为更易读的名称,例如将 page_3 改为 front_news。

管理注释(Administrative comment):用于对该视图进行备注,仅管理员可见。

使用 Ajax(Use Ajax):启用后,分页器可以通过 Ajax 加载页面内容。例如,有 10 条新闻显示在页面上,点击分页器加载下一页 10 条新闻时无需刷新页面。

在摘要中隐藏附件(Hide attachments in summary):允许在摘要中隐藏附加视图。例如在词汇表中,顶部显示字母列表,底部显示相应字母的内容。

上下文链接(Contextual links):用于快速跳转到视图编辑页面。

使用聚合(Use aggregation):用于统计视图中显示的行数。例如,可以计算每个网站部分的节点数量。

查询设置(Query settings):当使用关系连接时,输出记录可能会重复。在这种情况下,可以在此启用 Distinct 选项以去重。

缓存(Caching):视图往往较为耗资源,因此建议对更新频率低的视图进行缓存。

CSS 类(CSS class):可以指定自定义类名,以便更方便地进行主题化样式设计。