Drupal8.7.6环境下,编辑/删除文章的方式有2种,一是就地快速编辑内容,显然比较方便;二是到“管理->内容”下找到相关文章,再编辑/删除,文章很多的话,比较麻烦。
当你第一次安装完Drupal8.7.6,上传并打开任意一篇文章的时候,在文章的顶部会出现“查看、编辑、删除、修订版本、开发”的选项卡,点击对应标签,即可快速对文章进行“编辑、删除”等操作,这就是系统自带的就地快速编辑内容功能,非常省心、方便。
但是,如果你的drupal主题是自定义的,那么,系统自带的快速编辑功能就不会出现文章的顶部了。这个时候,需要自定义一个“快速编辑”的视图区块来控制文章的快速编辑了。具体操作如下:
一、定义区域
在zysc.info.yml文件中定义一个区域:edit_delete:'editdelete'
二、放置变量
在前端模板中放置变量:{{page.edit_delete}}
三、定义区块
在“管理->结构->视图”中添加一个视图区块edit_delete,并配置如下属性:
1.字段:Content:用于编辑Content的链接[隐藏]、Content:用于删除Content的链接[隐藏]、全局:定制文本;前面2个字段用于编辑/删除文章,后面一个用于覆写字段;
2.过滤条件:一定在选择该视图区块要控制的节点,如Content:内容类型(=新闻中心);
3.分页器:选1即可;
4.快速编辑/删除功能系统已设置了相应的权限,譬如对管理员可见,其它用户不可见;因此,不需要考虑权限的事儿;
四、放置区块
在“管理->结构->区块布局”的区域中(第1步定义的区域)放置已定义的快速编辑视图区块(第3步定义的视图区块);
五、重建缓存
保存区块,重建缓存,刷新前端页,自定义的快速编辑/删除视图区块显示在前端页面(公管理员可见)。
白龙SEO发现,安装Drupal8.7.6时,系统会自带一个就地编辑内容的区块(QuickEdit),该区块以视图区块的形式存在,所以,在默认主题下可以快速编辑/删除文章。当自定义了主题后,只需要再自定义一个包含编辑/删除功能的视图区块(类似调用快速编辑功能,然后放到需要的位置、区域),即可在对应位置控制自定义主题文章的快速编辑/删除操作了。
有意思的,在drupal官网搜索QuickEdit模块,目前版本只更新到drupal7;换而言之,目前官网上没有drupal8版本的QuickEdit模块;但是,实践发现,drupal8、drupal9都自带了QuickEdit模块,可能这是官网不再更新QuickEdit模块的原因吧。