默认情况下禁用通过配置导入的字段。如何启用它们?

时间:2017-05-11 21:43:30

标签: drupal drupal-8

在Drupal 8的自定义模块中,我可以添加包含其所有字段的新内容类型,但默认情况下禁用所有字段。如何在安装模块期间启用它们?

修改要明确,默认情况下,“管理表单显示”下的模块字段不会启用。如何使用钩子安装等方式启用(或禁用)字段?

编辑2 除了在新创建的内容类型中默认启用字段外,安装此模块还会更新现有内容类型(文章)上的字段,并且这些字段也会被禁用。

编辑3 已停用,表示它们在内容类型的表单显示中显示为已禁用,用户在添加内容时无法看到这些字段。

必须有可以通过hook_install运行的代码,它启用了内容类型的字段吗?

3 个答案:

答案 0 :(得分:0)

我认为“禁用”是指在制作内容类型的实例时不显示字段。

就我个人而言,我一直在使用UI来设置每个字段的显示方式,通过为每种内容类型提供的“管理显示”页面。我像往常一样从禁用部分拖动我想要启用的字段。

当我对字段的排列方式感到满意时,我会使用精彩的内置导出功能(想想Drupal 7中的功能但更好)来为我的内容类型生成.yml配置文件。

Drupal网站上this article精彩地描述了这个过程。在这种情况下,因为它只是我们想要显示哪些字段的配置,它应该像将内容类型的“实体视图显示”配置导出到.yml文件一样简单。 (请注意,您需要正确命名您的yml文件,这在文章中有解释(我认为导出模块无论如何都提供了自动生成的名称)。)

以下是我的某种内容类型的导出内容:Entity view display export

在模块启用后,我生成了我想要应用于Drupal的配置文件,它真的就像在模块的根目录中创建两个目录一样简单:

  

“./配置/安装”

并将配置文件放入安装目录。

现在,首次安装模块时,Drupal将应用/ config / install目录中文件提供的配置。

此过程详见:https://www.drupal.org/docs/8/creating-custom-modules/include-default-configuration-in-your-drupal-8-module

答案 1 :(得分:0)

导出字段时,您还必须导出:

  • “字段声明”field.field.[entity_type].[bundle].[field_name].yml文件。 不要忘记添加重复使用的字段声明
  • “现场存储”field.storage.[entity_type].[field_name].yml档案
  • “表单显示”,您已修改了字段配置。 core.entity_form_display.[entity_type].[budle].default.yml
  • “管理显示”,您已修改了字段配置。 core.entity_view_display.[entity_type].[budle].[view_mode_id].yml个文件(如果您有默认值,预告片等)
  • “实体”,如果实体是new. [entity_type].[type|paragraph_type|vocabulary].[bundle].yml文件

    我建议您使用“drush cex/cim”命令导入和导出配置。

答案 2 :(得分:-1)

我不太了解Drupal 8,但是当我尝试创建自定义内容类型以使用本文时。

https://www.drupal.org/docs/8/api/entity-api/creating-a-custom-content-type-in-drupal-8

然后,当我启用自定义模块时,会成功创建内容类型,并且还会启用内容类型字段。

此外,我尝试在此内容类型中创建节点,然后成功创建节点。

所以请查看这篇文章。

它可能对您有所帮助。

谢谢,