... Formulare, Formulare!
oder
"TYPO3 Version 8 LTS und die neue System-Erweiterung für Formulare"
Über die neue Formular-Erweiterung kann man glaube ich ein eigenes Buch verfassen.
Wieder einmal haben wir etwas völlig Neues, die für Version 7 LTS entwickelte (System-) Erweiterung steht nur mehr im TER als 'form_legacy' weiterhin zur Verfügung. Man sollte aber vorallem auch für neue Projekte bedenken, dass diese 'legacy' Erweiterung vermutlich über kurz oder lang nicht mehr weiterentwickelt wird, und nur dazu dienen soll ältere Projekte ohne gröbere Zusatzaufwände migrieren zu können.
Heute möchte ich aber nun genauer zeigen, wie man Formularfelder dynamisch mit Werten aus z.B. der Datenbank via TypoScript befüllt. Dies erledige ich mit einem kurzen Snippet. Der Code-Schnipsel kommt mit englischsprachigem Quelltext-Kommentar und steht denke ich für sich.
TypoScript Setup Codebox für tx_form
## Add a pagetitle of some page, given via URL-param to new tx_form
## just an example. Works also with fe_users, tt_address, tx_news or whatever you'll need
## First we do some lib-object and retrieve our data, just as always.
lib.objDynFieldValue = CONTENT
lib.objDynFieldValue {
table = pages
select {
pidInList = 1
where.data = GP:tx_my_pageparam
## ATTN: if you remove this you will have an SQL-injection security-hole!
where.intval = 1
where.wrap = uid=|
selectFields = title
}
renderObj = COA
renderObj {
10 = TEXT
10 {
required = 1
wrap = |
field = title
}
}
}
## Here we add that data to a certain form.
## you need to adjust <my_form_identifier> to your personal identifier without "<>" for sure ...
## be careful with the depth of the configuration array, as well as with the index.
## Fields must pre-exist in form configuration (YAML)!
plugin.tx_form {
settings {
formDefinitionOverrides {
<my_form_identifier> {
renderables {
0 {
renderables {
0 {
defaultValue = TEXT
defaultValue {
stdWrap {
cObject < lib.objDynFieldValue
}
}
}
}
}
}
}
}
}
}