Usando l' API Form e hook_form_alter () , come posso impostare (forzare) manualmente i valori per ciascuno dei tipi di campi data di Drupal 7 usando un Timestamp Unix valido?
Quando il modulo viene infine inviato, i tipi field_date sono sempre array vuoti. Di seguito è riportato il codice non funzionante da cui sto lavorando.
hook_form_alter(&$form, &$form_state, $form_id) {
// http://drupal.org/node/1455576 - Date
$form['field_date'][LANGUAGE_NONE][0]['value'] = time();
// http://drupal.org/node/1455576 - Date (ISO Format)
$form['field_date_iso_format'][LANGUAGE_NONE][0]['value'] = time();
// http://drupal.org/node/1455576 - Date (Unix Timestamp)
$form['field_date_unix_timestamp'][LANGUAGE_NONE][0]['value'] =time();
}
Dovrei menzionare che il widget dei campi è impostato su testo e il suo formato è 'Ymd H: i: s'
Ho anche provato date('Y-m-d H:i:s', time())
invece di time()
.
Esempio di uscita dpm ().
Dovrei anche notare che come soluzione alternativa posso impostare il campo se lo modifico in hook_node_presave (). Per fare questo ho impostato $node->field_date['und'][0]['value'] = date('Y-m-d H:i:s', $my_unix_timestamp);
vorrei ancora capire come fare usando hook_form_alter invece.
$form['field_date'][LANGUAGE_NONE][0]['#default_value']['value']
?