Drupal9列表页与内容显示指定的多张图片

  很多时候,我们可能会遇到文章的列表页需要显示多张图片,或者内容页要显示多张图片,抑或是列表页、内容页要显示指定的一张或者多张图片。白龙网实践后,觉得这个功能分两步实现,一是显示多张图片,二是显示指定的图片。
 
  默认Bartik主题下,以drupal9自带的article内容类型为例,来复盘下实现方法。
 
  一、显示多张图片
 
  默认情况下,article内容类型自带的image字段是只可以显示一张图片的。
 
  我们在“管理->结构->内容类型->article->Manage_fields->image”字段的“Field_settings”中,配置“Allowed_number_of_values”的参数:不限制条数、指定条数。选择不限制条数,图片字段就可以上传无数张图片;假如指定条数为5,那么最多可以上传5张图片。
 
  这样,我们就轻松实现了一篇文章可以上传多张图片的功能,通过视图可以把多张图片打印到列表页面;或者在node模板,使用{{content.field_image}}调用多张图片并打印到内容页。
 
  二、显示指定图片
 
  通过上面的操作,我们实现了drupal9后台上传多张图片,在不同页面打印多张图片的功能。接下来,需要借助image_delta_formatter模块,来指定哪些图片可以显示。
 
  1、下载、安装、启用image_delta_formatter模块。
 
  2、打开“管理->结构->内容类型->article->Manage_display”界面,在image字段的“FORMAT”选项中,选择“Image_delta”;接着在“设置”配置delta(指定要显示的图片)、Reversed(倒序排列显示)等参数。
 
  3、然后点“更新”“保存”。
 
  假如delta配置的参数为:0,1,3,则理论上说,drupal9列表页、内容页会显示第1张、第2张、张4张图片。实际应用中,白龙网发现只有内容页显示了第1张、第2张、张4张图片,而列表页依然按照后台上传的顺序、数量显示所有已上传的图片,可能是该模块的debug吧。
 
  那么,基于列表页面无法按照指定图片显示的问题,我们可以在字段中限制图片显示的数量,但是此时,drupal9列表页只能按照图片上传的顺序显示对应数量的图片。