模块
Drupal 8 内核模块变化
由 lugir 于 星期三, 11/27/2013 - 15:18 发布距离 Drupal 8 正式发布的时间越来越近,有关 Drupal 8 的咨询和文章也越来越多。除了 Drupal 8 的新特性是大家特别关注的一块之外,D8 中核心模块的变化也是相当引人注意的。
本文整理了 D8 相对于 D7 的一些核心模块变化,包括从核心中移除的模块,也包括加入到核心中的模块,以及因为D8提供了类似模块而无需再使用的第三方模块(关于 D7 相对于 D6 的核心模块变化可阅读《整合到Drupal 7 核心的Drupal 6 模块》一文)
下图为Drupal8 内核语言模块及功能相关规划(点击看大图)
迪原高科(北京)招聘 Drupal 初中级开发人员 | Dilato IT
由 lugir 于 星期一, 06/25/2012 - 13:25 发布迪原高科(北京)招聘初中级 Drupal 开发人员,欢迎熟悉 Drupal 和对 Drupal 有兴趣的朋友加入我们。
工作描述:
- 根据客户需求建立 Drupal 网站、开发 Drupal 模块
职位要求:
- 熟悉 PHP,有PHP项目经验
- 半年左右 Drupal 开发经验
- 基本的英文阅读能力
- 热爱 Drupal 并希望深入学习
其它介绍:
Drupal 模块目录组织结构推荐
由 lugir 于 星期一, 06/18/2012 - 13:41 发布每个 Drupal 站点都会用到一定数量的模块,养成良好的模块组织习惯非常重要,尤其以团队进行某一个项目时,规范的模块目录组织结构能够使站点的开发和维护变得更加容易。经过长时间的项目积累与验证,今天与大家分享一下模块目录结构的组织方式:
sites/all/modules/contrib
sites/all/modules/custom
sites/all/modules/[project_name]
sites/all/modules/dev
模块位置的基本原则
按照惯例,所有非核心的 Drupal 模块都应该放置于 sites 目录下,这样在将来对 Drupal 版本进行升级时才会方便。
分目录组织模块
从上面的目录结构可以看出,我们将模块目录分为第三方模块、自定义模块、项目模块和开发辅助模块。
“第三方模块”是指我们从 Drupal 官网上下载下来的模块,一般而言,我们不会也不推荐修改这些模块。因此将这类模块存放于 contrib 目录进行集中管理。
整合到 Drupal 7 核心的 Drupal 6 模块
由 lugir 于 星期日, 01/01/2012 - 21:04 发布本文档提供了一份模块清单,这些模块有 Drupal 6 版本,在升级到 Drupal 7 之后,这些模块的功能已经部分或已完全被整合到 D7 的核心了。
以个列表还在不断更新,因此并非最终版本,最新版本的原文可以查看《Drupal 6 contributed modules that are in Drupal 7 core》
可卸载的模块
以下这些模块的功能已经包含在 Drupal 7 的核心中,它们的升级不涉及数据迁移。当网站从 D6 升级到 D7 时,可以将这些模块从模块目录下移除。升级完成后,可能需要对这些模块进行重新配置以便恢复 D6 时的功能。(对于包含复杂配置的模块,我们也希望模块维护人员提供自动化升级能力)
Drupal 7 网站常用基础模块推荐列表
由 lugir 于 星期日, 12/25/2011 - 16:06 发布本文档是《Drupal 架构师建站规范》手册的一部分。
文档整理了搭建 Drupal 7 网站时推荐安装的模块,以及对这些模块的简介。Drupal 6 用户可参考《Drupal 6 网站常用基础模块推荐列表》
Drupal 6 网站常用基础模块推荐列表
由 lugir 于 星期二, 12/20/2011 - 15:10 发布本文档是《Drupal 架构师建站规范》手册的一部分。
文档整理了搭建 Drupal 6 网站时推荐安装的模块,以及对这些模块的简介。Drupal 7 用户可参考《Drupal 7 网站常用基础模块推荐列表》
Drupal 模块 master 主分支中的 README.txt 文件示例
由 lugir 于 星期五, 12/02/2011 - 16:10 发布Drupal 模块包中的 README.txt 文件模板
由 lugir 于 星期二, 11/08/2011 - 19:09 发布要写一个符合标准的 Drupal 模块,确实有很多标准需要遵循,下面提供模块中要用到的 README.txt 文件的模板,需要创建 README.txt 文档时复制粘贴再稍作修改就行了。(懒人有懒福,呵呵)
使用模块的 weight 值调整模块加载/调用顺序
由 lugir 于 星期二, 09/13/2011 - 18:02 发布熟悉 Drupal 开发的人都知道 API 中的 hook_xxx 函数是可被调用的钩子函数,比如 book_nodeapi(), comment_nodeapi() 都是应用了 hook_nodeapi() 这个钩子。一般情况下,大家都知道应用钩子后, 应用了钩子的函数就会在调用时执行。但是,一般都不会太关注模块被调用的顺序,比如 book_nodeapi() 和 comment_nodeapi() ,Drupal 是先调用 book_nodeapi(),还是先调用 comment_nodeapi() 呢?
Drupal 在调用模块时,遵循两个顺序,首先是模块的权重,即 weight 值,其次是按模块的名称首字母排序。默认时,book 模块和 comment 的模块权重都为 0,因此这两个模块在被调用时是根据名称首字母来排序,即先调用 book_nodeapi(), 再调用 comment_nodeapi().
大多数情况下,并不需要关心模板的权重,因为模块之前通常都是独立工作,因此模块的调用顺序如何并不会对函数执行的效果形成影响。——不过,在一些情况下,开发人员需要为模块设置一个权重值,以确保某个模块最先被调用,或最后被调用。或者更复杂的调用顺序(当然这种情况就更难遇上了)。