Używając Form API i hook_form_alter () , w jaki sposób mogę ręcznie ustawić (wymusić) wartości dla każdego typu pola daty Drupala 7, używając prawidłowego znacznika czasu Unix?
Po ostatecznym przesłaniu formularza typy data_pola są zawsze pustymi tablicami. Poniżej znajduje się zepsuty kod, nad którym pracuję.
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();
}
Powinienem wspomnieć, że widget pól jest ustawiony na tekst, a jego format to „Ymd H: i: s”
Próbowałem też date('Y-m-d H:i:s', time())
zamiast time()
.
Przykład danych wyjściowych dpm ().
Powinienem również zauważyć, że jako obejście problemu mogę ustawić pole, jeśli zmodyfikuję je w hook_node_presave (). Aby to zrobić, ustawiłem $node->field_date['und'][0]['value'] = date('Y-m-d H:i:s', $my_unix_timestamp);
nadal chciałbym zrozumieć, jak to zrobić za pomocą hook_form_alter.
$form['field_date'][LANGUAGE_NONE][0]['#default_value']['value']
?