möchte mich da auch noch dranhängen.
da in der forge zu dem thema noch nichts zu finden war, habe ich mal eben ein fass aufgemacht:
powermail: prefill für checkbox / selectbox
Das wurde mit der aktuellen powermail bereits implementiert:
http://forge.typo3.org/issues/show/3709
das ist ja klasse!
nur muss ich dann die ursache woanders suchen 😢
mir ist es bisher weder gelungen, eine selectbox noch checkboxen zu befüllen:
plugin.tx_powermail_pi1.prefill {
uid123_0 = RECORDS
uid123_0 {
wrap = |
source.data = GPvar:tx_cal_controller|uid
tables = tx_cal_event
conf.tx_cal_event = TEXT
conf.tx_cal_event.field = nameDesFeldes
}
uid123_1 = RECORDS
uid123_1 {
[...]
}
}
Ich verstehe es auch nicht. #angry#
Ich will eine Selectbox für die Anrede mit fe_user Daten befüllen.
Also wenn 0 dann Frau und bei 1 Herr selected="selected".
Ist das implementiert? Aus http://forge.typo3.org/issues/show/3709 werde ich nicht richtig schlau. Dort steht folgendes:
prefill.uid123.selectedIndexes TEXT /w stdWrap Fields values (CSV)
prefill.uid123.selectedValues TEXT /w stdWrap Fields labels (CSV)
prefill.uid123_12 boolean Preselects option with index 12
Habe es mit
prefill.uid123.selectedIndexes= 0,1
prefill.uid123.selectedValues= Frau,Herr
prefill.uid123_0 = TEXT
prefill.uid123_0 = Frau
prefill.uid123_1 = TEXT
prefill.uid123_1 = Herr
in allen Möglichen Kombinationen versucht. Ein einfaches Beispiel würde mir und Anderen sicher helfen.
Ich werde mir die Funktion html_select() wohl genauer anschauen, falls ich Zeit finde.
Ich gebe zu, die Implementierung ist nicht auf Anhieb verständlich, dafür sollte sie aber größtmögliche Flexibilität bei der Nutzung bieten.
@malisch01 & @typoDAU:
Falls ihr euer echtes TS gepostet habt, dann tauscht bitte noch in "uid123" die 123 gegen die Feld-UID, die powermail für euer Feld vergeben hat (zu sehen z.B. via HTML-Quelltext)
@malisch01:
Die drei Möglichkeiten haben jeweils ihre Daseinsberechtigung. Denn je nach Anwendungsfall macht es Sinn
- nach Feldwerten zu selektieren (z.B. weil diese aus einer DB ausgelesen wurden)
- nach Indizes zu selektieren (z.B. weil mittels TS/stdWrap die Selektierung erst ermittelt wird
- einen Wert direkt anzusprechen (z.B. um auch hier alle Möglichkeiten des stdWrap zu haben)
Es reicht, wenn ein Weg gewählt ist. Welcher Option die höchste Priorität hat, weiß ich gerade nicht mehr.
@typoDAU:
Die Selektierung über die einzelnen Punkte ist nur als Boolean möglich. D.h. es wird nur geprüft, ob der TS-Wert gesetzt ist (PHP-Funktion empty() !== false). Die Option hat keine stdWrap-Eigenschaften, d.h. Dein RECORDS-Objekt wird nicht ausgewertet, sondern es wird als Wert der String "RECORDS" gesetzt (dadurch ist die Option nicht leer und es sollten alle Deine Auswahlmöglichkeiten gesetzt sein)
danke julian für dein ausführliches posting 🙂
Falls ihr euer echtes TS gepostet habt, dann tauscht bitte noch in "uid123" die 123 gegen die Feld-UID, die powermail für euer Feld vergeben hat (zu sehen z.B. via HTML-Quelltext)
hihi, nee, das war natürlich nicht original...
das was ich eigentlich vorhatte, klappt also leider nicht...
Was hast Du denn vor? So ganz klar wird's mir aus dem TS nicht (zumal ich mich nicht so mit dem cal auskenne). Eigentlich sollte mit den drei Möglichkeiten alles lösbar sein.
Julian.Hofmann schrieb@malisch01:
Die drei Möglichkeiten haben jeweils ihre Daseinsberechtigung. Denn je nach Anwendungsfall macht es Sinn
- nach Feldwerten zu selektieren (z.B. weil diese aus einer DB ausgelesen wurden)
Genau das habe ich vor.
Aber mit :
plugin.tx_powermail_pi1.prefill {
uid3.selectedIndexes = 0,1
}
funktioniert es nicht. Angemeldeter Fe_user ist eine Frau, es wir aber in der Selectbox Herr angezeigt. Im HTML-Code stehen Herr und Frau als Selected.
Bin für jede Hilfe dankbar.
Dein TS definiert genau, dass beide Optionen selected sein sollen - also genau das, was als HTML rauskommt. Die Daten des FE-Users beziehst Du bisher noch nicht mit ein.
Für FE-User ist das Geschlecht als 0/1-Wert in der Spalte gender gespeichert. Dieser hat aber nichts mit dem Formularfeld-Index zu tun.
Wenn ich nichts übersehen habe, dann sollte diese Zeile ausreichen:
plugin.tx_powermail_pi1.prefill.uid3.selectedIndexes.data = TSFE:fe_user|user|gender
(vorausgesetzt, Deine Auswahlfolge ist so herum, dass die Werte 1:1 mit der gender-Spalte übereinstimmen. Ansonsten wird etwas aufwändiger...)
Ok mit stdwrap Eigenschaft data liest man das entsprechende PHP-Array aus
plugin.tx_powermail_pi1.prefill.uid3.selectedIndexes.data = TSFE:fe_user|user|salutation
Hier wird es geholt
$selected = t3lib_div::intExplode(',', $this->cObj->stdWrap($this->conf['prefill.']['uid' . $this->uid . '.']['selectedIndexes'], $this->conf['prefill.']['uid' . $this->uid . '.']['selectedIndexes.']));
und in isPrefilled() auf true gesetzt.
Danke jetzt habe ich verstanden. #giggle#
Hallo zusammen,
kann mir Jemand sagen ob ein Prefill auch mit der Länderauswahl möglich ist? Sprich: eine Selectbox mit Daten aus fe_user|user|static_info_country füllen.
Zum besseren Verständnis, hier mein TypoScript:
plugin.tx_powermail_pi1 {
prefill {
uid2087.selectedIndexes.data = TSFE:fe_user|user|static_info_country
}
}
Zusätzlich zu der TypoScript-Variante habe ich es auch mit der eingebauten Powermail-Funktion versucht: "Dieses Feld mit Daten aus fe_user füllen" -> static_info_country
Beides leider vergeblich.
Bei normalen Selectboxen funktioniert der Prefill tadellos, nur bei der Länderauswahl nicht...