---
title: "Mehrstufige Ausgabe von eigener Extension"
url: "https://www.typo3.net/d/42502-mehrstufige-ausgabe-von-eigener-extension"
source: "typo3.net"
tags: ["Extensions","Entwicklung","Frage"]
created: "2006-05-04"
last_reply: "2006-06-01"
replies: 20
solved: false
page: 1
pages: 1
lang: "de"
---

# Mehrstufige Ausgabe von eigener Extension

Extensions › Entwicklung · 20 Antworten · gestartet 2006-05-04

## Eröffnungsbeitrag

**resta** · 2006-05-04 · [Beitrag #1](https://www.typo3.net/d/42502-mehrstufige-ausgabe-von-eigener-extension/1)

Hallo, hab lange gesucht aber noch keine Lösung gefunden.

Ich habe ein Extension geschrieben um eine Referenz-Liste/Detailansicht zu realisieren. Ich habe die Ext. per Klickstarter erstellt und meine "tx_portfolio_pi1.php" modifiziert, klappt auch alles soweit.

Was ich bisher nicht geschafft habe ist die Ergebnisse der Listenansicht einzuschränken bzw. eine Vorauswahl zu treffen.
Also, Ich habe u. a.: Kunde, Projekt, Kategorie in der Liste, die ich unterschiedlich sortieren kann.

Ich hätte aber gerne erst nur eine Liste der Kunden. Bei Auswahl (Klick) eine Liste aller Projekte des Kunden und dann die Detailansicht.

Ich habe bisher leider kein passendes Beispiel gefunden, hat jemand eine Idee wie man das umsetzen kann?

## Antworten

### [#2](https://www.typo3.net/d/42502-mehrstufige-ausgabe-von-eigener-extension/2) · tandem · 2006-05-04

Auf welche Typo3-Version bezieht sich deine Frage?

### [#3](https://www.typo3.net/d/42502-mehrstufige-ausgabe-von-eigener-extension/3) · resta · 2006-05-04

TYPO3 4.0rc1

Macht es einen Unterschied welche Version in Nutze?
Der PHP Code ist doch dergleiche, oder?

### [#4](https://www.typo3.net/d/42502-mehrstufige-ausgabe-von-eigener-extension/4) · just2b · 2006-05-04

> **resta schrieb:**
>
> TYPO3 4.0rc1

die final ist schon lang raus! mach ein update und arbeite nicht mit RC wenns was bessers gibt

### [#5](https://www.typo3.net/d/42502-mehrstufige-ausgabe-von-eigener-extension/5) · resta · 2006-05-04

ja ja, mache ich sofort wenn ich Zeit dafür habe.
Zunächst muss ich aber dieses Problem hier lösen....

### [#6](https://www.typo3.net/d/42502-mehrstufige-ausgabe-von-eigener-extension/6) · steffenk · 2006-05-04

Ich versteh Deine Problematik nicht - Du kannst doch in der Extension GET-Variablen auswerten und entsprechend reagieren, wie in jedem normalen php-skript auch.

### [#7](https://www.typo3.net/d/42502-mehrstufige-ausgabe-von-eigener-extension/7) · resta · 2006-05-05

Ist das nicht genau das was man nicht tun sollte?
Ein "normales" PHP-Script bekomme ich hin. Womit ich aber nicht klar komme ist das einbinden der Typo3 eigenen Klassen und Funktionen, was sich für mich sehr komplex und unüberschaulich gestaltet. Da komme ich über das reine anpassen des von Typo3 generierten Scripts nicht sonderlich weit hinaus.

### [#8](https://www.typo3.net/d/42502-mehrstufige-ausgabe-von-eigener-extension/8) · resta · 2006-05-05

Was ich eigendlich bräuchte wäre ein anschauliches Beispiel, und das es da nichts gibt finde ich merkwürdig, da ich nicht der Einzige zu sein scheine der daas Problem hat:

[/d/27984-nur-eine-kategorie-im-cd-collection-tutorial-anzeigen](https://www.typo3.net/d/27984-nur-eine-kategorie-im-cd-collection-tutorial-anzeigen)

### [#9](https://www.typo3.net/d/42502-mehrstufige-ausgabe-von-eigener-extension/9) · Fuzzy · 2006-05-05

Es ist schwer nachzuvollziehen wo dein Problem ist!

So wie ich es verstanden habe, willst du entweder nur Kunden angezeigt haben, oder dessen Produkte.

Also lasse dir die Liste als Link anzeigen und übergebe die Kundenid

$content .= "<a href=" . $this-">pi_getPageLink($GLOBALS["TSFE"]->id) . "&kundenid=" . $row["kundenid"] .  ">" . $row["kundenname"] . "</a>";

und vorher überprüfst du, ob kundenid übergeben wurde

if(isset($_GET["kundenid"]))
{
  // dann liste von produkten
}
else
{
  // dann liste der Kunden
}

wenn das der Fall ist, gibst du halt dessen produkte aus, ansonsten die Kundenliste...

War es das was du meintest?

### [#10](https://www.typo3.net/d/42502-mehrstufige-ausgabe-von-eigener-extension/10) · steffenk · 2006-05-05

das ist halt nicht Typo3-konform, das Prinzip ist aber richtig.

Linkerstellung - siehe erster Thread in diesem Forum

Statt $_GET sollte man mit $this->piVars prüfen. Dazu müssen aber die Parameter den entsprechenden Präfix haben.

### [#11](https://www.typo3.net/d/42502-mehrstufige-ausgabe-von-eigener-extension/11) · laufkraft · 2006-05-05

> **resta schrieb:**
>
> Ist das nicht genau das was man nicht tun sollte?
> Ein "normales" PHP-Script bekomme ich hin. Womit ich aber nicht klar komme ist das einbinden der Typo3 eigenen Klassen und Funktionen, was sich für mich sehr komplex und unüberschaulich gestaltet. Da komme ich über das reine anpassen des von Typo3 generierten Scripts nicht sonderlich weit hinaus.

Dem kann ich mich nur anschließen... Ich lese auch schon eine Doku nach der anderen, aber ich finde auch keinen richtigen Einstieg. Also ist dieser Thread auch für mich von Bedeutung.
Wobei ich das ganze gerne noch etwas ergänzen möchte: Wie kann man denn eine Bedingung im Script mit dem "code"-Feld wie man es in vielen Extensions findet ansprechen. Geht das überhaupt? Wenn ja, dann könnt ich meine Extension auf mehreren Seiten einbinden und ganz einfach über den "code" auswählen was auf der Seite geschehen soll...
Wäre etwas benutzerfreundlicher als nur auf der selben Seite durch klicken weiter zu kommen.
Bsp.:
Seite 1: Kunden anzeigen
Seite 2: Projekte anzeigen
Seite 3: neuen Kunden anlegen
etc...

### [#12](https://www.typo3.net/d/42502-mehrstufige-ausgabe-von-eigener-extension/12) · resta · 2006-05-05

Ich versuch mal anhand der letzten Posts eine Lösung zu erarbeiten.
Wenn ich es hinbekomme werde ich die Lösung vorstellen.
Das mit dem Code-Feld würde mich auch interessieren...

### [#13](https://www.typo3.net/d/42502-mehrstufige-ausgabe-von-eigener-extension/13) · crimson · 2006-05-05

Hallo resta,

ich hatte Dir ja schon in dem anderen Forum was dazu gesagt. Das code-Feld ist, soweit ich das sehe, ein Relikt vergangener Versionen und den Wert daraus kannst Du in Deiner Klasse mit
**$this->cObj->data['select_key']**
abrufen. Wenn ich das richtig versteht sollte es aber nicht mehr benutzt werden. Sauberer wäre ein eigenes Contentfeld mit einer Auswahloption z.B. so:

ext_tables.php

```php
"tx_meineExt_ExtAuslebung" => Array (		
		"exclude" => 1,		
		"label" => "LLL:EXT:meineExt/locallang_db.php:tt_content.tx_meineExt_ExtAuslebung",		
	"config" => Array (
		"type" => "select",
		"items" => Array (
			Array("LLL:EXT:meineExt/locallang_db.php:tt_content.tx_meineExt_ExtAuslebung_options.I.1", "auslebung1"),
			Array("LLL:EXT:meineExt/locallang_db.php:tt_content.tx_meineExt_ExtAuslebung_options.I.2", "auslebung2"),
				),
		)
	),
```

class.meineExt_pi1.php

```php
switch($this->cObj->data['tx_meineExt_ExtAuslebung']){
	case 'auslebung1':
		blabla;
	break;
	case 'auslebung2':
		blabla2;
	break;
}
```

Ist das verständlich?

### [#14](https://www.typo3.net/d/42502-mehrstufige-ausgabe-von-eigener-extension/14) · Fuzzy · 2006-05-05

Okay, dann versuche ich´s nochmal Typo3-konform.

(Danke für den Hinweis, wieder was gelernt :) Okay, bin ja auch erst seit ein paar Tagen dabei :o )

Also lasse dir die Liste als Link anzeigen und übergebe die Kundenid

```php
$temp_conf = $this->typolink_conf;
$temp_conf["additionalParams"] .= "&tx_EXTNAME_pi1[kundenid]=" . $row["kundenid"] ;
$temp_conf["useCacheHash"] = $this->allowCaching;
$temp_conf["no_cache"] = !$this->allowCaching;
$the_link = $this->local_cObj->typolink($row["kundenname"], $temp_conf);

$content .= $the_link;
```

und vorher überprüfst du, ob kundenid übergeben wurde

if(isset($this->piVars["kundenid"]))
{
// dann liste von produkten
}
else
{
// dann liste der Kunden
}

wenn das der Fall ist, gibst du halt dessen produkte aus, ansonsten die Kundenliste...

So besser? [/quote]

### [#15](https://www.typo3.net/d/42502-mehrstufige-ausgabe-von-eigener-extension/15) · Stoneage · 2006-05-05

> Wenn ich das richtig versteht sollte es aber nicht mehr benutzt werden. Sauberer wäre ein eigenes Contentfeld mit einer Auswahloption

Also wenn schon dann richtig und Flexform benutzen.

Link: <http://wiki.typo3.org/index.php/Extension_Development%2C_using_Flexforms>

### [#16](https://www.typo3.net/d/42502-mehrstufige-ausgabe-von-eigener-extension/16) · crimson · 2006-05-05

Hallo Tetramatrix,

ich gebe zu, dass ich mich mit Flexforms noch nicht außeinander gesetzt habe, worin liegt denn der Vorteil zu meiner Lösung?

Viele Grüße
der André

### [#17](https://www.typo3.net/d/42502-mehrstufige-ausgabe-von-eigener-extension/17) · Stoneage · 2006-05-05

1) Du darfst nur noch ein Datenbank-Feld in der tt_content Tabelle speichern.
2) Du darfst die TCA-Einstellung in einer XML-Datei abspeichern.
3) Im BE darfst Du die Felder direkt editieren.

### [#18](https://www.typo3.net/d/42502-mehrstufige-ausgabe-von-eigener-extension/18) · crimson · 2006-05-05

> **Tetramatrix schrieb:**
>
> 1) Du darfst nur noch ein Datenbank-Feld in der tt_content Tabelle speichern.
> **Wer sagt das? Ich darf oder ich brauche noch ein Feld**
> 2) Du darfst die TCA-Einstellung in einer XML-Datei abspeichern.
> **Da ich kein Fan von XML bin, will ich dass ja gar nicht  ;)**
> 3) Im BE darfst Du die Felder direkt editieren.
> **Das klingt recht attraktiv, wenn ich auch in diesem Fall die Recordslösung ausgesprochen gut finde. Ich muss mich wohl mal damit aueinandersetzen**

### [#19](https://www.typo3.net/d/42502-mehrstufige-ausgabe-von-eigener-extension/19) · steffenk · 2006-05-06

Ich will es mal etwas positiver formulieren:

Mit Flexforms müssen keine neuen Felder in tt_content angelegt werden, alle Werte werden serialisiert in einem Feld abgespeichert.

Flexforms lassen sich so beliebig durch editieren der xml-Datei erweitern, ohne das man weitere Eingriffe braucht.

In Flexforms hat man alle Typen von Eingabefeldern zur Verfügung, man kann bei vielen Parametern mehrere Tabs anlegen.

Alle modernen Extensions benutzen Flexforms (schaut Euch mal tt_news an, ist auch Flexform)

Flexforms sind der einfachste und flexibelste Weg um Usereingaben der Extension zu übergeben.

### [#20](https://www.typo3.net/d/42502-mehrstufige-ausgabe-von-eigener-extension/20) · resta · 2006-06-01

Hallo,
ist zwar schon etwas her aber ich habe es jetzt geschafft eine kategorie-liste zu erstellen welche die richtigen piVars übergibt.

Was ich leider noch nicht hinbekomme ist die pi_exec_query anzupassen um die Ausgabe einzuschränken:

```php
// Make listing query, pass query to SQL database:
   if ($this->piVars['category']){
   #  $addWhere = " AND category = ".$this->piVars['category'];
       $addWhere = "AND tx_portfolio_referenz.category LIKE '".$this->piVars["category"]."'";
       $res = $this->pi_exec_query('tx_portfolio_referenz',0,$addWhere);
   } else {
       $res = $this->pi_exec_query('tx_portfolio_referenz');
   }
```

ich bekomme nur eine Fehlermeldung wenn ich etwas auswähle.
Weiß jemand Rat?

### [#21](https://www.typo3.net/d/42502-mehrstufige-ausgabe-von-eigener-extension/21) · Stoneage · 2006-06-01

Falsch:

```php
$addWhere = "AND tx_portfolio_referenz.category LIKE..."
```

Richtig:

```php
$addWhere = " AND tx_portfolio_referenz.category LIKE..."
```

---

Quelle: „Mehrstufige Ausgabe von eigener Extension“, typo3.net, https://www.typo3.net/d/42502-mehrstufige-ausgabe-von-eigener-extension
Beiträge von Mitgliedern des Forums. Bitte mit Link auf die Diskussion zitieren.
