如何创建一个空模块?[关闭]


15

一个人可以在Drupal中创建的最基本的有效模块是什么?

对于刚开始使用Drupal的任何人来说,提供一个简单的蓝图将很有用。

Answers:


26

以下说明允许创建一个空模块,对刚开始构建模块的任何人都非常有帮助。如果您在使第一个模块正常工作或出现在Drupal中时遇到麻烦,请确保已阅读以下所有说明。

Drupal 8

一个project至少必须

  1. 机器名称。
  2. 以计算机名称命名的yaml信息文件,格式为module-machine-name.info.yml具有以下属性:
    1. name: 易读的名称
    2. type:类型,定义为module
    3. core:8.x在这种情况下,模块兼容的主要Drupal核心版本。
  3. 一个空的模块文件,格式为 module-machine-name.module

从Web根目录可以看出,Drupal在这些位置查找模块:

  1. /modules/
  2. sites/[example.com]/modules
  3. sites/default/modules
  4. profiles/[install-profile]/modules

从技术上讲,Drupal也在中寻找模块core/modules,但是绝对不要在其中放置模块,因此不在上面的列表中。

具有机器名称的模块的示例模块结构helloworld如下所示:

/modules/helloworld/helloworld.info.yml

/modules/helloworld/helloworld.module

请注意,信息和模块文件的名称与计算机名称完全相同,这一点很重要。

模块文件可能为空,但是信息文件必须包含一些最小值,Drupal才能将其识别为模块。对于我们的helloworld模块,它可能类似于:

name: 'Hello world module to demonstrate module building'
core: 8.x
type: module

如果您按照上述说明进行操作,则在此阶段您应该可以在Drupal站点中获得一个新模块,尽管它不会做任何事情。

Drupal 7

一个模块必须至少具有

  1. 机器名称。
  2. 易读的名称
  3. 以计算机名称命名的信息文件。
  4. 空模块文件。

要由Drupal加载,它还必须定义与哪个内核版本兼容。

Drupal进一步在以下位置寻找模块:

  1. sites/all/modules/
  2. sites/[example.com]/modules
  3. sites/default/modules
  4. profiles/[install-profile]/modules

从技术上讲,Drupal也在中寻找模块modules,但是绝对不要在其中放置模块,因此不在列表中。

具有机器名称的模块的示例模块结构helloworld如下所示:

sites/all/modules/helloworld/helloworld.info

sites/all/modules/helloworld/helloworld.module

请注意,信息和模块文件的名称与计算机名称完全相同,这一点很重要。

模块文件可以为空,但是信息文件必须包含人类可读的模块名称以及该模块兼容的核心版本。

对于我们的helloworld模块,它可能类似于:

name = Hello world module to demonstrate module building
core = 7.x

如果您按照上述说明进行操作,则在此阶段您应该可以在Drupal站点中获得一个新模块,尽管它不会做任何事情。


而且还sites/default/... 只是说...
tenken

您是完全正确的,已修复它。:)这使我想起我应该检查订单并确保它是正确的。
Letharion

对于drupal 8,您现在只需要module-machine-name.info.yml。.module文件不再需要具有已启用的模块。并不是说它很有用,但有可能:)
2014年

1
D8:不再需要.module和.profile文件。drupal.org/node/2217931
sobi3ch 2015年

1
Drupal 8:那drupal generate:module呢?
Screenack

8

对于Drupal 8,由于问题中提到了一个蓝图,所以我想提到Drupal Console项目。

安装完成后,就可以生成模块代码(以及其他类似自定义实体,插件的脚手架等)。

为了产生通过命令行的基本模块:drupal generate:module。然后提示您进行一些基本信息收集,并在最后留下模块文件:

Drupal控制台模块生成

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.