hook_form_alter Problem
Eingetragen von Micha1111 (290)
am 17.10.2010 - 17:54 Uhr in
am 17.10.2010 - 17:54 Uhr in
Ich mache gerade meine ersten Gehversuche mit Drupal 7 und eigenen Modulen.
Nun wollte ich einfach mal die Feldbreite für ein bestimmtes Feld in einem Formular ändern und zwar mit folgendem Code:
<?php
function formulartest_form_alter(&$form, &$form_state, $form_id) {
switch ($form_id) {
case 'spieler_node_form':
$form['spieler_nachname'] = array(
'#size' => 20,
);
break;
}
}
Offensichtlich wird das Formular und das Feld auch angesprochen, allerdings mit der Folge , dass es völlig aus dem Formular verschwunden ist.
Was mache ich falsch ?
- Anmelden oder Registrieren um Kommentare zu schreiben
Glaube bei dir handelt es
am 17.10.2010 - 18:20 Uhr
Glaube bei dir handelt es sich um ein Existierendes Feld in einer Form. Dann kannst du dort direkt das den size value manipulieren indem du Ihn zuweißt.
Mit var_dump($form['spieler_nachname']); kannst du dir das Array für das Form Feld ausgeben lassen damit du weißt wie du es ansprechen kannst.
Thomas Kämmerling
Homepage
Ich habe jetzt mal folges
am 21.10.2010 - 11:15 Uhr
Ich habe jetzt mal folges probiert:
<?php
// $Id: formulartest.module,v 1.6 2010/06/26 00:01:34 rfay Exp $
function formulartest_form_alter(&$form, &$form_state, $form_id) {
switch ($form_id) {
case 'spieler_node_form':
$form['spieler_nachname']['#size'] = 30;
break;
}
}
Bei dieser Variante wird aber die Anweisung ignoriert.
Immer wird das Eingabefeld wieder dargestellt, hilft aber nicht wirklich.
Hat noch jemand eine Idee ?
Kann es sein dass Du dem Feld
am 21.10.2010 - 11:20 Uhr
Kann es sein dass Du dem Feld / den Feldern über CSS eine entsprechende Breite zugewiesen hast?
sense-design | online solutions | Do not hack core!
Drupalcenter Verhaltensregeln | Threads bitte auf [gelöst] stellen.
Nein, das ist es nicht. Ich
am 21.10.2010 - 16:43 Uhr
Nein, das ist es nicht.
Ich habe nur eine D7-Standard-Grundinstalation mit dem Standard-Theme Bartik.
In dessen style.css gibt es keine Formatierungsanweisung für die Breite von Text-Formularfeldern.