Zum Inhalt springen

Template wird nicht ausgegeben

Erstellt am 16. Mai 2007 · 1 Antwort · letzte Antwort am 17. Mai 2007

Tags: Frage

eisstern ·

Hallo
ich hänge grade an einem Punkt an dem ich die Ausgabe über ein Template steuern möchte. Allerdings wird mir absolut kein Inhalt ausgegeben.
Kurze Code-Erklärung:
In der Tabelle gibt es zwei Arten von Zeilen. Jeder Datensatz kann beide beinhalten, muss aber nur die erste. Ich habe deshalb die beiden in unterschiedliche subparts gesteckt. Anschließend versuche ich die beiden Teile jeweils an den Subpartmarker zurückzugeben. Allerding ohne Erfolg.

Template:

<!-- ###TEMPLATE### begin -->
<h1>###HEADER###</h1>
<table>
<!-- ###CONTENT### -->
	<!-- ###CLASS### -->
	<tr>
		<td>###CLASSNAME###</td><td>###CLASSCOUNT###</td>
	</tr>
	<!-- ###CLASS### -->
	<!-- ###COMMENT### -->
	<tr>
		<td colspan="2">###COMMENTTEXT###</td>
	</tr>
	<!-- ###COMMENT### -->
<!-- ###CONTENT### -->
</table>
<!-- ###TEMPLATE### end -->

und hier der php-Code Ausschnitt:

<?php
$template['template'] = $this->cObj->getSubpart($this->templatefile,'###TEMPLATE###');
		$template['class'] = $this->cObj->getSubpart($template['template'],'###CLASS###');
		$template['comment'] = $this->cObj->getSubpart($template['template'],'###COMMENT###');


// begin
$markerArray['###HEADER###'] = $this->pi_getLL('pi.header');

// loop for all classes

for($i=0;$i<8;$i++){ class="$this-">pi_getFFvalue($this->cObj->data['pi_flexform'], "class_".$class_array[$i], "sheet_data");
	$comment = $this->pi_getFFvalue($this->cObj->data['pi_flexform'], "comment_".$class_array[$i], "sheet_data");

	// show class
	if($flex_showclosed && (( $class < 1) || ( $class == ''))){
		$markerArray['###CLASSNAME###'] = $this->pi_getLL('class.'.$class_array[$i]);
		$markerArray['###CLASSCOUNT###'] = $this->pi_getLL('info.closed');
		$empty = false;
	}
	else if($class > 0){
		$markerArray['###CLASSNAME###'] = $this->pi_getLL('class.'.$class_array[$i]);
		$markerArray['###CLASSCOUNT###'] = $class;
		$empty = false;
	}
	$return = $this->cObj->substituteMarkerArrayCached($template['class'], $markerArray);
	$subpartArray['###CONTENT###'] = $return;

	// show comment
	if($flex_usecomments && $comment != '' && $class > 0){
		$markerArray2['###COMMENTTEXT###'] = $comment;
		$empty = false;
				
		$return2 = $this->cObj->substituteMarkerArrayCached($template['comment'], $markerArray2);
		$subpartArray['###CONTENT###'] .= $return2;
	}

	$all = $this->cObj->substituteMarkerArrayCached($template['template'], array(), $subpartArray);

	$content .= $all;
}
?>

Wo hab ich den Fehler eingebaut?

steffenk ·

das ist schwer zu sagen.

Du solltest mit debug-Anweisungen arbeiten.

t3lib_div::debug($template);

Zuerst schau mal ob das Template wirklich in $template steckt.
Dann bau entsprechende debugs in die Schleife, um zu sehen, was wo bei rauskommt.