2.4 文本格式与编辑器
Drupal 8 提供了强大的内容创建与编辑功能,并支持多用户创建内容,同时加强了安全风险防控。Drupal 8 已内置了功能强大又十分好用的CKEditor编辑器,有此编辑器就实现了内容的所见即所得功能,方便用户创建与编辑内容。为了加强对安全的防控,Drupal 8提供了文本过滤模块,这个模块会对用户的输入进行过滤以剔除有害的文本,它也允许站点管理员对每种角色的用户能使用的HTML标签、能使用的编辑器功能进行设置。
点击 管理->配置->文本格式和编辑器 或输入admin/config/content/formats导航到文本格式设置页面。这一页列出了系统内置的文本格式和管理员创建的文本格式。每种文本格式可以配置编辑器和有权使用的角色,它们显示的顺序可以通过拖移来改变,也可以设置各自的权重,权重较大的排在下面,如果一个角色具有多种文本格式,这些格式会按各自的权重排列,在改变文本格式顺序后别忘了点击下面的”保存变更”按钮。
1、 文本格式与编辑器配置
安装时选择标准安装方式,Drupal 8 会为站点创建四种基本的文本格式。
Basic HTML: 基本的HTML,默认使用CKEditor,注册的用户、管理员可以使用此种格式,这种格式的CKEditor将提供一些基本的功能。
Restricted HTML: 受限的HTML,没有配置编辑器,管理员、匿名用户可使用,这种HTML不可使用编辑器,所输入的HTML的标签也是受到限制的,输入未经允许的HTML标签将会被过滤。
Full HTML: 完全的HTML,配置CKEditor,管理员可用,这种格式可以使用所有的HTML标签,但有些标签请谨慎使用,可能会造成安全风险。这种格式一定不能配置给普通用户使用。
Plain text: 纯文本,不使用任何编辑,任何人可以使用,不能使用任何HTML标签,这是最安全的方式。
前三种基本的文本格式是可编辑和禁用的,纯文本格式不能禁用,这个操作不可逆且所有使用这种文本格式的内容将不再显示,请谨慎操作。
一般的网站都有内容编辑用户,现在我们为这类用户创建一种文本格式”内容编辑”。
点击添加文本格式按钮来到添加文本格式页面,在这一页对本文格式进行设置。在名称文本框中输入”内容编辑”,角色栏中勾选”内容编辑”角色,如果没有这种角色,可以到角色管理页面进行创建,这里假定已创建好。
因内容编辑用户要使用到编辑器创建内容,因选择一个编辑器,因为系统中就只有一个CKEditor,选择它。当然可以安装多个编辑器。选择编辑器后,会在下面自动出现工具栏配置,你可以使用拖移的方式在启用的工具栏上添加功能。可以在工具栏上创建新的组,当启用某些插件后,在下方还会出现插件配置菜单。
接下来是设置内容过滤功能,出于安全的考虑,你需要添加过滤器,勾选过滤器以开启它,有的过滤器会出现设置表单,进行相应设置即可。过滤器下方会出现已开启的过滤器,过滤器的执行顺序可以通过拖移或修改权重来修改。
配置好后,点击保存配置。这时我们发现内容编辑格式已经出现在列表中,这表示具用该角色的用户能使用这种文本格式了。
2、 自定义过滤器
如果Drupal 8提供的过滤器不能满足我们的需求,可以自己定制过滤器。 如实现一个\Drupal\module_name\Plugin\Filter\HTMLPurifierFilter类,他继承自FilterBase.
3、 创建自定义CKEditor
CKEditor已经是最好用的网络在线编辑器,其强大的功能,丰富的插件支持,赢得了用户的喜爱。Drupal 8默认已经安装了CKEditor编辑器,其可配置的插件功能虽不多,但基本的文本编辑已经够用。如果觉得现有CKEditor编辑功能不够,可以到CKEditor官网下载标准版、完全版或自定义版,下面我们将介绍自定义下载。
定位到D8中CKEditor目录/core/assets/vendor/ckeditor,目录下有一个名为build-config.js的文件,这个文件的作用是用来创建CKEditor自定义功能的配置文件。这个文件是由CKEditor创建器自动添加的,主要目的是实现再一次创建CKEditor编辑器时重用。这个文件只是在创建CKEditor时使用,其本身在CKEditor中并无作用,因此删除它并不会影响其功能。
定位到CKEditor官网(http://ckeditor.com),点击右上角的Download按钮,进入下载CKEditor编辑器页面。有三个版本可供选择:
Basic Package:基本版,最小化工具栏-17个插件。 Standard Package:标准版,标准工具栏-48个插件。 Full Package:完全版,包含所有特性-72个插件。
任选一个版本,然后点击Download CKEditor按钮下载。下载下来是一个压缩文件,解压后替换掉现有CKEditor即可完成CKEditor功能扩展。
CKEditor除了提供这三个版本之外,还支持自定义创建CKEditor编辑器。在下载页面上点选”Or let me customize CKEditor”,然后点击Customize &Download CKEditor进入自定义CKEditor页面。在这一页你将完成CKEditor的创建设置,分为3步:
1.选择基本包,Basic、Standard或Full。 2.选择需要的插件和皮肤。 3.选择编辑器支持的语言。
最后点选优化(Optimized)选项并点下载。
在这一页你还可以上传创建好的配置文件即先前提到的build-config.js文件进行自动创建配置,我们来修改CKEditor的默认皮肤,找到build-config.js文件,用UE打开,然后查找skin将后面的字符串由moono改为office2013,然后保存,点击自定义下载CKEditor页面的右上角Upload build-config.js按钮,随后会弹出一个文件选择对话框,选择你刚才编辑的build-config.js文件,上传完成后,这一页的设置会根据你的build-config.js文件进行设置,你还可以作必要的修改,最后点击下载按钮进行下载。并将下载下来的压缩包解压,并将其替换掉现有的CKEditor目录,然后你进行Drupal 8,你会发现编辑器的皮肤已变成office2013风格了。