Как программно добавить поле в группу в типе материала

Главные вкладки

Аватар пользователя Xor-St Xor-St 2 октября 2014 в 14:19

Пишу модуль. И возникла такая проблема.

Добавляю к типу материала поле. Но мне нужно его сразу разместить в группе созданной модулем field_group.

Не могу понять как это сделать. Помогите плиз.

Комментарии

Аватар пользователя Xor-St Xor-St 2 октября 2014 в 14:27

Moel, Спасибо за ссылку. Но я пока слабоват в понимании всех хуков, не могли бы вы поконкретней сказать,какой хук это делает

Аватар пользователя Xor-St Xor-St 2 октября 2014 в 14:30

Суть в том что группа "Горизонтальная вкладка" уже существует.

Вот таким образом создается поле:

function add_field_to_product_display($voc_field_name, $voc_field_mashine_name,$node_type)
{
    $field = field_info_field($voc_field_mashine_name);
    if (empty($field)) {
        $field = array(
            'field_name' => $voc_field_mashine_name,
            'type' => 'taxonomy_term_reference',
            'settings' => array(
                'allowed_values' => array(
                    array(
                        'vocabulary' => 'voc_name',
                        'parent' => 0,
                    ),
                ),
            ),
            'module' => 'taxonomy',
        );
        $field = field_create_field($field);
    }

    $instance = field_info_instance('node', $voc_field_mashine_name, $type = $node_type);
    if (empty($instance)) {
        $instance = array(
            'field_name' => $voc_field_mashine_name,
            'entity_type' => 'node',
            'bundle' => $type,
            'label' => $voc_field_name,
            'required' => 0,
            'widget' => array(
                'type' => 'taxonomy_autocomplete',
                'module' => 'taxonomy',
            ),
            'display' => array(
                'default' => array(
                    'label' => 'hidden',
                    'type' => 'taxonomy_term_reference_link',
                    'module' => 'taxonomy',
                ),
                'teaser' => array(
                    'label' => 'hidden',
                    'type' => 'hidden',
                ),
            ),
        );
        $instance = field_create_instance($instance);
    }
}