En utilisant l' API Form et hook_form_alter () , comment puis-je définir (forcer) manuellement les valeurs pour chacun des types de champs de date de Drupal 7 en utilisant un horodatage Unix valide?
Lorsque le formulaire est finalement soumis, les types field_date sont toujours des tableaux vides. Voici le code cassé à partir duquel je travaille.
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();
}
Je dois mentionner que le widget champs est défini sur texte et que son format est «Ymd H: i: s»
J'ai également essayé date('Y-m-d H:i:s', time())
au lieu de time()
.
Exemple de sortie dpm ().
Je dois également noter qu'en guise de solution de contournement, je peux définir le champ si je le modifie dans hook_node_presave (). Pour ce faire, j'ai défini que $node->field_date['und'][0]['value'] = date('Y-m-d H:i:s', $my_unix_timestamp);
je voudrais toujours comprendre comment le faire en utilisant hook_form_alter à la place.
$form['field_date'][LANGUAGE_NONE][0]['#default_value']['value']
?