---
title: "HMENU special füttern"
url: "https://www.typo3.net/d/89655-hmenu-special-fuettern"
source: "typo3.net"
tags: ["Extensions","Entwicklung","Frage"]
created: "2009-05-13"
last_reply: "2009-05-15"
replies: 7
solved: false
page: 1
pages: 1
lang: "de"
---

# HMENU special füttern

Extensions › Entwicklung · 7 Antworten · gestartet 2009-05-13

## Eröffnungsbeitrag

**urs_braem** · 2009-05-13 · [Beitrag #1](https://www.typo3.net/d/89655-hmenu-special-fuettern/1)

Liebe Leute

ich schreibe gerade meine erste Extension. Ganz was einfaches. Ich will ein HMENU (special = list) mit Seiten-IDs aus einer eigens angelegten Tabelle füttern.

Was vorher, als meine IDs noch Konstanten waren, reibungslos geklappt hat, geht jetzt nimmer.

Was muss ich beachten, damit HMENU.special = list etwas mit meiner Liste (die ich als Textobjekt ausgeben kann, zB 5,8,75,) anfangen kann?

Danke!
Urs

## Antworten

### [#2](https://www.typo3.net/d/89655-hmenu-special-fuettern/2) · just2b · 2009-05-13

Hallo und willkommen im Forum,

wie wärs mit

```typoscript
special.value.cObject < temp.deintextobject
```

lg georg

### [#3](https://www.typo3.net/d/89655-hmenu-special-fuettern/3) · urs_braem · 2009-05-13

vielen - vielen - herzlichen Dank!

Erstens geht es und zweitens werde ich mit der TSRef auch noch herausfinden, warum.

Einen tollen Tag
Urs

### [#4](https://www.typo3.net/d/89655-hmenu-special-fuettern/4) · just2b · 2009-05-13

> **urs_braem schrieb:**
>
> zweitens werde ich mit der TSRef auch noch herausfinden, warum.

das ist eine sehr gute einstellung.

tipps dazu > schau bei special > bei value wird sehen, dass das stdWrap funktionalität hat, deswegen dann bei stdwrap schauen, da findest du das cObject. der < ist dann eine normale zuweisung. es ginge ja auch

```typoscript
special.value.cObject = TEXT
special.value.cObject.value  =123
```

viel spaß
georg

### [#5](https://www.typo3.net/d/89655-hmenu-special-fuettern/5) · urs_braem · 2009-05-13

... dann ginge bzw geht es also auch so:

```typoscript
temp.displayedpages.cObject  = CONTENT
```

und dann

```typoscript
     special = list
      special.value < temp.displayedpages
```

Nur habe ich weiter unten eine if-Abfrage, die mich wahnsinnig macht.

```typoscript
temp.displayedpages_wimage.cObject  = CONTENT

....

stdWrap.if {
                       isInList.field = uid 
                              #value = 9,22,15,5,
                              value < temp.displayedpages_wimage
                              negate = 1
}
```

Es gibt 2 solche Abfragen, die eine mit negate, die andere ohne.
Wenn ich die Werte händisch eintrage, beissen die sich nicht, aber wenn ich sie reinkopiere, wird das Verhalten erratisch. Ich habe überall "cObject" hinzusetzen versucht, aber habs nicht hingekriegt. Darum frage ich jetzt halt nochmal, leider: ....

und wie muss ich denn so ein stdWrap.if füttern, damit es meinen Wert versteht?

Danke.....!
Urs

### [#6](https://www.typo3.net/d/89655-hmenu-special-fuettern/6) · just2b · 2009-05-13

keine ahnung ob das temp.displayedpages.cObject  schon falsch ist, aber bei value  brauchts halt wieder ein value.cObject oder ein value.stdWrap.cObject

### [#7](https://www.typo3.net/d/89655-hmenu-special-fuettern/7) · urs_braem · 2009-05-13

Habe mal alle temp.displayedpages.cObject in special.value.cObject umgestellt. Genau gleich. Habe eher den Verdacht, dass die if-Funktion da spinnt. Schade, dass es kein if-else gibt in Typoscript. Muss vielleicht versuchen, es ganz anders zu lösen.

Gruss!
Urs

### [#8](https://www.typo3.net/d/89655-hmenu-special-fuettern/8) · urs_braem · 2009-05-15

Gelöst! Ich nehm zurück, was ich da behauptet habe wegen fehlendem if-else. Geht sehr wohl, einfach mit CASE.

Der Fehler war folgender: weil ich keinen anständigen Entweder-Oder-Switch hinbrachte, hatte ich einfach zwei CONTENT-Objekte mit den identischen if-Bedingungen hintereinandergesetzt, das eine einfach mit "negate = 1". Das geht aber so nicht, die beissen sich.

Das zweite Contentobjekt hat in der Folge immer einen Datensatz weniger aus tt_content ausgelesen, als es sollte (mit dem Ergebnis, dass gar nichts angezeigt wurde, wenn nur 1 Datensatz auf der Seite war).

Interessant und mir unerklärlich ist aber, dass dieses Verhalten nur aufgetreten ist, wenn die für den Vergleich herbeigezogene Kommaliste als Objekt kopiert wurde, also so:

```typoscript
10.if {
                              isInList.field = uid
                              value.cObject < temp.displayedpages_wimage
                              negate = 1
                              }
```

War sie statisch erfasst, also:

```typoscript
                       10.if {
                              isInList.field = uid 
                              value = 1,3,9,20
                              negate = 1
                              }
```

wurden alle Datensätze komplett ausgelesen. Seltsam...

Aber eben, die Botschaft ist: wenn es entweder-oder sein soll - dann CASE.

Danke Georg nochmal für die initiale Hilfe...
Urs

***

Weil ich beim recherchieren nicht viele Beispiele für CASE gefunden habe, hier mein Code, vielleicht bringt's wem mal was. Wir befinden uns in einem TMENU; hier werden Texte aus einer Tabelle ausgelesen, die dann in unterschiedlicher Länge (je nachdem, ob sie in der Liste sind oder nicht) gecroppt werden.

Das Objekt temp.displayedpages_wimage ist eine Kommaliste mit UIDs, die mit RECORDS aus einer Tabelle geholt worden sind.

```typoscript
temp.gecroppte_texte = CASE
temp.gecroppte_texte {
                           key.cObject = COA
                           key.cObject {
                           10 = TEXT
                           10.value = long
                           10.if {
                              isInList.field = uid 
                              value.cObject < temp.displayedpages_wimage
                              negate = 1
                              }
                           20 = TEXT
                           20.value = short
                           20.if{
                              isInList.field = uid 
                              value.cObject < temp.displayedpages_wimage
                              negate = 0
                              }
                           }
                           default = TEXT
                           default.value >
                           
                           short = CONTENT
                           short {
                              table = tt_content
                              select {
                                     pidInList.field = uid
                                     where = colPos = 0      
                                   }
                              stdWrap {
                                 stripHtml = 1
                                 wrap = </strong><br />|
                                 crop = 100 | ... | 1
                                 }
                           }
                           
                           long = CONTENT
                           long < .short
                           long.stdWrap.crop = 180 | ... | 1

}
```

---

Quelle: „HMENU special füttern“, typo3.net, https://www.typo3.net/d/89655-hmenu-special-fuettern
Beiträge von Mitgliedern des Forums. Bitte mit Link auf die Diskussion zitieren.
