Zum Inhalt springen

ExcludeUidList mit IF-Abfrage im Menü

Erstellt am 7. Juli 2014 · 3 Antworten · letzte Antwort am 7. Juli 2014

Tags: Frage

the_rangerider ·

Hallo zusammen,

ich glaube ich stehe gerade auf dem Schlauch.
Ich erstelle gerade ein Menü. In dieses Menü soll die Seite "Aktuelles" nicht eingeschlossen werden, wenn Sie keine Inhalte enthält.

Mein TS:

# Linkes Menü
     LEFT-MENU = COA
     #Titel des Menüpunktes als Überschrift über dem Menü
     LEFT-MENU.5 = TEXT
     LEFT-MENU.5 {
       data = leveltitle:2
       insertData = 1
       dataWrap = <div class="nav-header">|</div>
     }
     LEFT-MENU.10 = HMENU
     LEFT-MENU.10 {
       #Menüeintrag 'Aktuelles' ausblenden, wenn keine Meldungen vorhanden
       
       if.isTrue.numRows{
         table=tt_news
         select.pidInList = 214
       }
       #excludeUidList = 16
              
       includeNotInMenu = 0
       entryLevel = 2
       1 = TMENU
       1 {
        wrap = <ul>|</ul>
        expAll = 0
        noBlur = 1

        NO = 1
        NO {
           ATagTitle {
            field = title
            fieldRequired = nav_title
           }
           wrapItemAndSub = <li class="left_{field:uid}>|</li>
           wrapItemAndSub.insertData = 1
           stdWrap.htmlSpecialChars = 1
        }
         
        IFSUB = 1
        IFSUB < .NO
        IFSUB {
          wrapItemAndSub = <li class="subpages">|</li>         
          ATagBeforeWrap = 1
         }

        ACT = 1
        ACT < .NO
        ACT {
          ATagParams = class="active"
        }

        CUR = 1
        CUR < .NO
        CUR {
          ATagParams = class="selected"
        }

        CURIFSUB < .IFSUB
        CURIFSUB {
          ATagParams = class="selected"
        }  
      }
      2 < .1
      3 < .2
      stdWrap.prepend =< lib.srHint
     }

Das Menü funktioniert wunderbar.

Mit

if.isTrue.numRows{
         table=tt_news
         select.pidInList = 214
       }

blende ich logischer Weise das komplette Menü aus, wenn die tt_news-Tabelle nichts enthält.
Aber wie bekomme ich jetzt die Kurve zu
"Wenn die tt_news-Tabelle leer ist, dann die Seite mit UID=16 nicht im Menü anzeigen."
Ich stehe da im Moment auf dem Schlauch.
Ich wäre dankbar für einen Hinweis.

Vielen Dank im Voraus.

the_rangerider

Julian.​Hofmann ·

Hallo.

Nachdem excludeUidList stdWrap-Eigenschaften hat, dürfte die Lösung darin liegen, das if nicht auf das HMENU anzuwenden, sondern direkt auf das excludeUidList.

LEFT-MENU.10 {
  # Menüeintrag 'Aktuelles' ausblenden, wenn keine Meldungen vorhanden
  excludeUidList = 16
  excludeUidList.if.isTrue.numRows{
    table=tt_news
    select.pidInList = 214
  }
}

Viele Grüße
Julian

Julian.​Hofmann · · Beste Antwort

Korrektur: MUss natürlich ein ifFalse sein, der Ausschluss ja gelten soll, wenn keine News-Artikel da sind, d.h. numRows==0

the_rangerider ·

Hallo Julian,

vielen Dank. Genau das wars. Eigentlich logisch. Manchmal sollte man eben doch früher die Kiste ausschalten und noch einmal drüber schlafen.
Korrektur Deiner Korrektur: if.isFalse statt ifFalse
Besten Dank noch einmal
Viele Grüße

the_rangerider