Liste mit freiem Format im Modul Profil anpassen - wie?
am 19.09.2009 - 17:28 Uhr in
Hi,
im Modul profile kann man eigene Listenfelder erstellen die der User dann auswählen muss. Aber woran sieht Drupal das etwas ausgewählt wurde und nicht der erste Punkt in der Liste genommen wurde?
Wie kann ich es realisieren das eine Liste so aussieht:
--
Apfel
Birne
Orange
Wenn also "--" abgespeichert wird, eine Fehlermeldung, das Obst ausgewaehlt werden muss.
Oder anders gefragt, wenn ich meine eigene Ueberpruefung einbaue, wie teile ich Drupal mit, das bei der Registrierung alles Notwendige ausgefuellt wurde.
- Anmelden oder Registrieren um Kommentare zu schreiben

Setze einen Eintrag "bitte wählen" an die erste Position
am 19.09.2009 - 21:20 Uhr
Drupal ist (leider) so schlau, dass - wenn ein Profil-Feld ein Pflichtfeld ist - die "bitte wählen"-Option gar nicht mehr erscheint. Statt dessen ist der erste Eintrag automatisch selektiert und wird übertragen, auch wenn der User gar keine Auswahl getroffen hat.
Ich würde Dir empfehlen, eine "bitte wählen"-Option händisch an die erste Position der Auswahloptionen zu setzen und dann per Skript (oder vielleicht auch per Rules) logisch darauf prüfen, und den User zu zwigen, etwas anderes zu wählen.
Es wird auf jeden Fall funktionieren, die Eingaben des Users per Skript beim Speichern des Formulars abzufangen und zu prüfen. Ob sich dies ohne Programmierung per Rules steuern lässt, habe ich noch nicht probiert.
Mir wäre es übrigens lieber, wenn Drupal an dieser Stelle einmal nicht so schlau wäre und die "bitte wählen" Option auch bei Pflichtfeldern anzeigen würde...
Schöne Grüße,

Ralf Hendel
Aber wie ist die
am 19.09.2009 - 22:17 Uhr
Aber wie ist die Schnittstelle?
Sollte ich die Daten vor der Uebergabe pruefen, fehlt mir die Verbindung zu Fehlerausgabe. An welche Funktion muss ich die Fehlermessage uebergeben so dass Drupal wie bei Fehlen des Passworts die Weiterverarbeitung blockt?
Hi, das geht alles mit der
am 21.09.2009 - 09:01 Uhr
Hi,
das geht alles mit der FAPI.
Bei der Anmeldung kannst du aber auch über hook_user gehen.
Hier wird die Aktion "validate" im user.module Zeile 2462 aufgerufen. Damit kannst du die Daten auslesen bzw. solltest ein form_set_error ausführen können.
---
Viele Grüße,
Kars-T