在安装配置文件中创建字段组

时间:2013-10-31 12:03:06

标签: drupal installation drupal-7 field

在Drupal中,我希望我的附件字段位于垂直选项卡中。我取得了一些进展。我有以下代码:

$field_group = new stdClass();
$field_group->disabled = FALSE; 
$field_group->api_version = 1;
$field_group->identifier = 'group_test|node|foo|form';
$field_group->group_name = 'group_test';
$field_group->entity_type = 'node';
$field_group->bundle = 'foo';
$field_group->mode = 'form';
$field_group->parent_name = '';
$field_group->data = array(
    'label' => 'Test group',
    'weight' => '43',
    'children' => array(),
    'format_type' => 'tab',
    'format_settings' => array(
        'formatter' => 'closed',
        'instance_settings' => array(
            'description' => '',
            'classes' => 'group-test field-group-tab',
            'required_fields' => 1,
        ),
    ),
);

field_group_group_save($field_group);

这在Drupal中添加了一个字段组,现在唯一的问题是没有导入数据值(带有设置的数组)。所以我有一个没有数据的字段组。

据我所知,我使用'ctools bulk exporter'获得了此代码的一部分。

关于如何编辑代码以便我的设置也被导入的任何想法?

1 个答案:

答案 0 :(得分:2)

在D7中,我没有数据'我的$ field_group对象中的成员。您的“数据”下的每个元素都包含在内。成员应该直接在field_group下。以一种不同的格式(为了节省一些打字),我这样做:

$group = (object) array(
  'identifier' => 'group_userprofile_vendor2|user|user|form',
  'group_name' => 'group_userprofile_vendor2',
  'entity_type' => 'user',
  'bundle' => 'user',
  'mode' => 'form',
  'label' => 'Vendor Info',
  'children' => array(),
  'weight' => '300',
  'format_type' => 'tab',
  'format_settings' => array(
    'formatter' => 'closed',
    'instance_settings' => array(
      'description' => '',
      'classes' => '',
      'required_fields' => 1,
    ),
  ),
);
field_group_group_save($group);

另外,如上所述here,如果您已经添加了一次该组,则在您尝试再次执行此操作时会引发错误。我实际测试了上面的代码,然后通过UI删除了组,但是当我再次尝试它时仍然会抛出错误。我最后不得不更改group_name(因此在上面的名称之后的' 2')让它再次运行。因此,您可能希望在调试期间观察它。