Zum Inhalt springen

tt_news mit eigenem Bild-Feld erweitern

Erstellt am 16. August 2012 · 3 Antworten · letzte Antwort am 23. August 2012

Tags: TCA, tt_news, Frage

aedesign ·

Hallo,

ich habe mit dem Kickstarter für tt_news eine Erweiterung erstellt, die es Redakteuren ermöglicht noch andere Eingaben zu machen.
Es handelt sich um folgende Felder:

Textfeld
Bild
Linkfeld
RTE Text

Leider gibt mir Typo3 im Frontend nur Schrift aus, Selbst das Bild wird als "Logo.gif" angezeigt. Ich bin mir sicher, dass es an der Markern liegt:

<?php


  
    
class tx_aeext_atg {
function extraItemMarkerProcessor($markerArray, $row, $lConf, $obj) {
    $markerArray['###ATG###'] = $obj->local_cObj->stdWrap($row['tx_aeext_atg'], $lConf['tx_aeext_atg_stdWrap.']);
    return $markerArray;

}
}
    
class tx_aeext_lgo {
function extraItemMarkerProcessor($markerArray, $row, $lConf, $obj) {
    $markerArray['###LGO###'] = $obj->local_cObj->stdWrap($row['tx_aeext_lgo'], $lConf['tx_aeext_lgo_stdWrap.']);
    return $markerArray;

}
}


class tx_aeext_lza{
function extraItemMarkerProcessor($markerArray, $row, $lConf, $obj) {
    $markerArray['###LZA###'] = $obj->local_cObj->stdWrap($row['tx_aeext_lza'], $lConf['tx_aeext_lza_stdWrap.']);
    return $markerArray;
}
}
class tx_aeext_iza{
function extraItemMarkerProcessor($markerArray, $row, $lConf, $obj) {
    $markerArray['###IZA###'] = $obj->local_cObj->stdWrap($row['tx_aeext_iza'], $lConf['tx_aeext_iza_stdWrap.']);
    return $markerArray;
}
}



?>

tx_aeext_lgo soll das Bild ausgeben

tx_aext_lza soll einen Link (zum anklicken) ausgeben

tx_aeext_iza soll RTE Text richtig ausgeben

Was muss ich bei den Markern hinzuschreiben?

Danke
André

Julian.​Hofmann ·

Hallo.

In $row['tx_aeext_atg'] usw. steht lediglich der rohe Inhalt aus dem entsprechenden Feld der Datenbank. Für ein Bild-Feld könnte hier z.B. "example.gif,beispiel.jpg" stehen. Auf diesen Inhalt wendest Du zur Zeit lediglich einen stdWrap an.
Jetzt müsstest Du TYPO3 noch irgendwie mitteilen, was alles nötig ist, um auf dem Dateinamen ein Bild generieren und das nötige HTML produzieren zu lassen. Am einfachten geht das, indem Du die Möglichkeiten des stdWraps nutzt:

plugin.tt_news.displayList {
tx_aeext_lgo_stdWrap.override.cObject = IMAGE
tx_aeext_lgo_stdWrap.override.cObject {
	required = 1
	file.import = uploads/tx_aeext/
	file.import.field = tx_aeext_lgo
	file.width = 99c
	file.height = 99c
}
}

Das ein oder andere gibt's hieran sicher noch zu feilen (z.B. den Fall der mehreren Bilder im Feld), aber das Prinzip sollte Dich weiterbringen.

Viele Grüße
Julian

aedesign ·

Hallo Julian,

vielen Dank für deine Antwort, das hat tatsächlich super funktioniert. Ich habe immer gedacht, dass das Bild irgendwo eher erzeugt wird, aber dass ich es in TypoScript im Template machen kann, das war wie eine Offenbarung für mich..

Vielen Dank!
André

Julian.​Hofmann ·

Es kommt immer etwas drauf an. Leider ist es bei vielen Extensions so, dass das Bild (oder allgemein Marker) einfach irgendwo erzeugtw erden, und man nicht viel dran rütteln/ändern kann. Mit relativ wenig Mehraufwand lassens ich Marker aber mit stdWrap-Eigenschaften ausstatten, sodass dann via TypoScript mit vielen Möglichkeiten Einfluss ausgeübt werden kann, ohne am PHP-Code rumfummeln zu müssen.