hook_form_alter - это стандартный способ изменения форм.
Вы можете использовать '#access' => FALSE
, если хотите удалить элемент со страницы.Или '#type' => 'hidden'
, чтобы создать скрытое поле формы.Drupal не позволит динамически манипулировать скрытыми полями (или, по крайней мере, тем, которое имеет значение изначально).Если вы хотите скрытое значение, которое может быть изменено клиентским скриптом, попробуйте это:
$form['foo'] = array(
'#type' => 'textfield',
'#attributes'=>array('style'=>"display:none"),
'#default_value' => $node->foo
);