Anpassung User-Edit-Form, komme nicht weiter...
am 11.09.2008 - 13:59 Uhr in
Nachdem ich die Ausgabe der User-Profile erfolgreich anpassen konnte, stockt es nun bei der Anpassung des EDIT-Bereiches von den User.
Ich habe bereits folgenden Code in die template.php eingefügt
function phptemplate_user_edit($form) {
return _phptemplate_callback('user_edit', array('form' => $form));
}Und dann eine Datei mit dem Namen user_edit.tpl.php erstellt
Dort habe ich mit dem folgenden Code die Arrays auslesen lassen.
print_r(array_values($form));Nun hatte ich gelesen, dass ich anhand der ausgegeben Parrents die Eingabefelder erstellen kann. Nur ist mir nicht so richtig klar wie.
Ich dachte z.B. der Code für das Feld zum Editieren des Benutzernamens würde wie folgt lauten:
print drupal_render($form['name']);Funktioniert aber nicht.
Kann mir jemand weiter helfen?
Außerdem würde ich gerne noch wissen, wie die ganzen <form>...</form> Angaben aussehen müssen und wohin der Submit/Speicher-Links zeigen muss.
- Anmelden oder Registrieren um Kommentare zu schreiben

Schau Dir mal "theme_form"
am 11.09.2008 - 16:57 Uhr
Schau Dir mal "theme_form" und "theme_form_element" an. Deine Fragen wären aber einfacher zu beantworten, wenn man wüßte wo Du hinwillst.
Viele Grüße
Edmund
------
Drupal Migrationen, Modul- und Themeentwicklung, Drupal Hosting - http://www.katp.de
Ich will einfach nur Bereich
am 11.09.2008 - 17:05 Uhr
Ich will einfach nur den Bereich user/xx/edit verschönern und an mein Theme anpassen. Sprich die Rahmen weg, Felder anders anordnen, eventl. Grafiken einbauen. Daher habe ich mir die user-edit.tpl.php angelegt. Nun muss ich aber alle Eingabefelder einzeln einbinden. Dafür habe ich jetzt schon die Arrays ausgelesen. Nur wie ich die Felder jetzt genau anspreche bzw. ausgebe ist mir momentan noch ein Rätsel.
was genau macht theme_form?
das würde mich auch mal
am 12.09.2008 - 11:03 Uhr
das würde mich auch mal interessieren, wie man die edit-seiten themen kann.
Naja, ich habe mit folgender
am 12.09.2008 - 11:09 Uhr
Naja, ich habe mit folgender Anleitung angefangen.
http://www.drupalcenter.de/node/7083#comment-43040
Aber wie gesagt komme ich nun nicht weiter, bzw. funktioniert die Sache mit
drupal_renderund$formnicht.Also drupal_render innerhalb
am 12.09.2008 - 11:51 Uhr
Also drupal_render innerhalb einer tpl.php aufzurufen bedeutet die Dinge zu wiederholen, da beim rendern von user-edit die Felder längst gerendert wurden (und soweit ich es in Erinnerung habe, markiert Drupal, was es bereits gerendert hat. Man muss also vorher eingreifen).
Eine Möglichkeit ist hook_form_alter, allerdings braucht man dazu ein Modul.
Es geht auch über theme_user_edit in der template.php (wie schon oben richtig gemacht). Am besten man ändert dort die Felder und läßt dann Drupal den Render-Job machen. Hier mal ein Beispiel um Felder "verschwinden" zu lassen:
<?php
function phptemplate_user_edit($form){
// hide fields on user edit form for users without user admin privileges
if (user_access('administer users')) {
$form['account']['mail']['#type'] = 'hidden';
unset ($form['locale']);
unset ($form['comment_settings']);
unset ($form['timezone']);
};
return drupal_render($form);
}
?>
Rahmen etc. macht man dann per CSS.
Noch zur Info, was ich vorher mit "theme_form" meinte: wenn Du mal in "theme_form" hineinschaust, siehst Du, dass dort das FORM-Element zusammengebaut wird. Das hattest Du zuvor gefragt. Außerdem sieht man, dass zum Zeitpunkt zu dem die Form zusammengebaut wird, die Felder längst gerendert sind und nur noch via children einkopiert werden.
Viele Grüße
Edmund
------
Drupal Migrationen, Modul- und Themeentwicklung, Drupal Hosting - http://www.katp.de