11.02.2011 TYPO3
Headerbild aus tt_news
Aufgabenstellung
Auf der Startseite erscheinen im Header von Hand ausgewählte News als Slideshow. Auf allen Folgeseiten erscheint das Headerbild aus den Seiteneigenschaften und wird von der Elternseite vererbt, falls keins vorhanden ist, nur bei der Singleansicht einer News erscheint das erste Newsbild als Header.
Fertiges Beispiel auf www.moderne-kunst.org
Für die Startseite habe ich im TV-Template den Headerbereich als zweiten Contentbereich angelegt und in diesen dann die rgslideshow eingefügt. Im Modus "Auswahl von Datensätzen" kann man dann die anzuzeigenden News auswählen. Ein Problem dabei war, das die News aus verschiedenen Kategorien kommen und unterschiedliche Seiten für die Singleansicht haben. Deshalb habe ich für jede Kategorie auch einen eigenen Sysordner angelegt. Damit haben die News eine eindeutige PID, die ich per TS abfragen kann.
plugin.tx_rgslideshow_pi1 {
tt_news = 1
tt_news {
position = 1
titleField = tx_extnews_start_titel
descriptionField = tx_extnews_start_kategorie
description.wrap = | :
imageField = image
link = 1
link {
parameter.cObject = CASE
parameter.cObject {
key.field = tx_rgslideshowPid
default = TEXT
default.value = 93
77 = TEXT
77.value = 58
78 = TEXT
78.value = 62
121 = TEXT
121.value = 97
122 = TEXT
122.value = 102
80 = TEXT
80.value = 123
81 = TEXT
81.value = 124
}
useCacheHash = 1
additionalParams = &tx_ttnews[tt_news]={field:tx_rgslideshowUid}
additionalParams.insertData =1
}
}
}
Ab Zeile 16 stehen jeweils vorne die PID des Sysordners der News und als value dann die UID der Seite für die Singleansicht. Die beiden DB-Felder "tx_extnews_start_titel" und "tx_extnews_start_kategorie" <code class="typoscript plain"></code>sind übrigens eigens für diesen Zweck angelegte Extra-Felder in tt_news.
Für den Headerbereich der Folgeseiten habe ich im TV-Template dann einen Bereich mit Namen lib.header angelegt, den ich über TypoScript befüllen kann.
temp.img = RECORDS
temp.img {
if.isTrue.data = GPvar:tx_ttnews|tt_news
source.data = GPvar:tx_ttnews|tt_news
tables = tt_news
conf.tt_news = COA
conf.tt_news {
10 = IMAGE
10 {
file {
import = uploads/pics/
import.field = image
import.listNum = 0
}
titleText.field = title
altText.field = title
}
}
}
temp.imgPageProperties = IMAGE
temp.imgPageProperties {
file.import = uploads/media/
file.import.data = levelmedia:-1, slide
file.import.listNum=0
}
lib.header = COA
lib.header {
10 = COA
10 {
if.isTrue.cObject < temp.img
30 < temp.img
}
20 = COA
20 {
if.isFalse.cObject < temp.img
30 < temp.imgPageProperties
}
}
Zuerst wird ein temporäres Objekt erzeugt, dass das erste Bild der News enthält, aber nur, wenn in der URL ein tt_News-Parameter enthalten ist. Dann wird ein weiteres temporäres Objekt erzeugt, welches das erste Bild aus den Seiteneigenschaften der aktuellen Seite oder der Elternseite enthält. Dann wird das lib.header Objekt entweder mit dem ersten, oder, wenn das erste leer, mit dem zweiten temporären Objekt gefüllt.
Versionen: TYPO3 4.4.4, tt_news 3.0.1, rgslideshow 1.4.0
- 2 Kommentar(e)





Funktioniert nicht?
Hab nun schon lange und viel probiert, das Headerbild bleibt leer!
------------------------
temp.img = RECORDS
temp.img {
if.isTrue.data = GPvar:tx_ttnews|tt_news
source.data = GPvar:tx_ttnews|tt_news
tables = tt_news
conf.tt_news = COA
conf.tt_news {
10 = IMAGE
10 {
file {
import = uploads/pics/
import.field = image
import.listNum = 0
width = 540c
height = 250c
}
titleText.field = title
altText.field = title
}
}
}
page.10.subparts.MIDDLEIMAGE < temp.img
----------------------------------------------
Das funktioniert, nur eben nicht dynamisch!
temp.img = IMAGE
temp.img {
file {
import=uploads/pics/
import.data = DB:tt_news:3:image
import.listNum = 0
width = 540c
height = 250c
}
}
Vielleicht so?
Geht eventuell Folgendes:
page.10.subparts.MIDDLEIMAGE = COA
page.10.subparts.MIDDLEIMAGE {
10 < temp.img
}