Drupal 架构师建站规范

  本《Drupal 架构师建站规范》目的在于定制一套灵活的团队网站建设标准,通过遵循这些文档定义的规范使团队成员能够快速地做出高质量的站点配置,便于团队之间的项目管理、协作与交接,也便于 Drupal 站点的开发、制作与交付。

Drupal 6 网站常用基础模块推荐列表

  本文档是《Drupal 架构师建站规范》手册的一部分。

  文档整理了搭建 Drupal 6 网站时推荐安装的模块,以及对这些模块的简介。Drupal 7 用户可参考《Drupal 7 网站常用基础模块推荐列表

模块名称 简介
admin_menu 详见《Administration menu - 方便灵活的 Drupal 管理菜单
backup_migrate 支持自动化的数据库备份模块,可根据用户自定义配置进行周期性备份工作
better_formats 默认 Drupal 为所有的用户设置一个默认的输入格式,使用 better formats 模块,可以根据不同属性(角色、节点类型等)设置不同的编辑器。
cck 详见《CCK - Content Construction Kit - 内容类型属性字段构建工具
context 核心的区块管理功能非常有限,context 模块为网站管理人员提供方便的区块分配控制机制,使区块能够基于不同的条件(路径、内容类型、角色等)分配到不同的区域
filefield 详见《File Field - CCK 功能扩展的文件上传组件
imagecache 详见《ImageCache - 自动化的图片处理、图片缓存优化模块
imagefield 详见《Image Field - CCK 功能扩展 - 图片上传组件
imce 详见《IMCE - 支持多用户分目录及磁盘配额的文件/图片上传管理工具
imce_wysiwyg IMCE 与 Wysiwyg 模块之间的连接器,为 wysiwyg 提供的所见即所得编辑器添加 IMCE 模块的文件上传功能(需配合 IMCE 模块使用)
l10n_update 自动化模块语言翻译模块,能够自动下载并导入模块的翻译包,非英文网站必备
nodeformsettings Node and Comments form settings 模块,用于修复节点及评论的表单设置,如隐藏节点/评论的“预览”按钮,隐藏评论作者名等等
pathauto 详见《Pathauto - 根据规则自动生成适合SEO效果的路径别名
token 提供各种数据的占位符,pathauto 及其它大量模块依赖于些模块
transliteration 提供将上传文件名转ASCII码的功能,因为标准URL应该只使用ASCII码,这样的文件名可以保证URL的可用性
unlimited_css 此模块用于解决IE不能支持超过 31 个CSS的问题
views 详见《Views - 强大灵活的内容列表生成工具
wysiwyg 详见《WYSIWYG - 所见即所得编辑器接口
...  

以上模块可以在安装网站的时候直接全部安装。下面表格中的模块则根据需要进行添加。

 

SEO 推荐模块

模块名称 简介
nodewords 页面元标签控制模块,SEO 必备(只有D6版本,D7对应模块为 metatag)
page_title 页面标题(不同于文章标题)设置模块,SEO必备
path_redirect 提供链接自动重定向功能,支持301跳转自动设置,再也不必为路径更改发愁了(只有D6版本,D7对应模块为 redirect)
globalredirect 提供一些全局的链接重定向功能,消除多链接对应同一内容页面的问题,如自动将 ?q=node/1 重定向到简洁链接 node/1
...  

 

开发人员推荐模块

模块名称 简介
coder 代码规范检测与提示模块(优秀的开发人员会要求自己遵循代码规范,编写高质量的代码)
demo 为网站提供一个快速的数据库备份和恢复功能,网站开发阶段必备利器
devel 提供多种强大实用的开发人员工具,详细用法和介绍可观看 Lullabot 的视频
devel_themer 主题开发/制作人员必备模块,能够快速找到模板建议(Template Suggestions)和级联函数
...  

 

管理推荐模块

模块名称 简介
taxonomy_manager  
...  

 

其它推荐模块待整理,欢迎大家推荐优秀模块线索 ;)

Drupal 7 网站常用基础模块推荐列表

  本文档是《Drupal 架构师建站规范》手册的一部分。

  文档整理了搭建 Drupal 7 网站时推荐安装的模块,以及对这些模块的简介。Drupal 6 用户可参考《Drupal 6 网站常用基础模块推荐列表

模块名称 简介
admin_menu 详见《Administration menu - 方便灵活的 Drupal 管理菜单
backup_migrate 支持自动化的数据库备份模块,可根据用户自定义配置进行周期性备份工作
better_formats 默认 Drupal 为所有的用户设置一个默认的输入格式,使用 better formats 模块,可以根据不同属性(角色、节点类型等)设置不同的编辑器。
cck D7内置,无需额外安装。详见《CCK - Content Construction Kit - 内容类型属性字段构建工具
context 核心的区块管理功能非常有限,context 模块为网站管理人员提供方便的区块分配控制机制,使区块能够基于不同的条件(路径、内容类型、角色等)分配到不同的区域
filefield D7内置,无需额外安装。详见《File Field - CCK 功能扩展的文件上传组件
imagecache D7内置,无需额外安装。详见《ImageCache - 自动化的图片处理、图片缓存优化模块
imagefield D7内置,无需额外安装。详见《Image Field - CCK 功能扩展 - 图片上传组件
imce 详见《IMCE - 支持多用户分目录及磁盘配额的文件/图片上传管理工具
imce_wysiwyg IMCE 与 Wysiwyg 模块之间的连接器,为 wysiwyg 提供的所见即所得编辑器添加 IMCE 模块的文件上传功能(需配合 IMCE 模块使用)
l10n_update 自动化模块语言翻译模块,能够自动下载并导入模块的翻译包,非英文网站必备
nodeformsettings Node and Comments form settings 模块,用于修复节点及评论的表单设置,如隐藏节点/评论的“预览”按钮,隐藏评论作者名等等
pathauto 详见《Pathauto - 根据规则自动生成适合SEO效果的路径别名
token 提供各种数据的占位符,pathauto 及其它大量模块依赖于些模块
transliteration 提供将上传文件名转ASCII码的功能,因为标准URL应该只使用ASCII码,这样的文件名可以保证URL的可用性
unlimited_css D7 无需此模块。此模块用于解决IE不能支持超过 31 个CSS的问题
views 详见《Views - 强大灵活的内容列表生成工具
wysiwyg 详见《WYSIWYG - 所见即所得编辑器接口
...  

以上模块可以在安装网站的时候直接全部安装。下面表格中的模块则根据需要进行添加。

 

SEO 推荐模块

模块名称 简介
metatag 页面元标签控制模块,SEO 必备(只有D7版本,D6对应模块为 nodewords)
page_title 页面标题(不同于文章标题)设置模块,SEO必备
redirect 提供链接自动重定向功能,支持301跳转自动设置,再也不必为路径更改发愁了(只有D7版本,D6对应模块为 path_redirect)
globalredirect 提供一些全局的链接重定向功能,消除多链接对应同一内容页面的问题,如自动将 ?q=node/1 重定向到简洁链接 node/1
...  

 

开发人员推荐模块

模块名称 简介
coder 代码规范检测与提示模块(优秀的开发人员会要求自己遵循代码规范,编写高质量的代码)
demo 为网站提供一个快速的数据库备份和恢复功能,网站开发阶段必备利器
devel 提供多种强大实用的开发人员工具,详细用法和介绍可观看 Lullabot 的视频
devel_themer 主题开发/制作人员必备模块,能够快速找到模板建议(Template Suggestions)和级联函数
...  

 

管理推荐模块

模块名称 简介
taxonomy_manager  
...  

 

其它推荐模块待整理,欢迎大家推荐优秀模块线索 ;)

用户角色、编辑器及相关配置规范

  本文档是《Drupal 架构师建站规范》手册的一部分。

  文档包含用户角色、输入格式、编辑器及相关配置规范,不同语言的网站请使用对应语言的名称命名。

 

用户角色

(admin/user/roles

创建以下两个新增角色:

网站架构师(Architect)

管理员(Admin)

 

角色成员

  • 网站架构师-默认只应将 user 1(即 Drupal 的超级用户)设置为此角色
  • 管理员-网站交付给客户时的管理员帐号(admin/admin)

 

输入格式(Input Format)

(admin/settings/filters)

根据下表添加输入格式

输入格式名称 角色配置 过滤器配置 备注
架构师编辑器
(Architect)
架构师(Architect) 只勾选 HTML校对(HTLM Corrector) 仅供架构师使用的编辑器,可根据需要启用更多高级过滤器,如PHP过滤器等等
管理员编辑器
(Admin)

架构师(Architect)

管理员(Admin)

只勾选 HTML校对(HTLM Corrector) 网站管理员使用的编辑器,无HTML过滤,支持完整的HTML、CSS和JS
默认编辑器
(Default)
将此输入格式设置为默认

勾选 HTML校对(HTLM Corrector)

勾选 HTML过滤(HTML Filter)

面向网站普通用户的编辑器,有HTML过滤,只支持有限的HTML,不支持CSS和JS

 

WYSIWYG 编辑器配置

-(admin/settings/wysiwyg

安装好 wysiwyg 模块并上传相应的编辑器(TinyMCE, CKEditor 或其它),为不同的输入格式分配编辑器,并根据下表为不同的编辑器进行配置

输入格式 编辑器 编辑器按钮
架构师编辑器
(Architect)
TinyMCE, CKEditor 或其它 可全选(一些基本不用的功能可以不选中)
管理员编辑器
(Admin)
TinyMCE, CKEditor 或其它 大部分编辑功能,如:粗体、斜体、下划线、删除线、左对齐、右对齐、居中、右对齐、两端对齐、无序列表、有序列表、减少缩进、增加缩进、撤消、重做、链接、取消链接、图像、清理、前景色、背景色、剪切、复制、粘贴、清除格式、表格、IMCE (如果安装了 IMCE 及imce_wysiwyg 模块)
默认编辑器
(Default)
TinyMCE, CKEditor 或其它 基本编辑功能,如:粗体、斜体、下划线、删除线、无序列表、有序列表、撤消、重做、图像、清理、剪切、复制、粘贴、清除格式、表格、IMCE(视具体情况是否给用户上传文件的功能)

基本配置(Basic Settings)

可保持默认,或按需进入调整

 

清理及输出(Clearup and output)

注:[x] 表示选中,[ ] 表示不勾选

[x]验证 HTML
[x]预格式化
[ ]将样式转化为<font>标签
[ ]移除换行符
[x]应用源代码格式
[x]强制清理普通粘贴
 

Better Formats 配置

-(admin/settings/filters/defaults)

注:需先安装 Better Formats 模块

按下表进行配置,注意配置时的输入格式的顺序要正确

作用对象 配置
节点
  1. 架构师 - 架构师编辑器
  2. 管理员 - 管理员编辑器
  3. ... (其它 - 站点默认)
评论 保持默认,或根据需要定制
区块
  1. 架构师 - 架构师编辑器
  2. 管理员 - 管理员编辑器
  3. ... (其它 - 站点默认)

 

Drupal 模块目录组织结构推荐

  每个 Drupal 站点都会用到一定数量的模块,养成良好的模块组织习惯非常重要,尤其以团队进行某一个项目时,规范的模块目录组织结构能够使站点的开发和维护变得更加容易。经过长时间的项目积累与验证,今天与大家分享一下模块目录结构的组织方式:

sites/all/modules/contrib
sites/all/modules/custom
sites/all/modules/[project_name]
sites/all/modules/dev

模块位置的基本原则

  按照惯例,所有非核心的 Drupal 模块都应该放置于 sites 目录下,这样在将来对 Drupal 版本进行升级时才会方便。

分目录组织模块

  从上面的目录结构可以看出,我们将模块目录分为第三方模块、自定义模块、项目模块和开发辅助模块。

  “第三方模块”是指我们从 Drupal 官网上下载下来的模块,一般而言,我们不会也不推荐修改这些模块。因此将这类模块存放于 contrib 目录进行集中管理。

  “自定义模块”目录用于存放我们自己创建的通用模块—“通用”是指这个模块拿出来放到其它的Drupal网站也能用,“自定义模块”与“第三方模块”的区别可能只在于能不能通过 drupal.org 进行下载。“自定义模块”目录的另一个作用是存放我们改动某个第三方模块(虽然不推荐个性第三方模块,但有时还是不得不修改它们才便于实现某些功能),那么我们建议将改动的第三方模块移动到 custom 目录下,这样一来,在对模块进行升级前我们会记得对这个模块进行了修改,就可以在升级前制作补丁而避免升级覆盖了修改。

  “项目模块”目录下的模块也属于自定义模块,不同点在于这个目录下的模块是针对某一个项目的特定模块,不具备通用性。除了自定义模块,使用 features 模块导出的针对当前项目的各种功能包也应该放在此目录下。

  “开发模块”目录则用于存放各个作为开发用途的模块。

单独存放开发辅助模块

  在制作 Drupal 站点的过程中,少不了使用各种开发辅助模块,如 devel, devel_themer, demo, simpletest, trace 等等。这些模块对于开发过程非常有帮助,但如果放到生产服务器和测试服务器则不太合适,还会产生不少安全隐患。因此将这些模块单独存放在 dev 目录下,同时也不应该被 git 或其它版本控制软件跟踪,让它们只存在于每个开发人员的开发环境下,即轻便又安全。

CCK 字段命名规则

通用规则

  进行 Drupal 项目时,CCK 字段的命名规则十分重要,通过合理的命名规则,可以避免字段名称冲突,并构建机器名通俗易读的 CCK 字段。

  CCK 字段命名规则为:field_[内容类型英文名]_[字段英文名]

说明

  • 命名规则中的 field_ 为固定前缀,所有 CCK 字段均以 field_ 开头
  • [内容类型英文名],如用于存储产品信息的“产品”内容类型,在字段中,应该使用 product
  • [字段英文名],产品内容类型包含产品的图片,则此字段的英文名可以使用 image 或 preview

  如此一来,当用户在系统中看到 field_product_image 时,便能很快通过字段名称了解到这是与“产品图片”相关的字段。

* 虽然 CCK 在 D7 中已经被整合到 Drupal 核心,但此命名规则对 D7 同样适用。

 

FileField 及 ImageField

  对于添加了 filefield 和 imagefield 字段的内容类型,在配置文件字段时,建议配置字段的文件路径(File Path),以免将所有的文件/图片都上传到 Drupal 文件系统的根目录(默认为 sites/default/files),有关文件路径的设置,可遵循以下规则:

  [内容类型英文名]_[字段英文名]

  如产品图片字段的文件路径可设置为 product_image,这样一来系统便会创建一个 product_image 目录专门存放这些图片,使文件系统更有组织性。