Zum Inhalt springen

FE_Users-Datenbankfeld als stdwrap-Parameter

Erstellt am 11. März 2005 · 7 Antworten · letzte Antwort am 5. April 2005

Tags: Frage

Foxpower ·

Hallo,

ich hoffe ich bin hier richtig. Vielleicht simple Frage, aber ich find's (gerade) nicht in der TSRef:

Ich habe eine Extension, der ich per stdWrap Paramer übergebe, also z.B. '...blah.field =' oder '...blah.data='.
Jetzt möchte ich als Parameter einen Wert aus der FE_USERS-Tabelle übergeben (der gerade eingeloggte FE_User-Datensatz ist dabei ja wie ich meine bekannt).
Also, konkrete Frage: wie mache ich es, dass als Übergabeparameter der Inhalt Wert des Feldes 'fe_users:comment' genutzt wird, so dass ich auf untenstehendes Resultat komme und der Inhalt des Feldes übergeben wird?

plugin.extension.parameter.data < [Wert aus fe_users:comment]

Danke schon mal
Foxxy

Foxpower ·

Hallo jenses,

danke, aber ich will das über TS lösen. Ich dachte, dies wäre der richtige Weg:

  temp.INHALT = CONTENT
  temp.INHALT {
    table = fe_users
    renderObj = COA
    renderObj {
      10 = TEXT
      10.field = shortsign
    }
  }

'content (default)' ist eingebunden, FE-User ist eingeloggt.

Was ich aber erhalte ist - nichts!

Probeweise habe ich dann mal folgendes TS probiert:

  10 = CONTENT
  10 {
    table = tt_content
    select.orderBy = sorting
    select.pidInList = this
  }
  10.renderObj = TEXT
  10.renderObj.field = header

Da wird sehr wohl etwas ausgegeben, also ist das Konstrukt an sich ok.

Habe ich vergessen, etwas zu includieren oder wo ist mein Denkfehler? Warum bekomme ich nichts aus der fe_users zurück?

Danke,
Dieter

Foxpower ·

Nachtrag: ich habe gerade herausgefunden, dass

  temp.INHALT = CONTENT
  temp.INHALT {
  table = fe_users

  select.pidInList = 59

  renderObj = COA
  renderObj {
    10 = TEXT
    10.field = username
    20 = TEXT
    20.field = shortsign
  }
}

zur Selektion des Datensatzes (in diesem Fall PID = 59) führt.
Wie genau würde ich nun den aktuellen, eingeloggten FE-User (select.pidInList = ???) übermitteln?

Danke,
Dieter

jenses ·

Was du vorhast, funktioniert so nicht.
TypoScript ist keine Programmiersprache,
du kannst nicht irgendwelche Werte irgendwohin übergeben.

Literaturempfehlung:
TSRef, TYPO3_Core_API

viele Grüße
jenses

Foxpower ·

hmmm, in TSFE stehen doch auch Werte wie akt. Seiten-UID o.ä.
Mit der debug-Funktion habe ich ein User-Array entdeckt, in dem zumindest die Felder title, uid und pid zu stehen scheinen.

Array (2) 	User 	
String (0) 	fe_user->user 	 
Array (3) 	fe_user->groupData 	
Array (0) 	title 	
Array (0) 	uid 	
Array (0) 	pid

Das heisst, im Speicher/TSFE muss doch die PID oder UID des aktuell eingeloggten Users stehen?

Und übergeben müsste ich das doch mit

  select.uidInList = TSFE:fe_user
oder
  select.pidInList = TSFE:fe_user
oder
  select.uidInList = TSFE:fe_user->uid
oder
  select.pidInList = TSFE:fe_user->pid

können...
Zumindest denke ich, dass hier anzusetzen ist.
Ich habe wie Du siehst schon a bisserl rumexperimentiert, aber die genaue Syntax dieser Zeile ist mir halt noch nicht ganz klar.

Danke,
Dieter

Foxpower ·

Ok, nun habe ich die Lösung für das Problem gefunden - mit der wundervollen Extension "kb_betterstdwrap" von Bernhard Kraft (an dieser Stelle herzlichen Dank für den Tipp und die Extension) gehts.

(SETUP)
temp.catlist = TEXT
temp.catlist.value = {glob:TSFE:fe_user:user:shortsign}
temp.catlist.insertData = 1

plugin.extension.parameter.cObject < temp.catlist

Ich bin somit in der Lage, jedes Feld des eingeloggten Users per TS auszulesen und per stdWrap zu übergeben.

ciao,
Dieter

cmertens ·

Hallo!
Ich glaube ich habe ein ähnliches Problem. Nur würde ich die Felder des eingeloggten Users gerne mit Hilfe eines PHP-Scripts auslesen. Ich habe das Problem auch schon wo anders gepostet, bis jetzt leider ohne erfolg.

Wäre wirklich für jeden tip dankbar...