Formular Textfeld zu Liste ändern
am 24.05.2013 - 11:17 Uhr in
Hallo,
für Drupal 6 hatte ich ein Modul, mit welchem ich ein bestimmtes Formular angepasst und validiert hatte...
nun versuche ich das für Drupal 7 anzupassen, bin aber schon in folgenden Punkten gescheitert:
Das Formular hat ein Datumsfeld, von welchem ich das Datumsfeld so lassen möchte, wie definiert (popup). Beim zugehörigen Zeitfeld soll der Benutzer nur aus verfügbaren Optionen auswählen können.
dazu versuche ich, zum Zeitpunkt after_build das time feld folgendermassen zu überschreiben:
$form['field_zeitpunkt'][und][0]['value']['time']=array('#type'=>'select');
$form['field_zeitpunkt'][und][0]['value']['time']['#options']=array('07:45'=>t('07:45 Lektion 1 '),'08:40'=>t('08:40 Lektion 2 '),'09:35'=>t('09:35 Lektion 3 '),'10:35'=>t('10:35 Lektion 4 '),'11:30'=>t('11:30 Lektion 5 '),'12:25'=>t('12:25 Lektion 6 '),'13:20'=>t('13:20 Lektion 7 '),'14:15'=>t('14:15 Lektion 8 '),'15:10'=>t('15:10 Lektion 9 '),'16:05'=>t('16:05 Lektion 10 '),'17:00'=>t('17:00 Lektion 11 '));
das arrayfeld 'time' kommt aber nie in $form_state an. dort bleibt dieses feld leer
währen das unveränderte ['date'] feld mit dem richtigen Wert ankommt
Was mache ich falsch? Was hat sich in diesem Zusammenhang bei Drupal 7 verändert?
Für Hinweise wäre ich sehr dankbar.
Gruss
Adriana
Mein Code sieht so aus (einiges z.B. [und] ist wegen Drupal 7 ergänzt, aber ansonsten hat das für Drupal 6 so ausgesehen und funktioniert...)
function rr_form_alter(&$form, &$form_state, $form_id){
if ($form_id == 'rr_node_form') {
$form['#validate'][] = 'rr_validate_custom';
$form['#after_build'][] = 'rr_after_build';
}
}
function rr_after_build($form, &$form_state) {
$form['field_zeitpunkt'][und][0]['value']['time']=array('#type'=>'select');
$form['field_zeitpunkt'][und][0]['value']['time']['#options']=array('07:45'=>t('07:45 Lektion 1 '),'08:40'=>t('08:40 Lektion 2 '),'09:35'=>t('09:35 Lektion 3 '),'10:35'=>t('10:35 Lektion 4 '),'11:30'=>t('11:30 Lektion 5 '),'12:25'=>t('12:25 Lektion 6 '),'13:20'=>t('13:20 Lektion 7 '),'14:15'=>t('14:15 Lektion 8 '),'15:10'=>t('15:10 Lektion 9 '),'16:05'=>t('16:05 Lektion 10 '),'17:00'=>t('17:00 Lektion 11 '));
$form['field_zeitpunkt'][und][0]['show_todate']=array('#type'=>'hidden');
$form['field_zeitpunkt'][und][0]['value2']['date']=array('#type'=>'hidden');
$form['field_zeitpunkt'][und][0]['value2']['time']=array('#type'=>'hidden');
$form['field_zeitpunkt'][und][0]['value2']['#title_display']='invisible';
return $form;
}
- Anmelden oder Registrieren um Kommentare zu schreiben
Neue Kommentare
vor 6 Stunden 44 Minuten
vor 1 Tag 5 Stunden
vor 1 Tag 8 Stunden
vor 3 Tagen 11 Stunden
vor 3 Tagen 11 Stunden
vor 5 Tagen 6 Stunden
vor 5 Tagen 22 Stunden
vor 5 Tagen 23 Stunden
vor 6 Tagen 7 Stunden
vor 6 Tagen 10 Stunden