Drupal ändert id von Eingabefeld nach falschem Login
am 03.12.2010 - 14:50 Uhr in
Hallo,
ich habe das Problem was hier schon angesprochen aber nicht beantwortet wurde:
http://drupal.org/node/595500 (Englisch)
Ich möchte ein Formulareingabefeld stylen und mach das über das umgebende div:
Wenn ich jedoch ein falsches Passwort eingebe ändert Drupal die ID von id="edit-pass-wrapper" auf id="edit-pass-1-wrapper" wodurch dann meine CSS-Angaben natürlich nicht mehr greifen.
Ist das so gewollt oder ein Bug?
Ich möchte das Feld inline machen.
Hier der Code wo ich die Form in der template.php zusammenbaue:
function get_user_login_form() {
$form_id = 'user_login';
$form = array();
$form['name'] = array(
'#type' => 'textfield',
'#maxlength' => '30',
'#required' => TRUE,
'#attributes' => array('tabindex' => '1'),
//'#default_value' => t('Nutzername')
);
$form['pass'] = array(
'#type' => 'password',
'#required' => TRUE,
'#attributes' => array('tabindex' => '2'),
);
$form['submit'] = array(
'#type' => 'submit',
'#value' => t('Einloggen'),
'#weight' => 2,
'#attributes' => array('tabindex' => '3')
);
$form['#validate'] = user_login_default_validators();
$form['#build_id'] = sprintf('form-%s', md5(uniqid(mt_rand(), TRUE)));
$form_state = array();
drupal_prepare_form($form_id, $form, $form_state);
drupal_process_form($form_id, $form, $form_state);
$out = new stdClass;
$out->form_start =
sprintf("",url('user/login'));
$out->name = drupal_render($form['name']);
$out->pass = drupal_render($form['pass']);
$out->submit =
drupal_render($form['form_id']) .
drupal_render($form['form_build_id']) .
drupal_render($form['submit']);
return $out;
}
Danke, liebe Grüße,
- Anmelden oder Registrieren um Kommentare zu schreiben

Klasse?
am 07.12.2010 - 02:51 Uhr
In allen Fällen, in denen ich so etwas beobachtet habe, gab es Klassen, über die ich ein Element eindeutig ansprechen konnte - unabhängig von irgendeiner Durchnummerierung.
Und warum baust du das selbst zusammen, kannst du das nicht einfach über so etwas wie
print drupal_get_form('user_register');einfügen?