[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