Drupal基本概况
Drupal是由Dries Buytaert于2000年基于PHP语言编写的开源内容框架系统(CMF),是最流行内容管理系统和系统创建工具,被称为内容与网站管理的"操作系统"。Drupal其精巧的设计思想,让内容管理变得灵活,富有高度弹性,是进行教育内容创作、信息数据管理及应用发布的绝佳工具。
Drupal典型应用实例
目前,70%全球排名前100名高校(如哈佛、牛津、剑桥、麻省理工等以及国内的清华、北大、港大等)、多国政府机构组织与公司(如美国、法国、英国等国政府机构和Google、FaceBook、华纳影视、迪斯尼、纳斯达克等)以及60%财富500强公司都采用Drupal网站信息发布与内容管理。
- Commerce Kickstart:基于Drupal的强大的电商系统,支持商品发布、资金支付及物流信息跟踪等。
- Opigno LMS:基于Drupal的在线学习管理系统,可实现在线课程与相关管理和发布。
- farmOS:基于Drupal的农业领域应用系统,可实现自动化农场管理功能。
- Tripal:一个以生物信息数据管理为目标的模块开发计划。
更多发行版本,可查看Distribution project 。
Drupal特色与特点
在整体机制上,Drupal具有数据(node)、模块(modules)、区块菜单(block, menu)、用户权限和模板(templates)等5个层面:
- 数据层面:整个系统以node节点数据攒集为基础。而node节点数据又以每种内容型的字段管理和所输入内容为重点。同时,结合内容字段属性管理可实现字段所输入内容的显示功能和效果的管理。
- 模块层面:模块是Drupal功能的一个核心设计。通过模块的扩展,Drupal能实现多种内容、多种页面、多种效果、多种功能的蝶变。Drupal官方所收录的模块已达到4万之众,这是全世界开发者共同努力的结果。
- 区块菜单:区块常常用来控制内容或模块的输出,可通过多种方式和权限,并在主题模板中加以页面位置显示控制。而菜单则是内容的导航与牵引,通过它实现Drupal站点其核心内容的呈现。
- 用户权限:Drupal进行了良好的角色和用户权限设计。借助一些权限功能模块,我们能实现快速而精准的文件、内容与页面权限访问。这种权限可以大到控制访问某一类型、某一组合的内容与页面,也可以小到对某个单一的文件与页面的访问限制。
- 模板主题:页面的显示效果,最终通过Drupal主题来进行控制。模板是主题中的一部分,它由HTML、CSS、JavaScript组成。通过适当的方式,Drupal可实现第三方页面效果的字体、CSS和JavaScript进行调用使用,以达到相应的页面效果。Drupal有一大批开发者提供主题模板开发,其中最著名的莫过于Themeforest,即提供了主题在线预览效果,也提供了主题数据包,特别适合快速Drupal站点搭建。当然,对于那些自行进行主题开发的使用者来说,Drupal Template Helper、TemplateToaster、Online Theme Editor等则提供了便捷工具。
总之,Drupal将字段(Fields)、内容(Content)和节点(Node)等概念充分融入,使之极具弹性和定制能力。而且,Drupal将“模块”(module)带入其中,通过多达40,000个开源功能模块以及菜单、分类、视图、面板和主题机制(theme)可有效实现内容的显示、司改、排列、分类、筛选等操作。加之,Drupal强大活跃的开发社区(活跃贡献用户多达110,540人)、每两年全世界范围内的DrupalCon大会举行,Drupal发展动向俨然成为内容管理技术和互联网新技术(HTML5、CSS3、JavaScript)应用的风向标。
Drupal标准工作流程
Drupal可跨平台运行,特别以Unix/Linux环境运行见长,对网页服务器(如Apache、Nginx和IIS等)和数据库服务器(如MariaDB、MySQL、PostgreSQL、SQLite等)有良好的支持。Apache、Mysql、PHP以及HTML5、CSS3等相关知识将成为深入开发学习的基础。
1. 集成化工具:作为初学者,建议使用此类工具快速获得相应开发运行环境:
- Acquia Dev Desktop:Acquia提供的Drupal开发环境一键部署工具,包含了Apache、Mysql、PHP和Drush等有效组件。
- PHPStorm:JetBrains 公司开发的一款商业的PHP 集成开发工具。现在它已经提供了Drupal开发支持,具体可参看这个页面。
- ddev:一个基于Docker,可在几分钟内轻松部署本地 PHP 开发环境的工具。同时,它可实现每个项目的环境配置的可扩展性、版本控制与共享。
- Bitnami Stack:
在正式应用场景,LAMP(Linux+Apache+Mysql+PHP)和LAPP(Linux+Apache+postgreSQL+PHP)的一体化部署环境往往是最推荐的。
2. Features + Git + Drush:这个是基于上述环境进行的Drupal开发协作方式。
其主要的使流程是,首先使用Drupal后台管理系统进行相应开发配置,再利用Features模块对这些开发配置进行代码导出到固定位置(与git设置目录一致,一般设置为sites/all/modules/custom/features_output 下),然后在目录中使用git add将导出的代码目录上传至代码仓库中。最后,在Drupal正式站点使用git pull方式并配合drush进行快速启用。具体看看这个页面以及这个页面。
Drupal学习资源
https://www.drupal.cn,化解了Drupal缺乏中文资料的尴尬。
参考
https://www.drupal.org/docs/7/understanding-drupal/overview