[TYPO3-german] geschachtelte Templates ersetzen in Extension

Silke Capo s.capo at digital-worx.de
Fri Mar 9 14:31:32 CET 2012


Hallo Listenteilnehmer,

ich habe gerade einen Knoten im Kopf, was verschachtelte Templates 
angeht. Folgendes Template möchte ich gerne innerhalb einer Extension 
ausgeben:

<!-- ###GROUPVIEW### begin-->
<!-- ###HEAD### begin-->
	<p class="breadbrumb">###BREADCRUMB###bread</p>
	<h1>###CAT###</h1>
	<div class="subcategory-item">
		<dl>
	<!-- ###CATEGORIES### begin
		 list of subcategories
	-->
			<dt><a href="###LINK###">###IMG###</a></dt>
			<dd>
				<p><a href="###LINK###">###TEXT###</a></p>
				<!-- ###DOWNLOADS### begin-->
				<p><a class="download" href="###FILEPATH###">###FILENAME###</a></p>
				<!-- ###DOWNLOADS### end-->
			</dd>

	<!-- ###CATEGORIES### end-->
		</dl>
	</div>
<!-- ###HEAD### end-->
<!-- ###GROUPVIEW### end-->

Downloads und Categories sind jeweils mehrere Unterelemente. Ich 
scheitere nun daran, mehrere Downloadelemente in die Categories zu bekommen.

Habe mir
tslib_cObj Class Reference
sowie
http://wiki.typo3.org/Extension_Development,_using_HTML-Templates
angesehen.

Leider funktioniert dieser Teil bei mir nicht:
// Fill subpart marker
$subpartArray['###CONTENT###'] = $contentItem;
(bei mir: $markerCat['###DOWNLOADS###'] = $contentDown;)
da dieser zwar ###DOWNLOADS### ersetzt, aber eben zwei Mal im Kommentar 
und der Inhalt des Supparts wird dann so ausgegeben wie er da steht.

Verwende ich substituteSubpart statt substituteMarkerArray, wird zuviel 
außenherum mitgegeben.

Habe schon alle möglichen Kombinationen von substituteMarkerArray und 
substituteSubpart ausprobiert.

sonst wäre mein Problem gelöst. Bei mir wird der Marker im Array nicht 
ersetzt.

Hier Ausschnitte aus dem PHP-Code:

$template = $this->cObj->getSubpart($this->templateCode, '###GROUPVIEW###');
// Get subpart template
$subTemplate['template'] = $this->cObj->getSubpart($template,'###HEAD###');
$subTemplate['category'] = 
$this->cObj->getSubpart($subTemplate['template'],'###CATEGORIES###');
$subTemplate['item'] = 
$this->cObj->getSubpart($subTemplate['category'],'###DOWNLOADS###');
...
$markerArray['###BREADCRUMB###'] = $breadcrumb;
...
foreach ($subCat as $key => $value) {

	$markerCat['###LINK###'] = $linksub;
	$markerCat['###IMG###'] = $img;
	$markerCat['###TEXT###'] = $value["name"];
	...
	$contentDown = "";
	for ($i=0; $i < count($files); $i++) {
		...
		$markerDown['###FILEPATH###'] =$files[$i];
		$markerDown['###FILENAME###'] = $names[$i];
		$contentDown .= 
$this->cObj->substituteMarkerArray($subTemplate['item'], $markerDown);
	}
	$markerCat['###DOWNLOADS###'] = $contentDown;
	$contentCat .= 
$this->cObj->substituteMarkerArray($subTemplate['category'],$markerCat);
}
$contentHead .= 
$this->cObj->substituteMarkerArray($subTemplate['template'], $markerArray);
		$contentHead .= 
$this->cObj->substituteSubpart($subTemplate['template'],'###CATEGORIES###',$contentCat);
		$content .= 
$this->cObj->substituteSubpart($template,'###HEAD###',$contentHead);

So, dies war eine der unterschiedlichen Varianten, die ich versucht habe...

Diese Variante gibt das Template zwei Mal aus:
einmal mit CAT und BREADCRUMB ersetzt, die CAT-Liste mit unersetzten 
Markern und nur einem Item.
Beim zweiten Mal sind CAT und BREADCRUMB nicht ersetzt, dafür wird die 
CAT-Liste vollständig ausgegeben (5 Items). Hiebei sind alle Marker der 
Liste ersetzt bis auf den Subpart DOWNLOAD, der wieder unersetzt 
ausgegeben wird.

Kann mir vielleicht jemand helfen, den Knoten zu entwirren?

Vielen Dank schon mal im Voraus!
Silke

-- 
     -------------------------------------
     echolot digital worx GmbH
     Schulze-Delitzsch-Str. 16
     70565 Stuttgart
     Tel. 0711 220 40 93 0
     Fax. 0711 220 40 93 44
     [name]@digital-worx.de
     http://www.digital-worx.de
     -------------------------------------
     Geschaeftsfuehrer:
     Sven Rahlfs
     Mirko Ross
     HRB 22 5281 Amtsgericht Stuttgart
     USt.-Id. Nr.: DE218401190
     -------------------------------------
     Unseren Blog finden Sie unter:
     http://think.digital-worx.de


More information about the TYPO3-german mailing list