Zum Inhalt springen

Unterschiedliche Selects auf tt_content

Erstellt am 22. April 2005 · 5 Antworten · letzte Antwort am 25. April 2005

Tags: Templates & Layouts, Inhaltselemente, Frage

f i s c h a ·

Hallo zusammen,

hab' mich gerade hier angemeldet, um euch um Hilfe bei folgendem Problem zu bitten.

Es geht um einen Newsletter, der aus einer Typo3-Seite generiert wird.

Der Newsletter hat bestimmte pflegbare Elemente, EDITORIAL, ARTICLE, EPILOGUE, etc.

Die HTML-Vorlage enthält die Marker, die dann mit den Inhalten gefüllt werden.

Jetzt das Problem:

Jedes Teilchen für sich funktioniert so, wie ich es haben möchte, aber wenn ich mehrere Elemente aktiviere, überschreiben sie sich gegenseitig und alles ist wieder kaputt, schnief. 🙁

Was kann man da tun?

Danke schonmal und hier ein Auszug aus Setup:

# EDITORIAL anlegen:
newsletter.20 = CONTENT
newsletter.20.table = tt_content
newsletter.20.select.begin = 0
newsletter.20.select.max = 1
newsletter.20.select.orderBy = sorting
newsletter.20.select.where = colPos = 1
tt_content = COA
tt_content {
10 = TEXT
10.field = bodytext
}
newsletter.10.marks.NEWSLETTER_EDITORIAL < newsletter.20
newsletter.20 >

# ANCHORLIST anlegen:
newsletter.30 = CONTENT
newsletter.30.table = tt_content
newsletter.30.select.orderBy = sorting
newsletter.30.select.where = colPos = 0
tt_content = COA
tt_content {
10 = TEXT
10.value = <tr><td valign="top">&#149;&nbsp;</td><td valign="top"><a href="#
20 = TEXT
20.field = uid
30 = TEXT
30.value = "><font face="Arial, Helvetica, Univers" size="3">
40 = TEXT
40.field = header
50 = TEXT
50.value= </font></a></td></tr>
}
newsletter.10.marks.NEWSLETTER_ANCHORLIST < newsletter.30
newsletter.30 >

# EPILOGUE_1 anlegen:
newsletter.40 = CONTENT
newsletter.40.table = tt_content
newsletter.40.select.begin = 0
newsletter.40.select.max = 1
newsletter.40.select.orderBy = sorting
newsletter.40.select.where = colPos = 2
tt_content = COA
tt_content {
10 = TEXT
10.field = bodytext
}
newsletter.10.marks.NEWSLETTER_EPILOGUE_1 < newsletter.40
newsletter.40 >

# EPILOGUE_2 anlegen:
newsletter.50 = CONTENT
newsletter.50.table = tt_content
newsletter.50.select.begin = 1
newsletter.50.select.max = 1
newsletter.50.select.orderBy = sorting
newsletter.50.select.where = colPos = 2
tt_content = COA
tt_content {
10 = TEXT
10.field = bodytext
}
newsletter.10.marks.NEWSLETTER_EPILOGUE_2 < newsletter.50
newsletter.50 >

.. und so weiter

just2b ·

Korrigier mich wenn ich dich falsch versteh, aber warum machst du es nicht so?

marks.EDITORIAL = CONTENT
marks.EDITORIAL < styles.content.get
marks.ARTICLE =  CONTENT
marks.ARTICLE < styles.content.getRight
...
f i s c h a ·

.. wie kann ich denn da das Ergebnis weiter eingrenzen?

Es ist ja so gedacht, dass das erste Inhaltselement aus der linken Spalte ins Editorial komm.

Alles was in der Mitte steht, wird zu Artikeln,
die Überschriften werden zur Ankerlinkliste.

Das erste Element der rechten Spalte wird zum Epillogue 1, das Zweite zum Epillogue 2.

Ich möchte ja irgendwie Kontrolle über die Ausgaben bekommen.

Geht das denn mit styles.content.get auch und wenn ja, wie??

just2b ·

hmm.. versteh dich nicht ganz, aber du kannst ja genauso jedem marker was zuweisen wie

marks.EDITORIAL = CONTENT
marks.EDITORIAL {
table = tt_content
select {
pidInList = this
orderBy = sorting
where = colPos=1

}

bzw den Code, den du schon gebastelt hast....

f i s c h a ·

.. ja aber bei

marks.EDITORIAL = CONTENT
marks.EDITORIAL {
table = tt_content
select {
pidInList = this
orderBy = sorting
where = colPos=1
}

wird ja noch nichts angezeigt und wenn ich dann tt_content zur Anzeige benutze habe ich eben das Problem mit dem Überscheiben!.

f i s c h a ·

Hab's jetzt selber rausbekommen! 😃

Man muß renderObj benutzen, damit (das Objekt) tt_content nicht jedesmal überschrieben wird.

Im renderObj-Objekt kann man dann das Element nach Belieben aufbauen, wie hier mit dem einfachen Anzeigen des Bodytexts, oder aber auch komplexer mit Hilfe eines COA-Objekt.

Danke nochmal an just2b für die schnellen Antworten!!

# EDITORIAL anlegen:
newsletter.10.marks.NEWSLETTER_EDITORIAL = CONTENT
newsletter.10.marks.NEWSLETTER_EDITORIAL {
  table = tt_content
  select.begin = 0
  select.max = 1
  select.orderBy = sorting
  select.where = colPos = 1 
  renderObj = TEXT
  renderObj.field = bodytext
}