Zum Inhalt springen

TYPO3 – tx_news Image mit File verlinken

Erstellt am 19. März 2016 · Noch keine Antworten

Tags: TYPO3 7, Tipp

Sebastian Schmal ·

Für ein TYPO3 6.2 Projekt mit tx_news habe ich an der News Detail den Part für die Image-Ausgabe umgebaut um dort die Bilder mit einer File ({mediaElement.link}) zu verlinken.
Für die TYPO3 7 Version ist es etwas einfacher, da es dafür einen ViewHelper (f:link.typolink) gibt. Doch für die T3 6.2.xx Version muss man etwas anders den Fluid-Code aufbauen.
Hier verwende ich einmal den VH f:format.html und dann den link Code.
Vielleicht hat jemand auch noch eine schönere Lösung?

Als Erstes müssen wir die Bild-Abfrage in der News Datei: FalMediaImage.html bearbeiten und erweitern.

TypoScript für 6.2.xx Version. Da wir den Parser etwas abändern müssen, das dort keine P-Tags usw. ausgegeben werden.

lib.parseFuncNews < lib.parseFunc_RTE
lib.parseFuncNews.nonTypoTagStdWrap.encapsLines >

Fluid für 6.2.xx Version:

<f:if condition="{mediaElement.link}">
	<f:then>
		<f:format.html parseFuncTSPath="lib.parseFuncNews">
			<link {mediaElement.link}>
				<f:image src="{mediaElement.uid}" treatIdAsReference="1" title="{mediaElement.title}" alt="{mediaElement.alternative}" maxWidth="{settings.detail.media.image.maxWidth}" maxHeight="{settings.detail.media.image.maxHeight}" class="img-responsive" />
			</link>
		</f:format.html>
	</f:then>
	<f:else>
		<f:image src="{mediaElement.uid}" treatIdAsReference="1" title="{mediaElement.title}" alt="{mediaElement.alternative}" maxWidth="{settings.detail.media.image.maxWidth}" maxHeight="{settings.detail.media.image.maxHeight}" class="img-responsive" />
	</f:else>
</f:if>

Wichtig ist hier, dass die neue Parser-Funktion im f:format.html geladen wird parseFuncTSPath="lib.parseFuncNews" und {mediaElement.link} mit im link-Tag eingebunden wird. So sollte nun das News-Bild mit der z.B. PDF File verlinkt werden.
Wenn es keinen Link gibt, wird wieder die normale Ausgabe verwendet. Kann natürlich noch beliebig ausgebaut werden.

TYPO3 7 sieht dann etwas einfacher aus:
……

<f:then>
	<f:link.typolink parameter="{mediaElement.link}">
		<f:image src="{mediaElement.uid}" treatIdAsReference="1" title="{mediaElement.title}" alt="{mediaElement.alternative}" maxWidth="{settings.detail.media.image.maxWidth}" maxHeight="{settings.detail.media.image.maxHeight}" class="img-responsive" />
	</f:link.typolink>
</f:then>

……

So sollte es dann perfekt in der neuen TYPO3 Version funktionieren. Ich freue mich aber über „Verbessungsvorschläge“, daich eine schnelle Lösung gesucht habe und erstellt habe!

Ursprünglich erschienen am 19.03.2016 auf typo3-probleme.de.