---
title: "HMENU mit stdWrap.override.cObject für Seiten ohne Content >> Problem mit Seiten vom TYP Externe URL"
url: "https://www.typo3.net/d/85158-hmenu-mit-stdwrapoverridecobject-fuer-seiten-ohne-content-problem-mit-seiten-vom-typ-externe-url"
source: "typo3.net"
tags: ["TYPO3","Menüs","Frage"]
created: "2008-12-18"
last_reply: "2009-01-12"
replies: 3
solved: false
page: 1
pages: 1
lang: "de"
---

# HMENU mit stdWrap.override.cObject für Seiten ohne Content >> Problem mit Seiten vom TYP Externe URL

TYPO3 › Menüs · 3 Antworten · gestartet 2008-12-18

## Eröffnungsbeitrag

**andimohr** · 2008-12-18 · [Beitrag #1](https://www.typo3.net/d/85158-hmenu-mit-stdwrapoverridecobject-fuer-seiten-ohne-content-problem-mit-seiten-vom-typ-externe-url/1)

Ich habe erfolgreich ein HMENU eingebunden, das alles sauber macht wie angegeben: Eine Seite ohne Inhalt erscheint nicht verlinkt im Ergebnis.

Nur leider werden auch Seiten vom Typ "External URL" nicht verlinkt, weil diese keinen Eintrag injh der tt_content haben.

```typoscript
lib.LinkListStructure = HMENU
lib.LinkListStructure.entryLevel = -1
lib.LinkListStructure {  
  1 = TMENU
  1.expAll = 1
  1 {
    wrap = <ul>|</ul>
    NO = 1
    NO {
        doNotLinkIt = 1
        wrapItemAndSub = <li class="no">|</li>
        
        #variante 1
        stdWrap.override.cObject = TEXT
        stdWrap.override.cObject {
          field = title
          typolink.parameter.field = uid
          if.isTrue.numRows {
            table = tt_content
            select.pidInList.field = uid
          }
        }  
    }
    ACT = 1
    ACT < .NO
    ACT.wrapItemAndSub = <li class="act"> |</li>
    
    CUR = 1
    CUR < .NO
    CUR.doNotLinkIt = 1
    CUR.wrapItemAndSub = <li class="act"> | </li>
  }
  2 < .1
  3 < .1
}
```

Ich habe versucht folgende Abfrage in den Unterschiedlichsten Varianten und an den unterschiedlichsten Stellen im TS Code oben einzubauen und blieb mangels verwertbarer Doku und Google Suchergebnisse bisher erfolglos:

```typoscript
if.isTrue.field = url {
  doNotLinkIt = 1
}

if.isTrue.url {
  doNotLinkIt = 1
}
```

Dabei unterstelle ich dass in der Tabelle ´pages´ für diese Seiten das Feld ´url´ belegt ist (wollen wir das mal an dieser Stelle nicht weiter vertiefen).

Am meisten habe ich mir davon versprochen ein CASE im override cObject mit einzubauen, ich habe aber den Eindruck, dass TS nur ein CASE verträgt... oder ich verstehe das Konstrukt einfach nicht:

```typoscript
...
        #variante 2
        stdWrap.override.cObject = CASE
        stdWrap.override.cObject {
          field = title
          typolink.parameter.field = uid
          if.isTrue.numRows {
            table = tt_content
            select.pidInList.field = uid
          }
          # Ist die Seite vom Typ Externe URL?

          if.isTrue.url {
            ??? blablabla ???
          }
        }
...
```

Entdeckt jemand den Entscheidenden Denkfehler in meiner Logik?

## Antworten

### [#2](https://www.typo3.net/d/85158-hmenu-mit-stdwrapoverridecobject-fuer-seiten-ohne-content-problem-mit-seiten-vom-typ-externe-url/2) · ArminB · 2008-12-31

moin,

nimm einfach:

```typoscript
if.isTrue.field = url
```

Armin

### [#3](https://www.typo3.net/d/85158-hmenu-mit-stdwrapoverridecobject-fuer-seiten-ohne-content-problem-mit-seiten-vom-typ-externe-url/3) · andimohr · 2009-01-07

Vielen dank ArminB, die Formulierung hat zweifelsfrei Auswirkungen auf mein Menü. Leider habe ich ganz offensichtlich NULL Ahnung wie Conditions und CASE Statements in TS CODE funktionieren. Ich bin Blöd!  #angry#

Ich möchte einem Redakteure überlassen ob eine Ebene nur als logische Ebene verwendet wird, ohne dass die Notwendigkeit besteht überall Inhalte einzupflegen - wie in meinem Beispiel eine Ebene für die Strukturiereung für Doku Zwecke.

Mein Ziel ist es ja die komplette Struktur ab einem bestimmten Einstiegspunktes als Menü anzuzeigen (wie eine Inhaltsverzeichnis), das Funktioniert mit dem bisherigen TS auch mit einer wichtigen Einschränkung. Extern URLs werden auch nicht verlinkt.

Mal eins nach dem anderen... das TS "lib.LinkListStructure" das ich am 18.12.2008 eingestellt habe liefert mir das Menü fast so wie ich es brauche (Unterstrichen bedeutet verlinkt, alle nicht verlinkten Menüpunkte sind tatsächlich ohne Inhalte):

- Entwicklungsumgebung
- Personalisierung
- - Simple Logout [<- Externe URL]
- - Benutzer Sync MySQL
- Frontend Usergruppen
- - Dokumentation
- Berechtigungen Backend
- - Dokumentation

...abgesehen von "Simple Logout", da ist kein Content hinterlegt, sondern eine Seite vom Typ "Externe URL" die das LogOut demonstriert. Diese sollte also auch verlinkt angezeigt werden.

Ich habe also die Condition if.isTrue.field = url in ein CASE Konstrukt mit eingebaut. Das CASE Konstrukt sollte nach meinem dafürhalten so aussehen:

```typoscript
lib.linkListStructureAdvanced = HMENU
lib.linkListStructureAdvanced.entryLevel = -1
lib.linkListStructureAdvanced {  
  1 = TMENU
  1.expAll = 1
  1 {
    wrap = <ul>|</ul>
    NO = 1
    NO {
        doNotLinkIt = 1
        wrapItemAndSub = <li class="no">|</li>
        
        #variante 2
        stdWrap.override.cObject = CASE
        stdWrap.override.cObject {
          field = title
          typolink.parameter.field = uid
          #1. CASE - ist Inhalt hinterlegt?
          if.isTrue.numRows {
            table = tt_content
            select.pidInList.field = uid 
          }
        }
    }
    ACT = 1
    ACT < .NO
    ACT.wrapItemAndSub = <li class="act"> |</li>
    
    CUR = 1
    CUR < .NO
    CUR.doNotLinkIt = 1
    CUR.wrapItemAndSub = <li class="act"> | </li>
  }
  2 < .1
  3 < .1
}
```

Ich habe bisher nur in der 14. Zeile des TS Code das Wort TEXT durch das Wort CASE ersetzt - und erhalte als Ergebnis das Menü komplett ohne Links.

- Entwicklungsumgebung
- Personalisierung
- - Simple Logout
- - Benutzer Sync MySQL
- Frontend Usergruppen
- - Dokumentation
- Berechtigungen Backend
- - Dokumentation

Vielleicht braucht die Logik des TS ja auch schlicht und ergreifend einen zweiten Fall um überhaupt funktionieren zu können, nun, dann gebe ich ihm halt was, das sieht dann also so aus:

```typoscript
lib.linkListStructureAdvanced = HMENU
lib.linkListStructureAdvanced.entryLevel = -1
lib.linkListStructureAdvanced {  
  1 = TMENU
  1.expAll = 1
  1 {
    wrap = <ul>|</ul>
    NO = 1
    NO {
        doNotLinkIt = 1
        wrapItemAndSub = <li class="no">|</li>
        
        #variante 2
        stdWrap.override.cObject = CASE
        stdWrap.override.cObject {
          field = title
          typolink.parameter.field = uid
          if.isTrue.numRows {
            table = tt_content
            select.pidInList.field = uid 
          }
          if.isTrue.field = url {
            doNotLinkIt = 0
            ATagTitle.field = url // subtitle // title
          }       
        }
    }
    ACT = 1
    ACT < .NO
    ACT.wrapItemAndSub = <li class="act"> |</li>
    
    CUR = 1
    CUR < .NO
    CUR.doNotLinkIt = 1
    CUR.wrapItemAndSub = <li class="act"> | </li>
  }
  2 < .1
  3 < .1
}
```

Case 1 Zeile 16-21, CASE 2 Zeile 22-25... Nun werden mir in meinem Menü nur noch die oberste Ebene angezeigt - alles unverlinkt:

- Entwicklungsumgebung
- Personalisierung
- Frontend Usergruppen
- Berechtigungen Backend

Wer kann einem Trottel helfen?  :o  :o Wie funktioiert ein CASE? Funktioiert ein CASE in Verbindung mit stdWrap.override.cObject überhaupt? Taugt die Idee die ich Verfolge eigentlich als Lösung? Sollte ich die Sache vielleicht lieber ganz anders anenken? Hat jemand eine Lösung?

### [#4](https://www.typo3.net/d/85158-hmenu-mit-stdwrapoverridecobject-fuer-seiten-ohne-content-problem-mit-seiten-vom-typ-externe-url/4) · andimohr · 2009-01-12

Ich habe eine Lösung - aus meiner Sicht sehr unorthodox und nur mit viel Trial and Error und jeder Menge penetrantes dranbleiben erarbeitet.

Es wäre sehr hilfreich wenn mir jemand erklären könnte wie man an so etwas in Typo 3 logisch herangehen kann - ich habe bisher kein Tutorial gefunden in dem die Logik von Typoscript in irgend einer Form nachvollziehbar dargestellt wird...

...aber es tut: ein Menü in dem nur die Links dargestellt werden für die auch tatsächlich Inhalte hinterlegt sind oder für die eine Externe URL gepflegt ist. Hilfreich, wenn man zum Beispiel ein umfangreiches Handbuch in Typo3 anlegt und eine Buchartige Navigation verwendet werden soll. Dabei kann man auch mal eine PDF Datei einbinden statt Inhaltselemente zu verwenden. Man kann also auch Inhaltslose Seiten einbauen die nur zum Zweck der Gliederung in der Struktur eingebaut sind.

Falls das auch einfacher gegengen wäre: ich habe nix gefunden!

```typoscript
lib.linkListStructureAdvanced = HMENU
lib.linkListStructureAdvanced.entryLevel = -1
lib.linkListStructureAdvanced {  
  1 = TMENU
  1.expAll = 1
  1 {
    wrap = <ul>|</ul>
    NO = 1
    NO {
    
      doNotLinkIt = 1
      wrapItemAndSub = <li class="no">|</li>
      
      stdWrap.cObject = CASE 
      stdWrap.cObject {
        key.field = doktype
        default = TEXT
        default { 
          #typolink.parameter.field = uid 
          field = title
          stdWrap.htmlSpecialChars = 1
        }
        3 = TEXT
        3 {
          field = title 
          typolink.parameter.field = url 
          #typolink.extTarget.field = target
          #besser ist das:
          typolink.target.field = target
        }
      }
      
      stdWrap.override.cObject = TEXT
      stdWrap.override.cObject {
         field = title
        typolink.parameter.field = uid
        if.isTrue.numRows {
            table = tt_content
            select.pidInList.field = uid 
          }
        }  
    }
    ACT = 1
    ACT < .NO
    ACT.wrapItemAndSub = <li class="act">|</li>
    
    CUR = 1
    CUR < .NO
    CUR.doNotLinkIt = 1
    CUR.wrapItemAndSub = <li class="act">|</li>
  }
  2 < .1
  3 < .1
}
```

---

Quelle: „HMENU mit stdWrap.override.cObject für Seiten ohne Content >> Problem mit Seiten vom TYP Externe URL“, typo3.net, https://www.typo3.net/d/85158-hmenu-mit-stdwrapoverridecobject-fuer-seiten-ohne-content-problem-mit-seiten-vom-typ-externe-url
Beiträge von Mitgliedern des Forums. Bitte mit Link auf die Diskussion zitieren.
