Zum Inhalt springen

ifEmpty & related_stdWrap

Erstellt am 16. Februar 2010 · 2 Antworten · letzte Antwort am 19. Februar 2010

Tags: Frage

johanness ·

Hallo,

ich lasse in meinem Template die "Related News" wie gewohnt anzeigen. Wenn es keine Related News gibt, soll stattdessen die Zusammenfassung angezeigt werden. Wie bekomme ich das hin?

Ich habe es schon folgendermaßen versucht:

related_stdWrap.ifEmpty.field = short

DANKE

johanness ·

Vielleicht, geht das standardmäßig über TS ja gar nicht …?
Ich habe in meiner Datei "EXT:tt_news/pi/class.tx_ttnews.php" circa aber Zeile 1684 folgendes erweitert:

if ($this->isRenderMarker('###TEXT_RELATED###') || $this->isRenderMarker('###NEWS_RELATED###')) {
$relatedNews = $this->getRelated($row['uid']);
if ($relatedNews) {
	$rel_stdWrap = t3lib_div::trimExplode('|', $this->conf['related_stdWrap.']['wrap']);
	$markerArray['###TEXT_RELATED###'] = $rel_stdWrap[0] . $this->local_cObj->stdWrap($this->pi_getLL('textRelated'), $this->conf['relatedHeader_stdWrap.']);
	$markerArray['###NEWS_RELATED###'] = $relatedNews . $rel_stdWrap[1];

// START ZUSATZ
} else {
	$markerArray['###TEXT_RELATED###'] = "-no-related-text-";
	$markerArray['###NEWS_RELATED###'] = "-no-related-news-";	
// ENDE ZUSATZ
}
}

Wenn keine Related News vorhanden sind, werden jetzt zumindest schon meine beiden Textpassagen gerendert.

Vielleicht kann man diesen Text jetzt mit TS via if.equal oder so abfangen und dafür die Zusammenfassung (short) einsetzen?

Ist das ein Ansatz?

plugin.tt_news.getRelatedCObject.10.default {

	30 = TEXT
	30 {
		field = title
		stdWrap.if.equals = -no-related-text-
	}

}
johanness ·

Ich habe mir jetzt mit einem Workaround geholfen: Ich habe die Abfrage, ob es Related News gibt, und die entsprechende Reaktion darauf direkt in der PHP-Klasse "EXT:tt_news/pi/class.tx_ttnews.php" geändert:

// get related news
if ($this->isRenderMarker('###TEXT_RELATED###') || $this->isRenderMarker('###NEWS_RELATED###')) {
	$relatedNews = $this->getRelated($row['uid']);
	if ($relatedNews) {
		$rel_stdWrap = t3lib_div::trimExplode('|', $this->conf['related_stdWrap.']['wrap']);
		$markerArray['###TEXT_RELATED###'] = $rel_stdWrap[0] . $this->local_cObj->stdWrap($this->pi_getLL('textRelated'), $this->conf['relatedHeader_stdWrap.']);
		$markerArray['###NEWS_RELATED###'] = $relatedNews . $rel_stdWrap[1];
	
	// START ZUSATZ
	} else {
		// Wenn keine Related News vorhanden sind, soll die Zusammenfassung angezeigt werden.
		$markerArray['###TEXT_RELATED###'] = "";
		$markerArray['###NEWS_RELATED###'] = $this->hObj->cleanXML($this->local_cObj->stdWrap($row['short'], $lConf['subheader_stdWrap.']));	
	// ENDE ZUSATZ
	}
}