---
title: "alternierendes Layout"
url: "https://www.typo3.net/d/51698-alternierendes-layout"
source: "typo3.net"
tags: ["Extensions","Entwicklung","Frage"]
created: "2006-10-14"
last_reply: "2006-10-15"
replies: 2
solved: false
page: 1
pages: 1
lang: "de"
---

# alternierendes Layout

Extensions › Entwicklung · 2 Antworten · gestartet 2006-10-14

## Eröffnungsbeitrag

**rene_afew** · 2006-10-14 · [Beitrag #1](https://www.typo3.net/d/51698-alternierendes-layout/1)

Hallo!
Wie kann ich in meiner Extension ein alternierendes Layout realisieren? In der Ausgabe benötige ich eine HTML-Tabelle mit Zeilen, die jeweils 2 TDs haben. Also so:

```html
<table>
<tr>
<td> Datensatz_1 </td>
<td> Datensatz_2 </td>
</tr>
<tr>
<td> Datensatz_3 </td>
<td> Datensatz_4 </td>
</tr>
...
</table>
```

<td> Datensatz_ODD </td> hätte dann ein Layout und <td> Datensatz_EVEN </td> ein anderes (also die ungeraden eines und die geraden ein anderes).

Mein Template hat normalerweise 2 Teilbereiche - 1. den umfassenden und 2. einen, der Teil des 1. Teilbereiches ist. Bei meinem alternierenden Layout brauche ich aber 3 Teilbereiche -  den umfassenden und 2 untergeordnete Teilbereiche. Das heißt für jeden der beiden alternierenden Layouts einen.

Mit...

```php
// odd|even mit bit-operatoren                       
$content .= ($zaehler & 1) ? $this->cObj->substituteMarkerArrayCached($tmpl_eintrag_odd, $marker) : $this->cObj->substituteMarkerArrayCached($tmpl_eintrag_even, $marker);
```

...kann ich in der Schleife feststellen, wann ein gerader und wann ein ungerader Datensatz an der Reihe ist.

Ich hatte mit: $this->cObj->substituteMarkerArrayCached($tmpl;$marker); und abschließend mit:
this->cObj->substituteSubpart($tmpl;###MARKER###;$content);
gearbeitet, aber das alternierende Layout nicht bekommen.

Gruß Renè

## Antworten

### [#2](https://www.typo3.net/d/51698-alternierendes-layout/2) · Stoneage · 2006-10-14

<http://wiki.typo3.org/index.php/Extension_Development%2C_using_HTML-Templates>

### [#3](https://www.typo3.net/d/51698-alternierendes-layout/3) · rene_afew · 2006-10-15

Hallo Tetramatrix,
der Link geht auf das 'HTML-Templating Tutorial' und das läßt keine Frage offen.

Ich habe mein 2-Spalten-Layout in einer HTML-Tabelle so gemacht:

das 2-Spalten-Template:

```html
 <h3>MYTEMPLATE</h3>
<em>This is the alternative rows html template</em>
<!-- ###MYTEMPLATE### begin -->
 <table>
 <!-- ###SINGLEROW### begin -->

   <!-- ###ITEM### -->
    <tr>
     <td>###MARKER1### ###MARKER2###</td>
   <!-- ###ITEM### -->

   <!-- ###ITEM_ALT### -->
     <td>###MARKER1### ###MARKER2###</td>
    </tr>
   <!-- ###ITEM_ALT### --> 
 
 <!-- ###SINGLEROW### end --> 
 </table>
<!-- ###MYTEMPLATE### end -->
```

Das PHP dazu:

```php
# Die Template-Datei liegt wo?
$this->templateCode = $this->cObj->fileResource($this->conf['templateFile']);
 
# Die Subparts aus dem Template holen
$template['total'] = $this->cObj->getSubpart($this->templateCode,'###MYTEMPLATE###');
$template['singlerow'] = $this->cObj->getSubpart($template['total'],'###SINGLEROW###');
$template['row'] = $this->cObj->getSubpart($template['singlerow'],'###ITEM###');
$template['row_alt'] = $this->cObj->getSubpart($template['singlerow'],'###ITEM_ALT###');	
		
$switch_row = 0;

while ($row = $GLOBALS['TYPO3_DB']->sql_fetch_assoc($res)) {
 # Content in das Marker-Array
 $markerArray['###MARKER1###'] = $row['username'];             
 $markerArray['###MARKER2###'] = $row['price'];

# Datensätze abwechselnd den beiden Subparts '###ITEM###' und '###ITEM_ALT###' zuweisen (den beiden Spalten im Template) 
 $switch_row = $switch_row ^ 1;
 if($switch_row) {
 	$content_item .= $this->cObj->substituteMarkerArrayCached($template['row'], $markerArray, array(), array());
 } else {
 	$content_item .= $this->cObj->substituteMarkerArrayCached($template['row_alt'], $markerArray, array(), array());
 }
}   

$subpartArray['###SINGLEROW###'] = $content_item; 
 
$content = $this->cObj->substituteMarkerArrayCached($template['total'], array(), $subpartArray, array());
return $content;
```

Danke für die schnelle Hilfe
Renè

---

Quelle: „alternierendes Layout“, typo3.net, https://www.typo3.net/d/51698-alternierendes-layout
Beiträge von Mitgliedern des Forums. Bitte mit Link auf die Diskussion zitieren.
