![]() |
| | LinkBack (1) | Themen-Optionen | Thema bewerten | Ansicht |
|
#1
| |||
| |||
Hallo, ich will für ein SELECT Feld in einem mehrstufigen PM Formular Optionen dynamisch erzeugen. Es werden bei einer Buchungsanfrage zu Reisen mögliche Reisetermine für eine bestimmte (vorher ausgewählte) Reise angeboten. Die Ausgabe (zur Vereinfachung beschreibend, nicht als HTML) soll z.B. so sein: option '' => Select tourdate (leere Option) option 24 => 24. Mai - 1. Juni 2009 option 29 => 2. - 10. Juni 2009 ... (Modell ist dabei: option tourdateUid => optionDescriptive) Die Optionen (uids und dazu die beschreibenden Werte) können dabei nicht so einfach als Werte aus der db ausgelesen werden, sondern müssen erst über ein USER object zusammengestellt werden, da verschiedene GET Parameter und TS Einstellungen verarbeitet werden müssen, die dafür sorgen, dass im jeweiligen Kontext die richtigen Termine ausgewählt werden. Wird ein entsprechender Parameter ("tx_tdtour_pi1[tourdateUid]") mitübergeben, der eine UID übermittelt, soll z.B. auch gleich die jeweilige Option vorselektiert sein. Mir fällt zur Zeit eigentlich nur ein, das komplette powermail-artige HTML des Select Felds im PHP nachzubauen und das dann über TS im Formular einzubinden, also etwa so: TS-SETUP: ... plugin.tx_powermail_pi1.dynamicTyposcript { tourdateoptions = USER tourdateoptions { userFunc = user_tdtour->getTourdateOptions dateFormat = {$plugin.tx_tdtour_pi1.dateFormat} layout = ###STARTDATE###-###ENDDATE### ... } } ... Dann im Formular ein Feld vom Typ TS-Objekt erzeugen und das obige da einfügen. Die user Funktion macht dann den kompletten Output, aber ich habe den Verdacht, dass man das irgendwie eleganter lösen müsste, so dass PM letztlich drauf aufpasst und die USER-Funktion nur die Optionen übergeben muss. Dann müsste auch die Auswahl des Benutzers bim Blättern im Formular stehenbleiben etc. Meine Frage bzw Bitte um Hilfe wäre also: - Welche Strategie schlägt man am besten ein? Im Voraus vielen Dank! Tom |
|
#2
| ||||
| ||||
| Ich würde im Prinzip eigentlich genauso wie du vorgehen: - Neues Feld in Powermail anlegen vom Typ Typoscript - Dann soll eine userFunc das Selectfeld zusammenbauen: Typoscript-Code: So etwas in der Art habe ich hier umgesetzt: TYPO3.net - Powermail: Dynamisches Datum im Dropdown Grüße, Alex
__________________ einpraegsam.net alias wunschtacho Powermail :: Einprägsam :: Xing Profil :: Wunschtacho :: JustPowder :: conject |
|
#3
| |||
| |||
| Vielen Dank, Alex! Ich werde das dann mal so weiterverfolgen... Gruß, Tom |
|
#4
| ||||
| ||||
| Hier habe ich das Ergebnis zu dem Howto wenn es dich interessiert: conject.com-Online Demo
__________________ einpraegsam.net alias wunschtacho Powermail :: Einprägsam :: Xing Profil :: Wunschtacho :: JustPowder :: conject |
|
#5
| |||
| |||
| Ja, das ist hilfreich. Dann ist mir nur noch eine Sache nicht ganz klar: 1) Die Optionen werden wie in dem Beispiel oben über das USER Obj erzeugt. OK. 2) Das HTML drumherum dagegen besteht aus einem DIV, Label und dem Select Tag um die Option herum. -------------- <div class="tx_powermail_pi1_fieldwrap_html ... /div> <label for="uid62">Bevorzugter Termin</label> <select name="tx_powermail_pi1[uid62]" class="... > ... (hier dann die options vom USER obj) --------------- Das <div> und den <label> macht PM ja bereits selbst, wenn man das Feld im BE anlegt. Das SELECT tag muss aber wohl doch noch manuell per TS oder über ein Template um die Ausgade der Optionen vom USER Obj gewrappt werden, wobei man nur noch manuell die ID des Felds in die Konfiguration mit übergeben muss: ... PMfieldUid = 62 (im TS setup bei der configuration des USER function) bzw: PMfieldUid.field = uid ... Oder gibt es eine Möglichkeit, PM zu erzählen, das die Ausgabe des USER Objekts für ein Select (und nicht etwa ein Textfeld oder sonstwas) ist? Ich hoffe, da ist kein Denkfehler von meiner Seite drin. Danke jedenfalls,- das dürfte jetzt eigentlich nicht mehr schwerfallen. Tom |
|
#6
| ||||
| ||||
| Wenn du ein Typoscript Feld mit Powermail anlegst, macht Powermail (so weit ich mich erinnern kann) überhaupt keinen Wrap. Die Wraps die du haben willst (oder in meinem Beispiel) habe ich in PHP mit eingefügt, thats all
__________________ einpraegsam.net alias wunschtacho Powermail :: Einprägsam :: Xing Profil :: Wunschtacho :: JustPowder :: conject |
|
#7
| |||
| |||
| Das stimmt und es funktioniert auch schon. Man muss div, label und select manuell per TS oder php drumherum legen. Dazu muss man an die USER Funktion die UID des Formulars und das Label übergeben. Nur dazu meine letzte Frage, falls das leicht geht und ich auf dem Schlauch stehe: wie kann man die Werte des Formulars (uid und label) dynamisch per TS bekommen ? "fieldUid.field = uid" liefert mir ja die UID des Formulars, nicht des in Frage kommenden Felds. Man kann natürlich für jedes solche Feld "fieldUid = 265" direkt eingeben, aber dann muss man das für jede Sprache gesondert so machen und immer aufpassen... Vielen Dank für die schnelle und gute Hilfe!! tom Wenn's jemanden interessiert, kann ich das Ergebnis ja hier dann posten. |
|
#8
| ||||
| ||||
| Zitat:
powermail - Issues - TYPO3 Forge Klar!
__________________ einpraegsam.net alias wunschtacho Powermail :: Einprägsam :: Xing Profil :: Wunschtacho :: JustPowder :: conject |
|
#9
| |||
| |||
| sorry - bin noch am schreiben und komme mit dem Löschen / Formatieren nicht zurecht... Geändert von volcanodiscovery (29.08.08 um 01:38 Uhr). |
|
#10
| |||
| |||
| Entschuldigt, dass ich mit dem online Editor zum Formatieren von Einträgen in diesem Forum nicht umgehen kann und den Code unten nicht besser lesbar darstellen kann... Vielleicht brauche ich nen Crash-Kurs hier... So, aber hier nun doch noch das fertige Produkt, falls mal jemand auf ein ähnliches Problem stößt. Dank Eurer Hilfe, Alex' tollem Support und dieser großartigen Extension ist unser Formular nun um einiges leichter zu pflegen (und netter anzuschauen) als vorher mit mailformplus...: Ergebnis zuerst: HTML-Code: http://www.volcanodiscovery.com/volcano-tours/reisebuchung.html?&tx_tdtour_pi1[tourdateUid]=122&tx_tdtour_pi1[showUid]=76&cHash=ce5dc7674a - Es werden hier vom plugin, das die Touren darstellt (tx_tdtour_pi1) 2 Parameter mitübergeben, die sagen, welche Tour gewählt ist und davon welche Variante. - Die ersten 3 Felder (Name des Programms und die beiden Auswahlboxen darunter werden von USER Funktionen gemacht: 1. TS setup für das Feld: tourversion = USER tourversion { userFunc = user_tdtour->getVersionOptions fieldUid = 265 fieldUid.lang.de = 277 label = Select tour version label.lang.de = Version } 2. Die aufgerufene Funktion sieht dann so aus: PHP-Code: 3. das Feld im Plugin vom Typ TS-Object lautet dann: plugin.tx_powermail_pi1.dynamicTyposcript.tourversion ... Viele Grüße, Tom PS: 10% Rabatt auf Buchungen wenn Ihr von hier da obenreinkommt...;-) Geändert von volcanodiscovery (29.08.08 um 02:01 Uhr). |
![]() |
| Lesezeichen |
| Themen-Optionen | |
| Ansicht | Thema bewerten |
| |
LinkBacks (?)
LinkBack to this Thread: http://www.typo3forum.net/forum/powermail/31873-select-dynamisch-optionen-einf-gen.html | ||||
| Erstellt von | For | Type | Datum | |
| powermail - Feature #1419: Make DB-fields from tx_powermail_fields records available through stdWrap in TS - TYPO3 Forge | This thread | Refback | 05.10.08 12:54 | |
Ähnliche Themen | ||||
| Thema | Autor | Forum | Antworten | Letzter Beitrag |
| Plugin Optionen anlegen | Kage | Extension modifizieren oder neu erstellen | 2 | 13.08.08 09:58 |
| BE Extension Optionen Ausrichten | eventhorizon | Alle anderen Extensions | 0 | 11.03.08 12:26 |
| Bild Optionen bei Redakteuren | alkativo | TYPO3 4.x Backend | 2 | 27.08.07 10:38 |
| safemode optionen | micho | TYPO3 4.x Installation und Updates | 2 | 22.06.07 23:52 |
| Themen Optionen am Ende der Seite | chrimp | Änderungen | 1 | 28.05.06 00:59 |