Zum Inhalt springen

Element ausblenden per Abfrage (maxItems)

Erstellt am 20. Dezember 2007 · 7 Antworten · letzte Antwort am 4. Januar 2008

Tags: Frage

TheFreeman ·

Hi.

Ich habe ein kleines Problem mit meinem Menü.
Erstmal das Script:

lib.leftpreviewtemp = COA
lib.leftpreviewtemp {
	10 = HMENU
	10.special = directory
	10.special.value = 19
	10.stdWrap.wrap = <div class="menublock">|</div>
	10.stdWrap.required = 1
	10.maxItems = 5
	
	10.1 = TMENU
	10.1.noBlur = 1
	10.1.collapse = 0
	10.1 {
		NO = 1
		NO.allWrap = <div class="item_no">|</div>
		
		ACT = 1
		ACT.allWrap = <div class="item_act">|</div>
		ACT.doNotLinkIt = 1
	}
	20 < lib.mehrlink
}

Ich habe hier die Angabe, dass nur maximal 5 Elemente angezeigt werden sollen.

10.maxItems = 5

Jetzt hätte ich aber gerne, dass auf der "Mehrlink" (20 < lib.mehrlink) nur angezeigt wird, wenn auch wirklich MEHR als 5 ELemente vorhanden sind.

Wie kann ich denn das bewerkstelligen? 😢

ArminB ·

moin,

als Ansatz:

stdWrap.append = TEXT
stdWrap.append {
  value = BlaBla
  if {
    isGreaterThan.numRows {
      table = pages
    }
    value =5
  }
}

Armin

TheFreeman ·

Hi,

die Abfrage funktioniert schon mal sehr gut.
Nur bräuchte ich jetzt bitte noch mal Eure Hilfe.
Und zwar muss ich die Abfrage noch irgendwie auf
den Wert von "10.special.value = 19" beziehen.
geht das?

lib.leftpreviewtemp = COA
lib.leftpreviewtemp {
	10 = HMENU
	10.special = directory
	10.special.value = 19
	10.stdWrap.wrap = <div class="menublock">|</div>
	10.stdWrap.required = 1
	10.maxItems = 5
	
	10.1 = TMENU
	10.1.noBlur = 1
	10.1.collapse = 0
	10.1 {
		NO = 1
		NO.allWrap = <div class="item_no">|</div>
		
		ACT = 1
		ACT.allWrap = <div class="item_act">|</div>
		ACT.doNotLinkIt = 1
	}
	
	20 < lib.mehrlink
	20.if {
		value = 6
		isLessThan.numRows {
    			table = pages
			select {
				pidInList.cObject = TEXT
				pidInList.cObject.data = TSFE:page|pid
			}
		}
		negate = 1
	}
}
TheFreeman ·

Also das hier ist mein Problem:

pidInList.cObject.data = TSFE:page|pid

Ich brauche eigentlich die Anzahl aller Unterseiten einer ganz bestimmten PID.
Geht das?

TheFreeman ·

Ja, da hast Du recht #giggle#

So funktionierts jetzt endlich:

lib.leftpreviewtemp = COA
lib.leftpreviewtemp {
	10 = HMENU
	10.special = directory
	10.special.value = 19
	10.stdWrap.wrap = <div class="menublock">|</div>
	10.stdWrap.required = 1
	10.maxItems = 5
	
	10.1 = TMENU
	10.1.noBlur = 1
	10.1.collapse = 0
	10.1 {
		NO = 1
		NO.allWrap = <div class="item_no">|</div>
		
		ACT = 1
		ACT.allWrap = <div class="item_act">|</div>
		ACT.doNotLinkIt = 1
	}
	
	20 < lib.mehrlink
	20.if {
		value = 6
		isLessThan.numRows{
    			table = pages
			select {
				pidInList.cObject = TEXT
				pidInList.cObject.value = 19
				where = nav_hide!=1 AND doktype!=5 AND doktype!=6
			}
		}
		negate = 1
	}
}

Jetzt habe ich nur noch ein Problem, welches ich nicht nachverfolgen und verstehen kann:

Wenn ich nun aus dem

isLessThan.numRows{

folgendes mache,

isGreaterThan.numRows{

dann bekomme ich folgende Fehlermeldung ausgegeben:

NO entry in the $TCA-array for the table "". This means that the function enableFields() is called with an invalid table name as argument.

Kann mir das vielleicht jemand erklären?

Und vielen Dank für Eure Hilfen! 8-)