Zum Inhalt springen

Variable in einem String ersetzen

Erstellt am 25. Juni 2005 · 4 Antworten · letzte Antwort am 30. Juni 2005

Tags: Frage

tREXX ·

Alsoo, Ich habe:

1.) Eine Spalte aus der Tabelle PAGES und
2.) ein Attribut class im BODY Tag

Was ich will:

<body class="myClass{$spalteninhalt}">

Wie kriege ich den Inhalt der Spalte da rein? Bei Eigenschaften mit dataWrap geht's mit {page:spaltenname}. Aber was mache ich hier?

Danke für die Hilfe.

weasel ·

Hallo tREXX,

wie es aussieht möchstest du eine spalte aus der Pages tabelle auslesen und diese dann ausgeben.
mit einem CONTENT typ kannst du beliebige felder aus der datenbank auslesen.
das hier ist ungetestet aber müsste funktionieren

temp.body = CONTENT
temp.body{
  wrap=|
  table = pages
  select {
    #id der seite deren wert du lesen willst
    uidInList = {$uidOfPage}
    orderBy = name
  }
  renderObj=COA
  renderObj{
    10=TEXT
    #hier der name des feldes
    10.field=name
    wrap = <body class="myClass|">
  }
}
page.bodyTag < temp.body

mehr infos in der tsref
https://docs.typo3.org/m/typo3/reference-typoscript/main/en-us/Functions/Select.html

tREXX ·

öhm... also die spalten der tabelle pages hat man sowieso immer im pages objekt drin. die braucht man nicht extra zu selecten ;-) (zugriff entweder über .field = spaltenname oder eben {page:spaltenname})

das war eigentlich auch nicht die frage, sondern nur wie ich nun den wert dieser spalte in den string-wert von page.bodyTag reinbringe. Diesem attribut kann man nämlich leider keine objekte zuweisen, das hab ich auch schon probiert. Typo3 gibt im Falle eines TEXT objects dann nämlich auch einfach TEXT aus :-(

page.bodyTag = text{$wertausspalte}text

Das hätte ich gern, nur geht das leider ned.

weasel ·

Hallo,
sorry hab dich davor wohl falsch verstanden und hatte selber nen fehler im ts.
nach ein wenig code lesen, weil mich das problem echt interessiert habe ich folgende lösung gefunden

page.bodyTagCObject=TEXT
page.bodyTagCObject.value=<body class={page:title}>
page.bodyTagCObject.insertData=1

hier wird der bodyTag überschrieben, und bodyTagCObject ist nicht ein string wie bodyTag, sondern ein COBJECT

have fun

tREXX ·

Cool - Dankeschön!

Nun würde mich nur noch wundernehmen in welcher dunklen ecke der doku du das gefunden hast? Meine recherchen waren alle erfolglos :-(

Hatte aber inzwischen einen funktionierenden Workaround: .bodyTag auskommentieren und selber (mit nem TEXT object) einen body-tag in den page content wurschteln. Mit dem darf man nämlich ganz unkompliziert wrappen. Hässlich - aber dem geht :-D