目录
第一篇入门篇
第1章Drupal介绍
1.1开源内容管理系统
1.2Drupal的特点
1.3Drupal的版本
1.4Drupal 7、8、9版本的区别
1.5Drupal核心概念思想
1.5.1模块
1.5.2节点
1.5.3内容类型
1.5.4字段
1.5.5区块
1.5.6分类
1.5.7实体
1.5.8视图
第2章Drupal开发环境搭建与安装
2.1Drupal的开发环境
2.2UniServerZ安装
2.3Drupal 8安装
2.3.1下载Drupal
2.3.2数据库配置
2.3.3中文化设置
2.3.4安装Drupal 8
2.4Drupal 8后台管理
2.4.1内容
2.4.2结构
2.4.3外观
2.4.4扩展(模块)
2.4.5配置
2.4.6人员
2.4.7报告
2.4.8帮助
第3章模块
3.1模块查找
3.2模块存放的位置
3.3模块下载、安装、使用
3.3.1手动安装
3.3.2系统管理页面下载
3.3.3模块启用与依赖
3.4模块的升级
3.4.1手工升级
3.4.2在线升级
3.4.3使用Drush和Composer工具升级
3.5用Module Filter管理模块
第4章内容管理
4.1Drupal的内容
4.2创建基本页面
4.3内容的修改和删除
4.4内容的修订版本
4.5批量内容的查询、编辑、删除管理
4.6其他内容类型的创建
4.7富文本编辑器
4.7.1使用CKEditor编辑器
4.7.2CKEditor的文本格式修改
第5章内容类型
5.1内容类型的创建
5.1.1创建内容类型
5.1.2内容类型的设置
5.2字段管理
5.3管理表单显示
5.4管理内容显示
第6章内容分类
6.1创建一个Drupal文章分类
6.2引用分类表
6.3修改分类表表单显示
6.4在文章中使用分类
第7章内容显示
7.1系统默认的显示方式
7.2视图模块
7.2.1页面方式
7.2.2显示域
7.2.3格式化显示域
7.2.4过滤器
7.2.5排序
7.2.6页眉页脚
7.2.7分页器
7.2.8上下文过滤器
7.2.9关联
7.3创建视图
7.3.1创建“所有文章列表”视图
7.3.2设置“所有文章列表”页面
7.3.3“所有文章列表”视图显示
7.3.4视图的区块
7.4区块布局
7.4.1演示块区域
7.4.2放置区块组件内容
7.4.3自定义区块库
7.5与内容显示相关模块
7.5.1Ctools模块
7.5.2Panels模块
第8章多媒体内容
8.1视频内容
8.1.1启用Media模块
8.1.2创建视频内容类型
8.1.3安装优酷模块
8.1.4添加优酷字段
8.2创建视频内容
8.2.1创建本地视频内容
8.2.2创建优酷远程视频内容
8.3相册内容
8.3.1创建相册内容类型
8.3.2相册相关模块
8.3.3Juicebox模块安装
8.3.4设置相册幻灯片显示
8.3.5Juicebox相册显示效果
8.3.6相册视图定义Juicebox显示
8.3.7相册视图的显示效果
8.4幻灯片
8.4.1幻灯片相关模块
8.4.2Views Slideshow模块安装
8.4.3创建轮播内容
8.4.4创建视图幻灯片
8.4.5添加一个视图区块
8.4.6“内容: Image”设置
8.4.7改变轮播效果
8.4.8添加轮播控制按钮
8.4.9自定义轮播图片样式
8.4.10文字滚屏
8.4.11幻灯片布局
8.5文件上传下载
8.5.1Drupal的文件系统
8.5.2设置PHP上传文件大小
8.5.3创建内容类型
8.5.4作为资源文件下载
第9章菜单管理
9.1创建菜单
9.2添加菜单项链接
9.2.1通过内容创建生成菜单项
9.2.2通过系统菜单管理添加菜单项
9.3部署菜单
9.4菜单项分级
9.5创建菜单的其他方式
9.5.1通过视图创建菜单
9.5.2通过视图创建标签菜单
9.6菜单的禁用和删除
9.7与菜单相关的模块
9.7.1Nice Menu模块
9.7.2Superfish模块
9.7.3Taxonomy menu模块
9.7.4Pathauto模块
第10章用户、角色与权限
10.1用户管理
10.1.1用户注册与创建
10.1.2用户账号设置
10.1.3用户批量管理
10.2创建角色
10.3赋予角色权限
10.4赋予用户角色
第11章主题
11.1主题模块
11.1.1主题模块安装
11.1.2主题启用
11.1.3主题切换与卸载
11.2主题设置
11.2.1配色方案
11.2.2网站logo与快捷图标
11.2.3第三方主题设置
11.3站点信息设置
第12章页面布局与首页设计
12.1Page Manager和Panels
12.1.1Panel Nodes 和Pages
12.1.2变体与页面管理
12.2创建自定义首页布局
12.2.1创建首页页面(变体)
12.2.2首页布局
12.2.3给首页添加内容
12.2.4重新定义首页URL地址
12.3Layout Builder管理显示
第13章社交
13.1社交分享
13.2阅读统计
13.2.1浏览统计的配置
13.2.2谁可以看到浏览统计
13.2.3热点文章排行
13.3点赞统计
13.3.1Voting API设置
13.3.2LikeBtn模块设置
13.3.3点赞效果
13.4联系表单
13.4.1个人联络表单
13.4.2自定义联络表单
13.4.3创建联络表单菜单
13.4.4通过自定义联络表单发送邮件
13.5Webform表单
13.5.1创建Webform表单
13.5.2发布表单
第14章中文与多语种网站
14.1多语种网站
14.2用户界面翻译
14.2.1翻译包
14.2.2翻译用户界面
14.3创建双语网站
14.3.1添加语言
14.3.2语言检测设置
14.3.3添加语言切换按钮
14.3.4第三方语言切换按钮
14.4内容翻译
14.4.1内容类型增加翻译和语言选择功能
14.4.2语言选择器与内容创建
14.4.3编辑翻译文章
14.4.4其他实体内容的翻译
第15章实用管理模块和Drupal分发版
15.1高级帮助管理
15.2开发管理
15.3分类管理
15.4关联关系管理
15.5批量处理
15.6规则
15.7电子商务
15.8Drupal分发版
第16章移动与PWA设计
16.1响应式移动设计
16.1.1移动优先主题设计
16.1.2移动和桌面应用切换
16.2移动业务相关设计
16.3PWA
16.4基于Drupal后端移动应用开发
第17章产品上线
17.1申请域名
17.2申请托管服务器
17.3安装Drupal到虚拟主机
17.4域名设置
17.4.1域名绑定
17.4.2重定向
17.4.3迁移
17.4.4子域名
17.5Cpanel管理虚拟主机
17.5.1文件管理
17.5.2数据库管理
17.5.3邮件管理
17.5.4监控管理
17.5.5安全服务
第二篇实战篇
第18章在线课程管理系统分析
18.1系统概要
18.2参与者
18.2.1老师角色职能
18.2.2学生角色职能
18.2.3系统管理员角色职能
18.3系统主要功能需求
18.3.1课程管理
18.3.2课程资源管理
18.3.3题库和作业管理
18.3.4课程班级讨论帖管理
18.3.5查询功能
第19章用户与系统角色设计
19.1Drupal内核的用户管理
19.2自定义用户信息
19.3系统用户角色
19.3.1用户角色定义
19.3.2用户角色添加
19.3.3用户注册的角色选择
19.4给用户添加自定义字段
19.4.1添加用户通用字段
19.4.2添加老师和学生用户字段
19.4.3老师和学生用户信息字段加权限
19.5学生和老师用户注册方式
19.5.1给特定角色添加注册页面
19.5.2老师和学生的注册界面
19.5.3老师角色注册需要管理员确认
19.6登录用户查看自己信息
第20章课程、班级和内容设计
20.1课程与教学班级设计
20.2安装群组模块
20.2.1使用Group模块
20.2.2使用OG群组模块
20.2.3OG群组概念
20.3课程群组数据结构设计
20.4创建课程群组内容类型
20.4.1创建课程性质和教研室分类
20.4.2课程小组添加课程性质和教研室分类
20.4.3添加课程图片封面
20.4.4添加其他字段
20.5班级群组数据结构设计
20.6创建班级群组内容类型
20.6.1设置班级群组为课程群组的内容
20.6.2修改字段名称
20.7建立群组与内容关系
20.7.1内容绑定到课程和班级群组
20.7.2设置创建内容链接
20.8群组和内容的创建
20.8.1创建课程实例、发布文章
20.8.2课程小组和文章的发布效果
20.8.3课程群组和文章页面效果
20.9设置群组公有、内容私有
20.9.1设置课程小组公有
20.9.2设置课程小组文章内容私有
第21章课程与班级显示
21.1OG模块默认的视图
21.2OG Extras模块
21.3所有课程列表显示
21.3.1设置课程页面
21.3.2设置课程区块
21.4课程小组下的所有班级列表显示
21.4.1创建班级列表视图
21.4.2设置班级标签菜单
21.4.3设置班级视图页面上下文过滤器
21.4.4班级列表显示效果
第22章课程与班级页面布局设计
22.1构建课程群组页面布局
22.1.1Page manager修改节点模板
22.1.2添加课程群组新变体
22.1.3设置课程变体显示规则
22.1.4定义课程页面布局
22.2给课程变体添加内容
22.2.1添加节点的正文
22.2.2添加“创建内容”面板
22.2.3添加内容面板
22.2.4群组成员列表
22.2.5添加群组成员状态
22.3课程自定义布局
22.4课程小组页面布局显示效果
22.5班级小组布局
22.5.1默认群组节点的显示效果
22.5.2查看Group变体的内容
22.5.3修改Group变体名称为“班级群组布局”
22.5.4修改“班级群组布局”变体的选择规则
22.5.5重新定义“内容”布局
22.5.6选择创建内容链接
22.5.7显示班级所属课程
22.5.8给布局添加样式
22.5.9班级布局效果
第23章题库设计
23.1Quiz模块
23.2Quiz的设置管理
23.3Quiz的基本原理
23.4题库内容类型设置
23.5题型内容类型设置
23.6创建题库实例
23.7添加题型实例
23.7.1独立内容添加题型
23.7.2题库添加题型
23.8题库的题型分类设计
23.8.1以问题“标题”为分类字段
23.8.2通过系统分类术语分类题库问题
23.9在线测验与测验结果
23.10成绩统计
23.10.1统计图模块安装
23.10.2题库修订版本
23.10.3查看题库成绩统计
23.11一些关键设置
23.11.1用户可以测验的次数
23.11.2通过率(及格率)
23.11.3测试开放时间设置
23.12批量题型导入
23.13课程和班级的题库设计
23.13.1课程的题库标签菜单设置
23.13.2班级的题库设置
第24章课程与班级用户权限管理
24.1系统级角色权限分配
24.2系统级角色权限设置
24.3群组角色权限设置
24.3.1群组角色定义
24.3.2群组角色权限设置
24.4群组角色授权管理
24.5班级群组批量学生角色授权
第25章课程多媒体资源库设计
25.1课程大纲结构设计
25.2创建课程大纲内容类型
25.2.1“教学内容及要求”字段
25.2.2富文本编辑器
25.2.3“重点难点”字段
25.2.4文件类型的字段设置
25.2.5视频设计
25.2.6安装ffmpeg
25.2.7安装Zencoder库
25.2.8本地视频字段设置
25.2.9远程视频字段
25.3创建课程大纲实例
25.3.1编辑“教学内容及要求”
25.3.2上传课件和作业模板
25.3.3上传本地和远程课程视频
25.4课程大纲显示效果
25.5课程大纲在课程群组的显示设计
25.5.1大纲文字内容列表
25.5.2课程视频列表
第26章课程资源和消息管理
26.1课程资源管理
26.1.1资源共享设计实现
26.1.2资源分类(标签菜单)设计
26.2老师、学生资源管理
26.2.1学生管理
26.2.2老师管理
26.3题库资源发布与管理
26.3.1课程小组的题库管理
26.3.2班级小组的作业发布
26.4课程大纲、文章和群组帖的发布管理
26.4.1课程大纲的发布管理
26.4.2文章的发布管理
26.4.3群组贴发布管理
26.5消息管理
26.5.1在线课程消息管理设计
26.5.2本地服务器Email测试管理
26.5.3安装设置Mail Safety模块
26.5.4设置消息类型模板
26.5.5定制消息发送规则
26.5.6消息管理测试
26.6消息管理改进
26.6.1群组帖添加“通知字段”
26.6.2修改消息通知规则
第三篇维护篇
第27章Drupal备份与恢复
27.1备份Drupal系统
27.1.1下载Drupal系统文件
27.1.2导出数据库
27.2恢复Drupal系统
27.2.1系统代码恢复
27.2.2导入数据库
第28章Drupal版本迁移
28.1迁移准备
28.1.1系统清单
28.1.2内容清理
28.1.3模块清理
28.1.4用户清理
28.2迁移审查
28.3用Migrate迁移工具
28.4用Drush迁移
第29章Drupal的升级与多网站开发
29.1手工升级Drupal
29.1.1Drupal 7升级
29.1.2Drupal 8升级
29.1.3关于.htaccess和robots.txt
29.1.4update.php
29.2多网站
29.2.1创建多网站
29.2.2多网站更新
29.2.3多网站数据库备份还原
第30章重置MySQL数据库root密码
30.1Linux下的MySQL
30.2UniServerZ下的MySQL
第31章Drupal安全防护
31.1安全审查和基本保护
31.1.1安全审查
31.1.2基本防范
31.2Spambots防范
31.2.1Drupal用户设置
31.2.2使用第三方安全模块
31.3admin账号恢复
第四篇工具篇
第32章WSL开发环境
32.1Windows Subsystem of Linux
32.1.1打开Windows的Linux子系统功能
32.1.2选择安装一个Linux子系统
32.1.3进入Ubuntu终端
32.1.4设置root密码或修改用户密码
32.1.5设置bash属性
32.1.6WSL默认共享目录
32.2安装LAMP
32.2.1升级系统
32.2.2添加PHP软件仓库
32.2.3安装LAMP
32.2.4测试Apache
32.2.5测试PHP
32.2.6启用模块
32.3Apache服务器设置
32.3.1解决WSL网络协议错误问题
32.3.2修改端口号
32.3.3根目录设置
32.3.4虚拟主机设置
32.4MariaDB数据库设置
32.4.1启动MySQL服务
32.4.2打开MySQL终端
32.4.3退出MySQL终端
32.5设置系统自动启动LAMP服务器
32.6安装邮件服务器代理
32.6.1安装Postfix
32.6.2启动邮件服务器
32.6.3发送测试mail
32.7安装FTP文件服务器
32.7.1安装FTP
32.7.2修改设置
32.7.3启动FTP服务
32.8WSL目录文件权限问题
32.9WSL系统下Drupal安装
32.9.1下载和解压Drupal
32.9.2创建数据库和用户
32.9.3settings.php文件设置
32.9.4虚拟主机设置
32.9.5手工安装Drupal
32.10WSL迁移
32.10.1WSL导出
32.10.2WSL导入
32.10.3WSL启动
32.10.4Ubuntu用户切换
32.11WSL升级到WSL2
32.11.1检查Windows 10版本
32.11.2安装Linux内核更新包
32.11.3切换到WSL2环境
32.11.4设置WSL的Linux分发版本为WSL2
32.11.5文件共享问题
32.11.6Web访问问题
32.12Windows 10下文件共享问题
32.12.1文件夹共享设置
32.12.2专用网络设置
32.12.3网络共享设置
第33章Linux虚拟机与容器开发环境
33.1Drupal的虚拟机镜像
33.2VirtualBox开发环境
33.2.1安装VirtualBox
33.2.2安装Drupal虚拟机镜像文件
33.2.3启动Drupal虚拟机
33.2.4安装扩展包
33.3Docker
33.3.1Windows 10下安装Docker
33.3.2Docker基本容器管理命令
33.3.3修改容器镜像文件存放位置
33.3.4修改Docker服务器引擎容器
33.3.5共享磁盘
33.3.6设置国内镜像加速器
33.3.7安装Drupal容器和MariaDB数据库
33.3.8使用dockercompose 安装Drupal项目
33.4Vagrant
33.4.1先安装VirtualBox
33.4.2安装和使用Vagrant
33.4.3基本概念
33.4.4安装基础盒
33.4.5虚拟机操作
33.4.6VDD
33.4.7Drupal VM
33.4.8beetbox
33.5Vagrant的系统性能问题
33.6Vagrant和Docker的比较
第34章Composer和Drush工具
34.1Composer
34.1.1安装Composer
34.1.2安装Drupal项目
34.2Drush
34.2.1Windows 10 安装Drush
34.2.2安装wget或者cURL
34.2.3在Ubuntu中安装Drush
34.2.4下载Drupal项目
34.2.5安装Drupal项目
34.2.6检查Drupal项目的设置
34.2.7安装管理Drupal模块
34.2.8升级Drupal内核和模块
34.2.9备份代码和数据库
34.2.10恢复代码和数据库
34.3Drupal CLI
34.3.1安装Drupal CLI
34.3.2使用Drupal CLI
第35章Web应用开发常用工具
35.1代码编辑器
35.1.1Linux下的编辑器
35.1.2Windows常用编辑器
35.2浏览器调试工具
35.2.1开发者工具
35.2.2浏览器的Web应用开发扩展
35.3文件上传下载工具
35.4Linux服务器控制台
35.4.1开发环境的Linux服务器控制台
35.4.2远程环境的Linux服务器控制台
附录ADrupal常用模块一览表
附录B常用开发工具及服务一览表
致谢