[gelöst] hook_form_alter -> Änderungen werden nicht umgesetzt
am 07.05.2013 - 16:51 Uhr in
Hallo zusammen,
ich möchte erreichen, dass unangemeldete Nutzer Nodes erstellen können. Diese Nutzer sollen dann aber auch ihre Email-Adresse mit eingeben. Der Inhaltstyp hat nun ein Feld "Email" bekommen und über hook_form_alter möchte ich das Formular anpassen:
function meinmodul_form_alter(&$form, $form_state, $form_id) {
if ($form_id == INHALTSTYP_node_form' && user_is_anonymous()) {
$form['#validate'][] = 'meinmodul_addinhalt_validate';
$form['field_email']['und'][0]['#required'] = TRUE;
$form['field_email']['und'][0]['#description'] = 'Logge Dich ein';
dpm($form);
}
}Die Funktion klappt soweit, wenn ich mit dpm() das Form-Array ausgeben lasse, sind die Werte entsprechend geändert und beim Abspeichern wird meine eigene Validierungsfunktion aufgerufen. ABER: Weder ist das Email-Feld ein Pflichtfeld, noch erscheint bei dem Email-Feld meine Beschreibung. Hat jemand eine Idee, woran ich da gerade scheitere?
Viele Grüße,
Tobias
- Anmelden oder Registrieren um Kommentare zu schreiben

Feld anders ansprechen
am 09.05.2013 - 09:47 Uhr
Probier doch mal
$form['field_email'] = array('#description' => 'Mein Text',
'#required' => TRUE,
);
Na das geht doch nicht, damit
am 10.05.2013 - 11:19 Uhr
Na das geht doch nicht, damit überschreibe ich ja das gesamte Array für das Feld und übrig bleibt lediglich "'description" und "required", alle anderen Werte gehen flöten.
Ok, jetzt habe ich
am 10.05.2013 - 11:32 Uhr
Ok, jetzt habe ich es:
function meinmodul_form_alter(&$form, $form_state, $form_id) {if ($form_id == INHALTSTYP_node_form' && user_is_anonymous()) {
$form['#validate'][] = 'meinmodul_addinhalt_validate';
$form['field_email']['und'][0]['value']['#required'] = TRUE;
$form['field_email']['und'][0]['value']['#description'] = 'Logge Dich ein';
dpm($form);
}
}
Das Array "value" beinhaltet irgendwie noch mal das feld required und so... ist das wirklich gut so????? Was hat sich Drupal denn dabei gedacht?