Ich möchte mit den Conditons Daten aus der fe_users - Datenbank abfragen. Alle meine Versuche scheitern daran, dass die Abfragen nur funktionieren, wenn der fe_user angemeldet ist. Ich möchte aber die Daten haben, auch wenn er nicht angemeldet ist, z.B.:
[globalVar = TSFE:fe_user|user|uid = {$user}] && [globalVar = TSFE:fe_user|user|tx_feuserextrafields_layout=5]
page.includeCSS.file1 = fileadmin/cemiterio/defaulttusw.css
[global]
soll eine css laden, wenn beide Conditions true sind (übergebener User der in den Constants definiert ist + Layout)
Das alles funktioniert, wenn der User angemeldet ist, nicht aber wenn er offline ist 🙁
Kann mir jemand auf die Sprünge helfen?
Viele Grüsse
Matthias
hallo,
mit deinen Conditions fragst du lediglich den eingeloggten User ab, du machst keine Datenbankabfrage.
Woher soll TYPO3 auch unterscheiden können, ob sich nun ein "normaler" Besucher deine Seite ansieht, oder jemand der auch ein fe_user sein könnte, sich aber TYPO3 gegebenüber noch nicht bemerkbar gemacht hat. An welchen Kriterien kannst du das unterscheiden ?
Somit ist an dieser Stelle erstmal klar, dass die Condition nur funktioniert, wenn ein Benutzer angemeldet ist.
Hallo Karlchen,
danke für die Antwort, auch wenn sie mich kein Stück weiterbringt 😢
Ich habe mir lediglich gedacht, dass wenn die Conditions eh schon auf fe_users zugreifen, dann sollte das doch auch als Datenbankabfrage möglich sein. Ich habe mich an Beispielen von z.B. tt_address orientiert, wo so etwas ja scheinbar auch möglich ist. Kann aber sein, dass ich auf dem Holzweg bin.
Wenn es grundsätzlich nicht gehen sollte, dann werde ich mir eine Struktur über "select" überlegen.
Aber vielleicht gibt es ja einen Kniff?!?
Matthias
was genau willst du denn erreichen ?
Ist eigentlich ganz einfach: Meine User melden sich über sr_feuserregister an, füllen dann ein Formular aus (powermail) und über TS schreibe ich diese Daten in zusätzliche Felder meiner fe_user.
Nun hat jeder meiner fe_user eine eigene Seite mit einem eigenem Template. In diesem Template habe ich in den Constants die UID des Users fest hinterlegt und im TS möchte ich nun das Aussehen der Seite durch Abfragen der Daten aus fe_users anpassen.
Bei TEXT-Datenfeldern mache ich das durch eine select-Abfrage
temp.rechts3 = COA
temp.rechts3 {
10 = CONTENT
10 {
table = fe_users
select {
pidInList = 32
# ID des Users
where = uid = {$user}
}
renderObj = COA
renderObj {
10 = TEXT
10.field = tx_feuserextrafields_data
wrap = Data do enterro: | <br>
}
}
}
Nun gibt es aber auch Daten aus Auswahlboxen (0,1,2,3,4,5), die ein bestimmtes css-Layout laden sollen, und da es kein "if/elseif" gibt und ich mit "case" nicht klarkomme, dachte ich mir, mach es halt mit den Conditions wie im Ausgangspost beschrieben.
Aber irgendwie habe ich mich verrant und sehe den Wald vor lauter Bäumen nicht mehr. Es gibt vermutlich eine ganz einfache Lösung, die ich derzeit nicht erkenne 😢
hallo o_alemao,
probier doch mal folgendes aus:
page.headerData.444 = CONTENT
page.headerData.444{
table = fe_users
select {
pidInList = 32
# ID des Users
where = uid = {$user}
}
renderObj = CASE
renderObj{
key.field = tx_feuserextrafields_layout
// möglichkeiten die das KEY feld annehmen kann + default value
// bsp: Zahlen 1-5
default = TEXT
default.value = cemiterio/defaulttusw.css
1 = TEXT
1.value = anderesCSS/123.css
2 = TEXT
2.value ...
...
5 =
stdWrap.wrap = <link rel="stylesheet" type="text/css" href="fileadmin/|" />
}
}
😃
Ein Smily sagt mehr wie tausend Worte. Funktioniert einwandfrei, 80% meiner Probleme gelöst.
Und ich habe in meinem Linkedin-Profil stehen: Typo3 Spezialist...
Naja, es wird ja immer besser 8-)