Drupal功能模块是打包站点组件的一种方法,其最终目的是简化迁移。例如,Drupal中的事件部分不仅包含称为事件的节点类型,还包含注释,添加到该节点类型的字段,用户可用的权限,创建的菜单项以及用于以下目的的所有视图周围的所有配置设置。汇总或搜索事件。功能部件可以集成模块依赖性,以便与功能部件一起打包的所有功能都可以在其他系统上使用。
关于功能的主要认识是,它们不用于传输内容,而只是功能块。这个想法是,如果您创建“博客”功能,则可以打包并将其部署到多个站点。
“功能”管理界面中有多个可用部分,因此我想我将一一介绍这些细节,并详细说明每个模块的工作原理以及在使用模块时发现的内容。
这将是系统上创建的所有CCK字段的列表,每个字段都与一个内容类型相关联。您可能不希望使用此字段,因为在“内容类型”部分中选择与内容类型关联的字段时,它们会自动被选中。
功能不会为您的图像字段打包任何默认图像,您必须自己提供这些文件。
如果安装了上下文模块,并且至少创建了一个上下文,则本节可用。它将使用上下文模块的导入导出选项来复制上下文。
使用此部分选择功能需要的任何模块才能正常运行。此处的一项巧妙功能是,如果您从其他部分选择诸如上下文和视图之类的功能,则功能将自动从此列表中为您选择它们。
功能不会选择其他模块,这些模块取决于您选择的模块。例如,单击ImageCacheUI不会自动包含ImageCache或ImageAPI。在这些模块到位之前,您将无法启用创建的功能,因此很有可能在设置时启用从属模块。
我应该指出,功能不会打包依赖模块,只是在没有这些依赖的情况下才允许您启用功能。
功能包括内置支持,其中包括ImageCache预设;只需从列表中选择所需的对象即可。如果您尚未在功能中包括ImageCache模块,那么最好也包括它。
这将允许您包括Drupal安装中包含的所有菜单。我应该指出,它将仅包含创建菜单所需的代码,而不包含菜单的实际内容。这似乎有点多余,但是菜单项肯定位于内容范围内,而不是功能范围内,您也可以从菜单链接部分的每个菜单中选择所需的链接。
您可以选择一个或多个菜单链接包含在功能中。当前,“功能”不会自动选择item(s)与link(s)您选择的菜单有关的菜单。您将必须自己执行此操作。
选择所有曾经创建的菜单链接是没有意义的,因为许多菜单项是由模块和内容输入创建的,因此可能会创建断开的链接。有可能您只需要为每个Drupal项目选择一个或两个菜单项。这些可能是非常具体的菜单项,此时您可能要问自己,“功能”是否是最佳的选择。
这些是Drupal安装中可用的不同类型的节点。这包括由模块创建的节点类型和由用户创建的节点类型,并且两者之间没有区别。例如,您可以包括Webform节点类型,但是“功能”不会尝试包括Webform模块以允许该节点类型工作。
选择内容类型还将包括已定义的字段和字段组。如果仅选择单个字段,则字段组将不可用,因此这就是它们的包含方式。
在功能中包括分类法将仅包括分类法定义(即词汇),而不包括内容(即术语)。这意味着将使用有关分类法的所有内容(包括与之关联的内容类型),而不使用分类法的实际内容。这是一个棘手的问题,因为模块使用了一些分类术语来映射功能(“分类访问控制”是显而易见的),因此必须分别复制这些术语。
从功能部件列表中选择此选项将允许您选择希望包含在功能中的权限。这将既是已被授予访问权限的角色,又是没有被授予访问权限的角色,它们将在您的功能中创建完整的权限图片。
选择的任何权限均基于其角色,因此将忽略在新站点上未创建的角色。因此,如果要确保复制所有内容,则将其与角色设置结合使用非常重要。如果未启用模块,则依赖于模块的所有权限也将被忽略,因此在设置权限时,最好还是包含模块依赖项。
这使您可以选择要包含在功能中的用户角色。
您定义的所有视图都可以在此处包含在功能中。我应该指出,模块创建的任何视图(即使您已覆盖它们)在此列表中也将不可用。我认为,忽略覆盖的视图对于“功能”的工作方式来说是一个明显的漏洞。我只能认为这样做有一个很好的理由,但这确实意味着,如果您要使用默认视图,则需要复制它并确保您的网站在设置默认视图之前就使用了该视图特征。我认为大多数情况下这都不是一个大问题,但是对于有机组织(OG)之类的事物而言,这意味着确保Features和OG本身都在使用正确的视图。
创建功能时,所有组件都保存在不同的文件中,因此通过查看源代码可以很容易地看到其中包含了哪些内容。