---
title: "Problem mit HTML-Markern und Subpart bzw. Wrapped-Subpart"
url: "https://www.typo3.net/d/102672-problem-mit-html-markern-und-subpart-bzw-wrapped-subpart"
source: "typo3.net"
tags: ["Extensions","Entwicklung","Frage","Templates & Layouts"]
created: "2010-11-30"
last_reply: "2010-11-30"
replies: 4
solved: false
page: 1
pages: 1
lang: "de"
---

# Problem mit HTML-Markern und Subpart bzw. Wrapped-Subpart

Extensions › Entwicklung · 4 Antworten · gestartet 2010-11-30

## Eröffnungsbeitrag

**sefer** · 2010-11-30 · [Beitrag #1](https://www.typo3.net/d/102672-problem-mit-html-markern-und-subpart-bzw-wrapped-subpart/1)

Hi,

habe versucht ein HTML-Template etwas flexibler zu gestalten. Deshalb habe ich die Subparts alle erstmal als Kommentar gekennzeichnet.
So wird je nach Code, der gewünschte Subpart gefüllt. Das funktioniert auch ganz gut.
Mein Problem ist nur, das mein Wrapped-Subpart nicht funktioniert. Und der Grund dafür ist der Kommentierte Subpart.
So funtioniert der Subpart, aber der Link(Wrapped-Subpart) nicht:

```html
<!--###LINK_PROFILES###--><!-- ###BEST_PLAYER### --><!--###LINK_PROFILES###-->
```

Wenn ich das so mache:

```html
<!--###LINK_PROFILES###-->###BEST_PLAYER###<!--###LINK_PROFILES###-->
```

dann funktioniert der Wrapped-Subpart, aber der flexible-Subpart nicht mehr.
Muss ich mich von meiner Flexiblen Idee, mit den Kommentierungen verabschieden?
Vielen Dank,
Sefer!

Auszug vom CODE:

```php
<?php 
$arrayAll = array( 'uid','round','best_player_game', 'best_player','average_rating_best_player','best_player_team','switch');
foreach ($arrayAll as $marker) {			 			  
 if ($marker=="uid"){
  // Fill wrapped subpart marker
   $profile_pid=$GLOBALS['TSFE']->tmpl->setup['plugin.'][$this->plugin->prefixId.'.']['cfc_league_fe.']['profile_pid'];
   $temp_conf['additionalParams']= 'id='.$profile_pid.'&'.$this->plugin->prefixId.'[profile]='.$rows_rating[0]['player'];
		
   $wrappedSubpartContentArray['###LINK_PROFILES###'] = $this->plugin->local_cObj->typolinkWrap($temp_conf);
   $wrappedSubpartContentArray['###LINK_PROFILES###'][0]=str_replace ( 'id='.$GLOBALS["TSFE"]->id, $temp_conf['additionalParams'], $wrappedSubpartContentArray['###LINK_PROFILES###'][0] );

 }elseif($marker=="round"){				   			
   $markerArray['<!-- ###'.strtoupper($marker).'### -->'] = '<td>'.$round.'</td>';						
 }elseif($marker=="best_player"){				   			
   $markerArray['<!-- ###'.strtoupper($marker).'### -->'] = '<td style="text-align: left;">'.$best_player.'</td>';		   				   							
}
?>
```

Auszug vom HTML-TEMPLATE:

```html
 <!-- ###RATINGVIEW### begin -->

<table border="1" class="tx_sdt3sportsfeadmin_pi1_klasse_table" border="0" cellpadding="1" style="text-align: left; " >
	<thead>
			<tr>
<!-- ###HEADER_SAISON### --><!-- ###HEADER_PLAYER### --><!-- ###HEADER_ROUND### --><!-- ###HEADER_BEST_PLAYER_GAME### --><!-- ###HEADER_AVERAGE_RATING_PLAYER### --><!-- ###HEADER_BEST_PLAYER### --><!-- ###HEADER_AVERAGE_RATING_BEST_PLAYER### --><!-- ###HEADER_BEST_PLAYER_TEAM### --><!-- ###HEADER_GAME### --><!-- ###HEADER_AVERAGE_RATING_TEAM### --><!-- ###HEADER_COMPETITION###### -->
			</tr>
		</thead>

   <!-- ###CONTENT### -->
    <!-- ###ITEM### -->
     <tr  style="text-align: center;" class="tx_sdt3sportsfeadmin_pi1_klasse_table_row###SWITCH###">
<!-- ###SAISON### --><!-- ###PLAYER### --><!-- ###ROUND### --><!-- ###BEST_PLAYER_GAME### --><!-- ###AVERAGE_RATING_PLAYER### --><!--###LINK_PROFILES###--><!-- ###BEST_PLAYER### --><!--###LINK_PROFILES###--><!-- ###AVERAGE_RATING_BEST_PLAYER### --><!-- ###BEST_PLAYER_TEAM### --><!-- ###GAME### --><!-- ###AVERAGE_RATING_TEAM### --><!-- ###COMPETITION### -->
     </tr>
    <!-- ###ITEM### -->
   <!-- ###CONTENT### -->
  </table>
 <!-- ###RATINGVIEW### end -->
```

## Antworten

### [#2](https://www.typo3.net/d/102672-problem-mit-html-markern-und-subpart-bzw-wrapped-subpart/2) · vince · 2010-11-30

Hallo,
ich versteh nicht ganz, warum du für den Inhalt so was benutzt <!--###BETS_PLAYER###-->

Diese kommentierten Marker sind eigentlich nur da, um das Template aufzuteilen
(bzw. um innerhalb des Templates getrennte Bereich zu definieren).

Den eigentlichen Inhalt, der z.B. aus der DB kommt, packt man in normale Marker also ###BEST_PLAYER###.

Ich hab nicht ganz verstanden, was du mit flexible meinst.

Erklär mal nochmal genauer was du hinbekommen möchtest, vielleicht kann ich dann eher helfen :)

Gruß,

Vince.

### [#3](https://www.typo3.net/d/102672-problem-mit-html-markern-und-subpart-bzw-wrapped-subpart/3) · sefer · 2010-11-30

Hi Vince,
ich schreibe gerade eine Klasse(RatingView) die für die Auswertung der Bewertungen zuständig ist.
Jetzt soll die Einbindung des FE-Plugins je nach eingebundener Seite, die Auswertung (Durschnittsnote des Spielers) zeigen.
Beispiel:
- Einbindung auf der Ligaseite-
Anzeige: Die besten Spieler der Liga (TopTen)
Anzeige: Die besten Spieler nach Spieltagen

- Einbindung auf der Teamseite-
Anzeige: Alle Spieler des Teams
Anzeige: Die besten Spieler nach Spieltagen

- Einbindung auf der Profilseite-
Anzeige: Alle bisherigen Teams des Profils
Anzeige: Alle Spieltage des aktuellen Teams(bzw. ausgewählten Teams)

- Einbindung auf der Matchseite-
Anzeige: Alle Spieler des Matches nach Heim/Gast

Jetzt wollte ich nicht für jede Anzeige eine eigene Klasse schreiben, dann hätte ich sieben zusätzliche Klassen. Denn die meisten Marker wiederholen sich ja.
Ich hoffe, dass ich so einigermaßen mein Problem darstellen konnte.
Ciao'
Sefer

### [#4](https://www.typo3.net/d/102672-problem-mit-html-markern-und-subpart-bzw-wrapped-subpart/4) · vince · 2010-11-30

Hallo,

Wo kommen die Inhalte her?

Wenn das ganze aus einer Datenbank kommt muss "nur" je nach Situation die SQL query angepasst werden.

Also prinzipiell kann sowas mit if-abfragen gelöst werden...
z.B. kannst du dir merken auf welcher seite das Plugin jeweils eingebunden ist.
mit $GLOBALS['TSFE']->id kann die seiten id ausgelesen werden...
Wenn z.B. die Liga ansicht auf der seite 25 eingebunden ist dann kannste sowas schreiben wie
if ($GLOBALS['TSFE']->id==25)
//Abfrage für liga ansicht...

Marker füllen musst du dann auch nur einmal machen, egal welche Ansicht gewählt wird (ligaseite, Teamseite...), die Informationen über die Spieler bleiben ja gleich (wahrscheinlich Nachname, vorname usw.)

Um eine liste an Spielern darzustellen, kann man das subpartarray folgendermaßen füllen:

```php
$res = $GLOBALS['TYPO3_DB']->exec_SELECTquery(); //parameter übergeben...
$subpart =$this->cObj->getSubpart($subpart,'###SUBPART###'); 
$liste = "";
	while($row=$GLOBALS['TYPO3_DB']->sql_fetch_assoc($res))
	{
		$markerArray['###BEST_PLAYER###']= $row ['spaltennme'];
		$liste .= $this->cObj->substituteMarkerArrayCached($subpart,$markerArray);
		}
	$subpartArray['###SUBPART###']=$liste;
```

im template:

```html
<!--###SUBPART###-->
      ###BEST_PLAYER###
<!--###SUBPART###-->
```

So wird mit jeder Schleifen iteration der Marker ###BEST_PLAYER### mit dem Datenbank eintrag gefüllt...

Geht so auch in jeder anderen Schleife (ein array kann auf die Art auch durchlaufen werden), fallse deine Inhalte nicht aus einer DB kommen.

Gruß,

Vince.

### [#5](https://www.typo3.net/d/102672-problem-mit-html-markern-und-subpart-bzw-wrapped-subpart/5) · sefer · 2010-11-30

> **vince schrieb:**
>
> Hallo,
>
> Wo kommen die Inhalte her?
>
> Wenn das ganze aus einer Datenbank kommt muss "nur" je nach Situation die SQL query angepasst werden.

Daten kommen von der DB.

> **vince schrieb:**
>
> Also prinzipiell kann sowas mit if-abfragen gelöst werden...
> z.B. kannst du dir merken auf welcher seite das Plugin jeweils eingebunden ist.
> mit $GLOBALS['TSFE']->id kann die seiten id ausgelesen werden...
> Wenn z.B. die Liga ansicht auf der seite 25 eingebunden ist dann kannste sowas schreiben wie
> if ($GLOBALS['TSFE']->id==25)
> //Abfrage für liga ansicht...

So ähnlich habe ich das auch gemacht!

> **vince schrieb:**
>
> Marker füllen musst du dann auch nur einmal machen, egal welche Ansicht gewählt wird (ligaseite, Teamseite...), die Informationen über die Spieler bleiben ja gleich (wahrscheinlich Nachname, vorname usw.)

Je nach Ansicht, unterschiedet sich ja ,welche Marker gefüllt werden müssen. Als Beispiel:
-Liga->TopTen: 1.Spalte=Rang (1 bis 10)
-Liga->Spieltage: 1.Spalte=Spieltag (1 bis 34)
Also brauche ich bei dem einen den Marker ###RANG### und bei dem anderen den MArker ###SPIELTAG###
Ich glaube, aber das du das schon verstanden hast!

> **vince schrieb:**
>
> Um eine liste an Spielern darzustellen, kann man das subpartarray folgendermaßen füllen:
>
> ```php
> $res = $GLOBALS['TYPO3_DB']->exec_SELECTquery(); //parameter übergeben...
> $subpart =$this->cObj->getSubpart($subpart,'###SUBPART###'); 
> $liste = "";
> 	while($row=$GLOBALS['TYPO3_DB']->sql_fetch_assoc($res))
> 	{
> 		$markerArray['###BEST_PLAYER###']= $row ['spaltennme'];
> 		$liste .= $this->cObj->substituteMarkerArrayCached($subpart,$markerArray);
> 		}
> 	$subpartArray['###SUBPART###']=$liste;
> ```

Den Code muss ich noch inhallieren, im Prinzip mache ich das ja auch so. Aber den folgenden Teil, habe ich noch nicht so ganz verstanden:
??????????

```php
<?php	$liste .= $this->cObj->substituteMarkerArrayCached($subpart,$markerArray);
		}
	$subpartArray['###SUBPART###']=$liste;
?>
```

??????????

> **vince schrieb:**
>
> im template:
>
> ```html
> <!--###SUBPART###-->
>       ###BEST_PLAYER###
> <!--###SUBPART###-->
> ```
>
> So wird mit jeder Schleifen iteration der Marker ###BEST_PLAYER### mit dem Datenbank eintrag gefüllt...
>
> Geht so auch in jeder anderen Schleife (ein array kann auf die Art auch durchlaufen werden), fallse deine Inhalte nicht aus einer DB kommen.
>
> Gruß,
>
> Vince.

Ich guck mir das nochmal in Ruhe an.
Aber Vielen dank schonmal für die Antworten, Vince!
Sefer

---

Quelle: „Problem mit HTML-Markern und Subpart bzw. Wrapped-Subpart“, typo3.net, https://www.typo3.net/d/102672-problem-mit-html-markern-und-subpart-bzw-wrapped-subpart
Beiträge von Mitgliedern des Forums. Bitte mit Link auf die Diskussion zitieren.
