Zum Inhalt springen

Bedingung zwischen content .=''

Erstellt am 8. Mai 2015 · 2 Antworten · letzte Antwort am 8. Mai 2015

Tags: TYPO3 6.x, Frage

jendasek ·

Hallo,

das ist mein erster Beitrag hier. :-)

Ich versuche eine Bedingung in folgendem Code zu formulieren.

if (isset($_GET['product'])) {
	$qry_data = mysql_query("
					SELECT
						tx_ppamthowitrollhusv2_moebelkontor.uid,
						tx_ppamthowitrollhusv2_moebelkontor.artnr,
						tx_ppamthowitrollhusv2_moebelkontor.programm,
						tx_ppamthowitrollhusv2_moebelkontor.bezeich,
						tx_ppamthowitrollhusv2_moebelkontor.ausf,
						tx_ppamthowitrollhusv2_moebelkontor.zusatztext,
						tx_ppamthowitrollhusv2_moebelkontor.vk_brutto,
						tx_ppamthowitrollhusv2_moebelkontor.vk_ab_brut,
						tx_ppamthowitrollhusv2_moebelkontor.ausstellungsstueck,
						tx_ppamthowitrollhusv2_moebelkontor.einzelstueck,
						tx_ppamthowitrollhusv2_moebelkontor.ausverkauft,
						tx_ppamthowitrollhusv2_moebelkontor.reserviert
					FROM
						tx_ppamthowitrollhusv2_moebelkontor
					WHERE
						tx_ppamthowitrollhusv2_moebelkontor.artnr = '".mysql_real_escape_string($_GET['product'])."'
					ORDER BY
						tx_ppamthowitrollhusv2_moebelkontor.bezeich;
					");
if (mysql_num_rows($qry_data)) {
		$value = mysql_fetch_array($qry_data);
		$pconfig['file'] = 'fileadmin/moebel_kontor_sync_dir/k3online/bilder/'.$value{'artnr'}.'.jpg';
		$pconfig['file.']['maxH'] = 400;
		$pconfig['file.']['maxW'] = 620;
		$image = (string)$this->cObj->IMAGE($pconfig);
	}
	$content .= '
		<h2>'.trim($value{'bezeich'}).'</h2>
		<div class="photo">
		[b]<div class="image_container">
		'.$image.'
		</div>[/b]
		</div>
		<div class="text">
			<div class="spalte_1">
			<h3>Beschreibung:</h3>
			<p class="info">'.$value{'zusatztext'}.'</p> 
			<p class="artikelnummer">Art.-Nr. '.$value{'artnr'}.'</p>
			</div>
			<div class="spalte_2">
				<h3>Informationen:</h3>
				<p class="info">'.$value{'ausf'}.'</p>
				<p class="ursprungspreis">
				<span class="durchgestrichen"></span>
				'.number_format($value{'vk_ab_brut'}, 0, '', '.').',- €
				</p>
			</div>
			<div class="spalte_3">
			<div class="sonderpreis">
			<p>Sonderpreis:<br>
			<span class="preis">'.number_format($value{'vk_brutto'}, 0, '', '.').',- €</span>
			</p>
				</div>
			</div>
		</div>
	';
} else {
	$qry_data = mysql_query("
					SELECT
						tx_ppamthowitrollhusv2_moebelkontor.uid,
						tx_ppamthowitrollhusv2_moebelkontor.artnr,
						tx_ppamthowitrollhusv2_moebelkontor.programm,
						tx_ppamthowitrollhusv2_moebelkontor.bezeich,
						tx_ppamthowitrollhusv2_moebelkontor.ausf,
						tx_ppamthowitrollhusv2_moebelkontor.zusatztext,
						tx_ppamthowitrollhusv2_moebelkontor.vk_brutto,
						tx_ppamthowitrollhusv2_moebelkontor.vk_ab_brut,
						tx_ppamthowitrollhusv2_moebelkontor.ausstellungsstueck,
						tx_ppamthowitrollhusv2_moebelkontor.einzelstueck,
						tx_ppamthowitrollhusv2_moebelkontor.ausverkauft,
						tx_ppamthowitrollhusv2_moebelkontor.reserviert
					FROM
						tx_ppamthowitrollhusv2_moebelkontor
					ORDER BY
						tx_ppamthowitrollhusv2_moebelkontor.bezeich;
					");
	if (mysql_num_rows($qry_data)) {
	    $content .= '<div class="presentation_list">';
		while ($value = mysql_fetch_array($qry_data)) {
			$content .= '<div class="list_item"><span class="entry"><a id="'.$value{'artnr'}.'" href="'.$_SERVER['REQUEST_URI'].'&product='.$value{'artnr'}.'">'.$value{'artnr'}.' '.$value{'bezeich'}.'</a></span> <span class="entry">Jetzt: '.$value{'vk_brutto'}.'</span> <span class="entry">Vorher: '.$value{'vk_ab_brut'}.'</span> <span class="entry">Reserviert: '.$value{'reserviert'}.'</span> <span class="entry">Verkauft: '.$value{'ausverkauft'}.'</span> </div>';
			if ($value->ausverkauft == 1) $content .='Ja';
		}
		
		$content .= '</div>';
	}
}

Und zwar möchte ich an folgender Stelle erreichen,

<div class="image_container">
		'.$image.'
		</div>

dass, wenn das Feld "ausverkauft" ausgefüllt ist, ein Code eingefügt wird, d.h. folgender Code

<div class="ausverkauft">
    	<div class="ausverkauft-text">
	    <p>verkauft</p>
	    </div>
    </div>

Ich stelle mir vor, dass ich es mit folgendem Code umsetzen könnte. Allerdings klappt es nicht, weil sich meine Bedingung zwischen dem "content .=''" befinden soll. Und ehrlich gesagt komme ich gerade nicht darauf, wie ich es da formulieren soll.

<?php if ($hits->tx_ppamthowitrollhusv2_moebelkontor.ausverkauft == 1): ?><div class="ausverkauft">
    	<div class="ausverkauft-text">
	    <p>verkauft</p>
	    </div>
    </div>
<?php endif ?>

Ich bin von Contao an diese andere Syntax gewöhnt. Könnt mir bitte jemand helfen, wie es nun bei Typo3 richtig machen soll? Das wäre super. Danke.

Liebe Grüße,
Jan

toifel ·

In deinem oberen Code gibt es noch gar keine $hits Variable.
Aber prinzipiell sollte das gehen, wenn du die Bedingung außerhalb von $content prüfst und das Ergebnis in eine eigene Variable packst.. zB direkt unter $image:

$ausverkauftInfo = '<div class="ausverkauft"><div class="ausverkauft-text"><p>verkauft</p></div></div>';
$image = (string)$this->cObj->IMAGE($pconfig);
$innerContent = ($hits->tx_ppamthowitrollhusv2_moebelkontor.ausverkauft == 1) ? $ausverkauftInfo : $image;

Dann im folgenden Block das $image raus nehmen und dort $innerContent einsetzen:

<div class="image_container">
  '.$innerContent.'
</div>
jendasek ·

Vielen Dank. Sorry, ich habe einen Fehler im Code gehabt: statt "$this->" stand da "$hits->". Das habe ich korrigiert und Cache gelöscht, aber es läuft nicht.

Hier noch einmal der obere Teil.

if (isset($_GET['product'])) {
	$qry_data = mysql_query("
					SELECT
						tx_ppamthowitrollhusv2_moebelkontor.uid,
						tx_ppamthowitrollhusv2_moebelkontor.artnr,
						tx_ppamthowitrollhusv2_moebelkontor.programm,
						tx_ppamthowitrollhusv2_moebelkontor.bezeich,
						tx_ppamthowitrollhusv2_moebelkontor.ausf,
						tx_ppamthowitrollhusv2_moebelkontor.zusatztext,
						tx_ppamthowitrollhusv2_moebelkontor.vk_brutto,
						tx_ppamthowitrollhusv2_moebelkontor.vk_ab_brut,
						tx_ppamthowitrollhusv2_moebelkontor.ausstellungsstueck,
						tx_ppamthowitrollhusv2_moebelkontor.einzelstueck,
						tx_ppamthowitrollhusv2_moebelkontor.ausverkauft,
						tx_ppamthowitrollhusv2_moebelkontor.reserviert
					FROM
						tx_ppamthowitrollhusv2_moebelkontor
					WHERE
						tx_ppamthowitrollhusv2_moebelkontor.artnr = '".mysql_real_escape_string($_GET['product'])."'
					ORDER BY
						tx_ppamthowitrollhusv2_moebelkontor.bezeich;
					");
	if (mysql_num_rows($qry_data)) {
		$value = mysql_fetch_array($qry_data);
		$pconfig['file'] = 'fileadmin/moebel_kontor_sync_dir/k3online/bilder/'.$value{'artnr'}.'.jpg';
		$pconfig['file.']['maxH'] = 400;
		$pconfig['file.']['maxW'] = 620;
		$ausverkauftInfo = '<div class="ausverkauft"><div class="ausverkauft-text"><p>verkauft</p></div></div>';
		$image = (string)$this->cObj->IMAGE($pconfig);
		$innerContent = ($this->tx_ppamthowitrollhusv2_moebelkontor.ausverkauft == 1) ? $ausverkauftInfo : $image;
	}
	$content .= '
		<h2>'.trim($value{'bezeich'}).'</h2>
		<div class="photo">
		<div class="image_container">
		'.$innerContent.'
		</div>
		</div>
		<div class="text">
			<div class="spalte_1">
			<h3>Beschreibung:</h3>
			<p class="info">'.$value{'zusatztext'}.'</p> 
			<p class="artikelnummer">Art.-Nr. '.$value{'artnr'}.'</p>
			</div>
			<div class="spalte_2">
				<h3>Informationen:</h3>
				<p class="info">'.$value{'ausf'}.'</p>
				<p class="ursprungspreis">
				<span class="durchgestrichen"></span>
				'.number_format($value{'vk_ab_brut'}, 0, '', '.').',- €
				</p>
			</div>
			<div class="spalte_3">
			<div class="sonderpreis">
			<p>Sonderpreis:<br>
			<span class="preis">'.number_format($value{'vk_brutto'}, 0, '', '.').',- €</span>
			</p>
				</div>
			</div>
		</div>
	';
}