跳转到主要内容
rli 提交于 8 June 2012

原文链接http://drupal.org/node/1477970

如果您的模块包含了一些可以被视为站点设置的数据结构,您也许需要把它做成可输出的,这样他就可以被储存并且在多站点中应用。添加可输出的设置支持,将使网站管理员能够输出设置,并把它输入到不同的站点。它还能使您模块的数据被features模块, apps模块drupal distributions所包含。

drupal已经有了API使执行可输出的设置变得很直接。在模块开发的初期就把可输出设置考虑进去是很必要的,因为主要的可输出API包含了管理界面的外部支持。用这些API,您可以省去很多用来建立管理界面的代码。

可输出中的概念:机器名,重写,恢复和克隆

跟可输出设置类似的例子是image style和views。在Drupal7中,您可以用UI建立一个image style并输出它,把它用到其他站点或模块代码中去。与之类似,Views模块也包含了对输出view并在代码和数据库中应用的支持。

可输出的数据必须用机器名或者附加的数字ID来辨别。

基本上,可输出的设置可以包含集几种不同的状态。在命名习俗上有少许不同,但是大体包含:

  • Default:设置内容储存在代码里。
  • Normal:设置是通过UI建立的,储存在数据库里。
  • Overridden:设置储存在代码里,但是通过UI来编辑,所以在数据库里也有一个版本,它将取代默认的版本。
对可输出设置的支持大体包含以下的动作:
  • Export:为条目建立一个节点来表示它。
  • Import:基于之前的输出,把条目添加到站点中。
  • Override:制定一个基于代码的条目,建立数据库版本的条目。
  • Revert:删除数据库中的版本,恢复到原来代码中的版本。
  • Clone:基于现有的条目建立一个新的条目。

可输出API

在您的模块中,支持可输出的设置是可行的。Drupal有两个API已经被证明可以辅助这个功能。

可输出的和特征

features模块自动将可输出设置存储到代码。features模块包含了一系列的钩子,可以用来提供各种的特征支持。但是,如果您的可输出设置是基于entity API或者Ctools的,您的实体将自动被features模块所识别,feature的作者也可以把它添加到feature中去。 请参看Features documentation.

可输出设置的未来

在drupal8中可输出设置将默认保存在代码中。