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)
  •  
10.11.2011
sala , 13.39 Uhr
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
}
}

10.11.2011
Thorsten , 14.52 Uhr
Vielleicht so?

Geht eventuell Folgendes:

page.10.subparts.MIDDLEIMAGE = COA
page.10.subparts.MIDDLEIMAGE {
10 < temp.img
}

Mein Kommentar

Ich möchte über jeden weiteren Kommentar in diesem Post benachrichtigt werden.

Zurück