[TYPO3-german] geschachtelte Templates ersetzen in Extension
Kay Strobach
typo3 at kay-strobach.de
Fri Mar 9 14:52:23 CET 2012
Hi,
sieh dir mal das FUID standalone template an.
Das Template ist dann besser lesbar.
Grüße
Kay
Am 09.03.2012 14:31, schrieb Silke Capo:
> 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
>
--
http://www.kay-strobach.de - Open Source Rocks
TYPO3 .... inspiring people to share!
Get involved: http://typo3.org
Answer was useful: https://flattr.com/profile/kaystrobach
More information about the TYPO3-german
mailing list