drupal9视图区块“标题、内容、更多”怎么输出?

使用drupal9开发网站,视图区块是必然会用到的一个功能。不管是静态内容,还是动态内容,都可以通过视图区块来打印输出。
白龙网刚接触drupal9的时候,因为不了解其机制,所以在用视图区块开发的时候,一般会分成三个部分:一是标题部分,用静态区块实现; 二是内容循环输出部分,用VIEW视图实现;三是查看更多部分,又用了一个静态区块实现。用这个方法,效果是实现了,但是后期维护非常的麻烦。
其实,最简单的办法,是一个VIEW视图区块,用一个区块实现即可,然后再通过模板调试、配置视图区块等操作,即可轻松实现标题、内容、更多这3部分功能的打印输出。
一、标题的打印
drupal9的VIEW视图区块的标题是可以直接输出的,根据debug提示,配置对应的模板,即可按照静态页样式原样输出。完全没有必要再制作一个静态区块来额外输出标题。
VIEW视图区块的标题在两个地方可以配置,一是在新建视图区块时,可以自定义视图区块标题;二是放置区块到指定区域时,可以重新命名区块的标题,并且要勾选“Display title”的复选框让标题显示出来。
综上所述,命名视图区块标题->勾选“显示标题”复选框->修改twig模板,就可以快速输出视图区块的标题了。
二、内容的输出
通过视图区循环输出新闻列表,一般来说,可以按照如下思路实现。
1.内容类型
在content中新建一个新闻列表的内容类型article_news,作为视图区块输出的内容源。添加新闻列表需要的字段:文章标题、发布日期、缩略图、来源、作者等。
2.定义区域
在info.yml配置文件中,添加一个区域,用来放置自定义的视图区块。
3.放置变量
在模板对应位置分离出要循环输出的代码,用info.yml配置文件中定义的区域变量来替换。
4.定义区块
在VIEW中新建一个视图区块,以content中定义的article_news作为内容源,其他如标题、输出字段等,根据需求设置、添加。
5.放置区块
在区块布局中,找到新闻列表的区域位置,把上一步自定义的视图区块添加进去。然后重建缓存。
经过以上五步操作,新闻列表就可以正常打印出来了。
三、更多的配置
在网站首页,一般会有新闻列表的功能模块,为了提升用户体验,利于seo优化,新闻列表往往会有一个“查看更多”或者“More”的按钮,用心以引导用户或者搜索引擎蜘蛛进入相关内页。
这里的“查看更多”或者“More”是可以通过配置上面新建的视图区块配置实现的。
1.打开要添加“查看更多”功能的视图区块,点击PAGER菜单,在“More link”中分别勾选“Create more link”、“Always display the more link”选项,在“More link text”中填写你要显示的“查看更多”的标题。保存后,“More link”会由“No”变成“Yes”。
2.在“Link display”中勾选“Custom URL”,给“查看更多”添加一个drupal9的站内地址。例如,填写news,就表示网站的/news/地址,这里需要注意的是,二级目录,直接填写英文名字即可,不要在英文名称前后添加反斜杠/。否则,新闻列表内容是无法输出的。然后保存视图区块配置信息并清理缓存。
3.经过上述配置,前端就可以输出“查询更多”的内容了,但是样式异常。此时根据debug提示,修改对应模板的html结构和class类,即可原样打印“查看更多”按钮。
依次类推,其他相关模块如果需要输出类似“标题、内容、更多”这样的功能,都可以通过该方法来实现。
  页面视图与区块视图可以放到一起,即简化了界面,又提升了效果。
 
  但是,如果是面包屑导航区块,就要单独的创建一个区块来实现。换而言之,如果要自定义面包屑,则可以在不同的列表页,使用不同的视图区块自定义并分别加上链接。
 
  视图区块有视图标题、循环内容、更多详情等内容组成,这三部分内容可以通过调试模板让它们出现在一个区块中,标题用在普通的区块中,可以作标题使用,用在列表页中,可以当面包屑导航使用;循环内容则需要借助相应模板输出;更多详情,可以出现在视图的任何位置,通过定位功能实现即可。

  创建并使用视图区块的时候,当标题或者文本链接向内容时,系统会自动添加一个a标签,这个时候无法通过后台添加a标签的样式,或者类名,可以在自定义的CSS文件中,使用选择器,为该a标签添加样式,或者使用JS为该A标签添加一个类名。或者在模板中为对应标签添加类名。
 
  另外,调试样式时,注意在不同媒介下分别调试;有时候,某些JS/CSS没有加载上来,要检查源码,查看自动添加的CSS/JS,下载并添加到库文件,确保特效正常展示。