前言



开发Web网站,我们会发现大多数功能是一样的,例如,在主导航菜单上,几乎都有关于我们(About Us),联系我们(Contact Us)的菜单。如果每次都从底层写代码,浪费很多时间,即使是代码重用,把代码复制到新的项目,也需要做一些修改。所以,针对页面重用问题,出现了内容管理系统(Content Management Systems,CMS)开发平台,来帮助软件开发者尽量少写代码,快速地开发网站。
PHP是Web应用服务器端主流开发语言,基于PHP的CMS开发平台主要有Joomal、WordPress和Drupal,基本都是不用写代码,基于模块化、积木式的Web应用开发平台。Joomal平台,感觉不够灵活,定制好的模块功能,可调整的范围比较小。WordPress平台,起源于博客开发架构,更适合网站开发。Drupal平台,管理更灵活,可控性和可定制性更高,其系统架构比较开放,开发者可以感觉到代码的存在,例如变量、实体(对象)、数据库表的字段,表单结构及UI控件等,Drupal平台更适合构建复杂的Web应用系统。
2009年,编者因为有很多开发网站的需求,在加拿大第一次接触了Drupal。例如,开发华人的音乐培训学校网站,为印度朋友的餐馆设计印度咖喱菜谱网站,给一个老年人用品商店做商品展示系统,给加拿大北极地区的白马镇做了一个华人社区的论坛和二手货买卖系统,还开发了加拿大广西同乡会,加拿大广西总商会网站等。
2013年,慕课在全球爆发,在线学习风行一时,作为南宁学院的科研项目,我们开发了基于Drupal的在线课程与作业管理系统,用来辅助教学工作。系统可以在线发布课程学习资料,在线布置作业。同时,还为北京一家外贸公司开发了一个四种语言(中文、英语、西班牙语和阿拉伯语)的外贸商品展示网站。还把Drupal开发平台引入到“Web软件系统开发综合实训”课程,让学生不用写代码,也可以开发复杂的Web应用系统。
Drupal是基于PHP语言开发的开源CMS平台。其最大优势是开源、模块化,几乎不用写代码,利用第三方模块就可以实现各种功能,来快速开发一个强大的网站、博客、论坛及各种Web应用系统包括在线购物系统。目前Drupal支持116种语言,拥有45000多个开源模块来实现不同功能,成为被全球企业、政府、学校、新闻出版等机构首选的Web开发平台。超过1000万的网站及Web应用使用Drupal平台开发,例如,澳大利亚政府网站、美国NBC电视、Tesla汽车、Puma运动、Twitter和Pinterest社交、Cisco网络、Redhat官网等。
国内有不少Web应用软件开发者和公司也采用Drupal开发平台,并形成了庞大的中国Drupal社区,如Drupal中国(http://drupalchina.cn/),ThinkinDrupal(http://www.thinkindrupal.com/),还有著名的W3School提供的Drupal7在线学习(https://www.w3cschool.cn/doc_drupal_7/)等。
本书分为四部分,入门篇、实战篇、维护篇和工具篇。入门篇介绍Windows开发环境搭建,安装Drupal系统,并介绍Drupal的基本工作原理及概念。例如,内容类型和视图等概念,以后台开发基本功能操作及常用模块的使用管理。入门篇还包括内容类型的创建、显示、管理、内容分类、用视图显示不同的内容列表、用区块管理页面的布局、用户的权限管理、多媒体内容的管理、主题和菜单管理、中文和多语种、电子商务等。实战篇是通过一个在线课程管理系统的开发,来体验无代码开发Web应用系统的乐趣。从系统需求分析开始,对系统的结构进行设计,实现学生、老师和管理员的角色和权限管理,课程和班级管理,教学资源管理,题库管理等功能。本书的在线课程管理系统已经申请软件著作权(证书号: 软著登字第8121356),整个设计思路和实现方法仅供学习参考。维护篇主要介绍Drupal系统的备份与还原,系统常见问题与修复,安全问题的解决方案,还有Drupal系统的升级,迁移管理,以及多网站开发。工具篇主要介绍一些专业的Drupal开发工具,如PHP的命令行工具Composer和Drupal的专用工具Drush管理系统的开发维护,以及Drupal开发专业环境搭建,主要基于Linux开发环境,包括使用VirtualBox虚拟机、Docker、Vagrant和Windows的WSL(Windows的Linux子系统)。同时,也简单介绍了一些常用的Web代码编辑器,Linux服务器远程Web服务器管理工具,Web常用开发调试工具,如浏览器的开发者工具调试及测试Drupal系统。本书附录列出了常用的模块及其官网链接,及常用开发工具及其官网链接。
本书针对的读者群体是对Web应用开发有兴趣但又没有太多软件开发经验的初学者,通过学习本书,读者可以快速开发自己的网站,或创建一个Web应用系统来管理自己的业务,要求初学者基本掌握HTML+CSS+JavaScript语言,且有PHP和SQL数据库基础。同时,本书也可以为现有的Web开发程序员推广和迁移到这个基于开源CMS的平台,改变传统的软件开发方式,通过Drupal来开发各种Web网站和应用系统,感受Drupal开发带来的乐趣,并为Drupal社区分享你的成果和模块。

编者
2021年8月