У меня была такая же проблема, и я не мог найти решение. Перепробовав многое, оказалось что-то настолько же простое, насколько и нелогичное. Ну, в глазах новичка в Drupal.
Сначала у меня было что-то вроде этого (урезанная версия):
$element['mymodulefieldset'] = array(
'#title' => 'Fieldset title',
'#type' => 'fieldset',
);
и добавил поля в набор полей:
$element['mymodulefieldset']['fieldname'] = array(
'#title' => "Field title",
'#type' => 'textfield',
'#default_value' => '',
);
Перепробовав множество различных сценариев, я обнаружил, что следующие строки кода работают (вроде как). Вместо того, чтобы вставлять набор полей, я превратил элемент в набор полей следующим образом:
$element += array(
'#type' => 'fieldset',
'#tree' => true
);
Затем я добавил поля к элементу:
$element['fieldname'] = array(
'#title' => "Field title",
'#type' => 'textfield',
'#default_value' => '',
);
NB: некоторые переменные, такие как #title и #weight, контролируются «Главная » Администрирование » Структура » Типы контента » [ВАШ ТИП КОНТЕНТА]», другие (например, #collapsible и #collapsed) могут быть определены здесь.
Надеюсь, что это помогает вам!
person
lmeurs
schedule
13.05.2011