token模块:补充核心token功能 在Drupal中提供了token组件,在《云客drupal源码分析》中有讲,该模块进一步加强了token功能,补充实现了token用户接口(便捷集成到表单中,用户点击即可输入token占位符)、表单token占位符验证、补充核心没有的token等等
feeds模块:各类型数据导入 如果你要将保存着数千条信息的表格文件数据导入系统该怎么办?此时就需要feeds模块了,不过该模块的强大功能远远不止这一点,她可以从不同来源获取导入的数据,比如上传的文件、URL、目录等,可以处理多种数据格式,比如CSV、json、XML等等,可以导入到各种实体类型,比如节点、用户、分类术语等等
menu_per_role模块:控制菜单可见性 该模块用于基于角色控制菜单的可见性,注意这只是控制可见性,并不具备访问控制,在Drupal默认安装中,无权访问的菜单会默认不可见,但有时依然需要该模块,比如菜单指向外部链接,又比如有权访问,但无需显示。注意该模块对通过yaml文件或配置(比如视图)提供的菜单无效,仅针对内容菜单实体进行管理
field_permissions模块:字段级权限控制 在默认安装中,Drupal的权限控制只是到了实体级别,该模块将控制细粒度延伸到字段级别,可以在字段的字段设置中(非权限列表)控制创建、修改、查看的权限
user_created_by模块:记录用户账号的创建人 这是一个很简单的模块,安装时会建立一张单独的数据库表,用于记录新建的用户账号是哪一个账号建立的,如果是用户自行注册的,那么建立人会是匿名用户(uid为0),这在有多个角色可以创建用户账户时,用于追踪创建人很有用,该模块提供了视图模块支持,可以在视图中方便显示数据
menu_link_attributes模块:为菜单添加属性值 如果你想在点击菜单链接时,在新窗口打开,怎么设置?默认安装并不支持,此时就能使用该模块了,但该模块功能远非这一点,她可以为菜单链接添加任意的属性,比如class、id、data-*等等,你可以添加任意属性(甚至是自定义的非标准属性),只需要预先通过UI界面提交一个YAML,里面描述了要添加的属性的名字、标签、描述、值、默认值等等,然后当我们添加菜单时,该属性的输入框就会自动出现了
paragraphs模块:在一个实体表单中添加多个相关实体 举个列子:比如要生成一个按天记账的实体,这个实体中包含的每一条账目都是储存在一个单独的实体类型中的,换句话说在记账时可以可以添加多个账目,比如买书花费40元、喝咖啡花费30元,在记账时提交一次,但“书”、“咖啡”这些条目信息被当成单独的实体储存在了单独的实体类型中,此时就需要该模块了,这些条目实体可以用“段落类型”来定义,通过特定的引用字段关联到记账实体中
eck模块:通过UI自动创建实体类型 ECK(全称Entity Construction Kit)模块将Drupal的数据建模推上了一个新高度,你无需写代码,仅通过UI就能建立各种实体类型,以及它们的bundle,任意定义附加的字段等等
facets模块:分面搜索 分面搜索也叫做多面搜索,即是从实体的不同属性维度进行搜索,比如在搜索服装时,维度有性别、尺寸、颜色、品牌、材质等等,其表现形式就是我们常见到的筛选面板,facets模块实现了Drupal的分面搜索,她建立在搜索API模块之上,提供强大的搜索能力,是电商系统必备模块之一
search_api模块:搜索引擎框架 这是一个比核心提供的搜索模块更为强大的搜索模块(Drupal官网即是使用该模块提供搜索功能),准确的说她提供了一个搜索框架,搭配其他与之配套的贡献模块可以实现非常复杂的搜索功能,比如搜索框的自动完成,有筛选面板的搜索(Facets模块)