D7: Поле API Поле не сохраняется при использовании hook_form_alter

У меня есть следующее поле (в качестве примера), созданное с помощью Field API, которое прекрасно работает. Как я хочу добавить автозаполнения функциональность (уже работает, здесь не показано), а также настройка значение по умолчанию от $_POST переменная, я начал изменять поле с hook_form_alter,

Изменение поля работает как шарм, НО поле больше не будет спасен к узлу и даже появляется в другом месте в форма редактирования узла.

<?php
function trian_portal_enable() {
// create assigned License field
if (!field_info_field('field_assigned_license')){
$field = array(
'field_name' => 'field_assigned_license',
'type' => 'text',
'cardinality' => 1,
);
field_create_field($field);

$instance = array(
'field_name' => 'field_assigned_license',
'entity_type' => 'node',
'label' => t('Assigned License'),
'bundle' => 'kunden_download',
'description' => t('Enter License assigned to this download'),
'required' => FALSE,
'settings' => array(
// Here you inform either or not you want this field showing up on the user profile edit form.
'kunden_download_node_form' => 1,
),
'widget' => array(
'type' => 'textfield',
),
);
field_create_instance($instance);
}
}

function trian_portal_form_alter(&$form, $form_state, $form_id) {if ($form_id == 'kunden_download_node_form') {$form['field_assigned_license'] = array(
'#title' => t('Assigned Licence'),
'#type' => 'textfield',
'#default_value' => ($_REQUEST['lid']) ? $_REQUEST['lid']: '',
'#required' => ($_REQUEST['lid']) ? 1:0,
);

}
}
?>

0

Решение

Ответ мне дал потрясающий #drupal chanel (спасибо @graper =))

Что плохого в том, что:

$form['field_assigned_license'] = array(
'#title' => t('Assigned Licence'),
'#type' => 'textfield',
'#default_value' => ($_REQUEST['lid']) ? $_REQUEST['lid']: '',
'#required' => ($_REQUEST['lid']) ? 1:0,
);

будет в основном переопределять все, что сохраняется в $form['field_assigned_license'], Правильный подход — просто переопределить определенный параметр, который я хочу, например, $form['field_assigned_customer']['und'][0]['value']['#default_value'] или объединить исходный массив с корректировками.

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]