Hallo,
Ich bin gerade bei der Userliste (Ext: newloginbox).
Da kann man mit "customProcessing" die Ausgaben noch formatieren. Als Beispiel wurde da Image angeben (s.u.).
Beim Geburtstag (date_of_birth) funktioniert das auch prima (auch s.u.). In der Geschechterfrage (gender) habe ich auch eine Lösung gefunden (s.u.). Da ist aber meine Frage geht das auch eleganter? Gibt es nicht auch ein "else" bei dem "if" ?
Und bei "static_info_country" stosse ich völlig an meine TypoScript-Grenzen... Ich bekomme mit den Zeilen:
static_info_country = TEXT
static_info_country.field = static_info_country
das iso_3-Kürzel bspw.: DEU. Aber bei meinem Versuch die Tabelle static_countries nach dem richtigen Ländernamen zu fragen, bin ich kläglich gescheitert. Mein Frage wie mach ich das?
Ich bin für jede Antwort dankbar... Sonst muss ich in den PHP-Quelltext eingreifen... #evil#
Gruß Clemens
plugin.tx_newloginbox_pi3{
singleView.customProcessing{
image.file.import = fileadmin/user_upload/fe_images/
date_of_birth = TEXT
date_of_birth {
field = date_of_birth
strftime = %A, %e. %B %Y
}
gender = COA
gender.1 = TEXT
gender.1{
value = Herr
if.value.field = gender
if.equals = 0
}
gender.2 = TEXT
gender.2{
value = Frau
if.value.field = gender
if.equals = 1
}
static_info_country = TEXT
static_info_country.table = static_countries
static_info_country.select {
andWhere = cn_iso_3 = {field:static_info_country}
}
Hi,
eleganter geht das nicht wirklich, das passt so schon!
zum select! in der tsref zum select steht, dass das nicht mit static_ tabellen funktioniert, sorry, aber einen patch gibts seit dieser woche von mir unter http://bugs.typo3.org/view.php?id=7812
georg
Danke für die schnelle Antwort und den Hinweis auf den Patch... ich hab mich schon für zu blöd gehalten.
Aber jetzt noch mal zu meinem Problem... Können die folgenden TS-Zeilen überhaupt funktionieren? Oder ist das Hum-Bug?
Ich hab mir das einfach mal so zusammengereimt... weil ich bei den anderen TS-Objekten auch über "field" an den Wert ran gekommen bin.
static_info_country = TEXT
static_info_country.table = static_countries
static_info_country.select {
andWhere = cn_iso_3 = {field:static_info_country}
}
Gruß Clemens
Hallo,
das ist natürlich humbug.
das select gehört zum cObj CONTENT und das ganze schaut dann ca so aus
lib.rfc7812 = CONTENT
lib.rfc7812 {
table = static_countries
select {
pidInList = 0
max = 20
orderBy =cn_official_name_en
}
renderObj = TEXT
renderObj {
value = <tr><td></td><td>{field:uid}</td> <td>{field:cn_official_name_en}</td><td>{field:cn_capital}</td></tr>
insertData = 1
}
stdWrap.wrap = <table cellpadding="1" cellmargin="1"><th><td>Uid</td><td>Name En</td><td>Capital</td></th>|</table>
}
und spuckt das aus http://www.ringer.it/test/rfc-7812-cobj-content-static.html
georg
Was ich mich aber jetzt frage: Ich will ja nur einen Eintrag und nicht die ganze Liste. Dazu brauche ich doch die whrere-Klausel...
Weil aber '.where' nicht von .stdWrap abgeleitet ist - muss ich '.andWhere' nehmen...
andWhere = cn_iso_3 = {field:static_info_country}
Darum auch "{field:static_info_country}". Ich hab irgendwie im Gefühl das wird nicht funktionieren... aber ich wüsste nicht, wie ich sonst den Wert "static_info_country" rein bekomme.
Für jede Erklärung dankbar...
Clemens
PS: Danke für deinen TS-Code. Besonders:
renderObj = TEXT
renderObj { .... }
erweiterte sehr mein Verständnis für TS.
wenn du mit field arbeiten willst, dann brauchst du dann einfach ein
andWhere.insertData = 1
sonst im install tool mal sqldebug einschalten, dann siehst du genau was generiert wird
georg
Super vielen Dank... Die DB-Zugriffe funktionieren dank Deinem Rat und Deinen Patch prima...
Danke und gruß Clemens...
PS: Muss nun nur noch die DB in Punkto Zeichensatz von "latin1_swedish_ci" auf UTF8 umstellen, damit die Umlaute funktionieren... 😢 Anfängerfehler!!!
Hier für alle, die die UserList von der newloginbox etwas in einer etwas besser lesbareren Form haben wollen:
gender = COA
gender.1 = TEXT
gender.1{
value = Herr
if.value.field = gender
if.equals = 0
}
gender.2 = TEXT
gender.2{
value = Frau
if.value.field = gender
if.equals = 1
}
static_info_country = CONTENT
static_info_country{
table = static_countries
select{
insertData = 1
andWhere = cn_iso_3 = '{field:static_info_country}'
andWhere.insertData = 1
pidInList = 0
max = 1
}
renderObj = TEXT
renderObj {
value = {field:cn_short_local}
insertData = 1
}
}
zone = CONTENT
zone{
table = static_country_zones
select{
insertData = 1
andWhere = zn_country_iso_3 = '{field:static_info_country}' AND zn_code = '{field:zone}'
andWhere.insertData = 1
pidInList = 0
max = 1
}
renderObj = TEXT
renderObj {
value = {field:zn_name_local}
insertData = 1
}
}
statt wie in 28/29 kannst du gleich schreiben
field = cn_short_local
nur so als hint
georg