跳转到主要内容
天空蔚蓝 提交于 27 August 2012

你的模块包含在自身的文件夹中,可以放在Drupal会查找到模块的任何位置,就像你从drupal.org上获取的模块一样。但是,你应该把它放在哪里呢?

你知道你想将它放在sites文件夹中的某个位置,因为你对Drupal发行包所做的每一项自定义的修改都发生在sites目录下。本章遵循将自定义的模块放在“sites/all/modules/custom”里的做法,在第一次放置模块之前,你需要创建这个目录。

注意:当你像第34章中介绍的那样,开始制作自己的发行包时,你可以将模块放置于安装配置文件的目录下。安装配置文件“example_profile”所用到的模块,会被放置在“profiles/example_profile/modules”目录下。

从drupal.org下载的每个模块都可以放到“sites/all/modules/contrib”目录下(正如第4章中关于手动放置模块和通过drush命令下载模块的介绍,一旦你创建了“sites/all/modules/contrib”目录,Drush会自动将从drupal.org下载的模块放置进去)。

另一方面,自定义模块可以放在“sites/all/modules/custom”目录,许多开发人员习惯将自定义模块放在“sites/default/modules/custom”目录,而将第三方模块放在“sites/all/modules”目录。如果不采用Drupal 的多站点机制,这个放置模块倒也没什么不好。(多站点是指通过在“sites”目录下放置另外的文件夹,仅安装一个Drupal来构建多个网站。通常情况下,安装多个Drupal也能够用得很好,并且与使用Drupal的多站点机制相比,前者会更好。然而,面对部署许多Drupal站点的情况,如Aegir(aegirproject.org),安装多个Drupal站点将是份非常繁重且艰辛的工作。有关建立Drupal多站点的说明,请查看任意Drupal安装包根目录下的INSTALL.TXT文件。)

表18-1列出了推荐放置自定义模块的目录。

注意:Drupal在目录中查找模块时,它将非常认真仔细:它将会挖掘目录下的所有子目录,并找出所有可用的模块。因此,如果你将John Albin Wilkin 的Bad Judgment 模块放在“sites/all/modules/contrib/experiment/set_a/johnalbin/amusements/bad_judgment”目录下,当Drupal在“sites/all/modules”目录下查找模块时,它也能找到Bad Judgment模块。但是这并不是说你应该把它或任意其他的模块放在那里。(包含多个模块的模块项目必须使用此功能,以便Drupal能在它们的项目文件夹里找到附带的模块,有的模块会将子模块放在子目录或两级子目录中,如是核心的Field模块就使用这种形式组织子模块。)

18-1. 自定义模块的推荐位置

目录

用途

sites/all/modules/custom/

适用于单站点或应用了多站点机制下的所有站点。

sites/example.com/modules/custom/

适用于多站点机制下的特定的一个站点,如example.com。

sites/default/modules/

适用于单站点放置自定义模块。

 

你将在本地开发站点上开发X-ray模块,(你这样一个的本地站点也称为沙盒站点,它只用于开发测试,而不会发布上线。)

提示:要开发你的模块,你的计算机上应该有一个运行的Drupal站点。如果你还没有,请参阅第12章设置你的开发环境,参阅附录F(Windows),G(Linux)的H(苹果机),或I(跨平台Drupal的Acquia栈安装包)使本地可以运行网页。另外,一些开发者通过SSH或FTP在远程开发服务器上进行工作。

使用命令行                              

你可以使用计算机的图形用户界面(GUI),也可以使用命令行。首先是创建一个“modules”的文件夹,然后里面创建“xray”文件夹,接着打开文本编辑器创建xray.info文件,接着就可以使用命令写入整个文件了。(使用“mkdir”命令创建目录和使用“cd”命令用于切换目录的用法后面将会提到,关于vi 编辑器的命令介绍请查看在线附录:dgd7.org/vi。)

使用命令行是你学习Web开发时可以掌握的特别实用的技能,因为它可以让你查看和编辑服务器(通常是Linux和没有图像用户界面的系统)上的文件。(即便可以,也不要直接编辑在线站点上的文件和代码!)

我想说是:“不要害怕命令行”,但正因为命令行的操作不能被撤消,所以从某种程度上来讲它会让人害怕——因此,这也就是我们为什么会使用版本控制的原因了。就最低的期望来讲:命令行进行Web开发时为你提供了大量实用的、强大的、方便的工具。从Linux的终端,到Mac OS X 中的Termial.app 应用,这些地方都能够使用命令行。

尽管你可以使用带图形界面的文件管理工具(如Mac OS X的Finder或微软Windows资源管理器)来创建文件夹,但是本章将介绍如何使用命令行来做这个事情(见清单18-3)。这将有助于使您更好、更快地开发,而且也可以培养良好的习惯。

清单18-3 通过以下命令来创建“xray”目录和它的父级目录“modules”,然后切换到xray目录下

mkdir -p sites/default/modules/xray

cd sites/default/modules/xray