05.12.2011, 19:22
Hallo zusammen,
ich hänge mittlerweile schon länger an folgendem Prolem:
Ich möchte ein Kategorienmenü machen, das nach rechts ausklappt und die Unterkategorien anzeigt, falls vorhanden.
Das klappt auch soweit ganz gut. Das einzige Problem ist, dass die Unterkategorien nicht angezeigt werden.
Die Ausgabe sieht also so aus:
Die Unterkategorie wird also nicht angezeigt, ich weiß nur nicht warum, denn vorhanden ist sie.
Hier noch mein TS-Code:
Vielen Dank und viele Grüße!
ich hänge mittlerweile schon länger an folgendem Prolem:
Ich möchte ein Kategorienmenü machen, das nach rechts ausklappt und die Unterkategorien anzeigt, falls vorhanden.
Das klappt auch soweit ganz gut. Das einzige Problem ist, dass die Unterkategorien nicht angezeigt werden.
Die Ausgabe sieht also so aus:
Code:
<ul>
<li>Kategorie</li>
<li>Kategorie 2
<ul></ul>
</li>
</ul>
Die Unterkategorie wird also nicht angezeigt, ich weiß nur nicht warum, denn vorhanden ist sie.
Hier noch mein TS-Code:
PHP-Code:
lib.catmenu = COA
lib.catmenu {
# hole alle Hauptkategorien
10 = CONTENT
10 {
# wrappe die gesamte Liste als "unsortierte Liste"
wrap = <ul id="mg-jsddm-unterrubriken">|</ul>
table = tt_news_cat
select {
# hier muss die pid eures News-Sysordners rein, bzw. wo die News-Kategorien gespeichert sind
pidInList = 4
orderBy = title
where = parent_category=0 AND deleted=0 AND hidden=0
}
renderObj = COA
renderObj {
# wrappe jede gefundene Hauptkategorie als Listenelement
wrap = <li class="mg-rubriken-kein-blau">|</li>
# ueberschreibe den vorherigen Wrap ...
wrap.override = <li class="news-catmenu-ACT">|</li>
# ... nur, wenn ...
wrap.override.if {
# ... eine News-Kategorie bereits ausgewaehlt wurde und per GET/POST ermittelt werden kann
value.data = GPvar:tx_ttnews|cat
# und dieser ermittelte Wert der aktuellen uid gleicht
equals.field = uid
}
# zeig mir den Kategorie-Titel und mache einen Link daraus zur Kategorie-Detail-Uebersicht
10 = TEXT
10 {
# das title-Feld soll als Text angezeigt werden (koennte man auch description... verwenden)
field = title
typolink {
# verlinke zu der Seite mit der News-Auflistung (Listenansicht)
parameter = 3
title.field = title
# fuege den GET-Parameter fuer die ausgewaehlte Kategorie hinzu
additionalParams.dataWrap = &tx_ttnews[cat]={field:uid}
# cHash mit uebergeben fuers Caching - Danke an ScubaBen fuer den Hinweis!
useCacheHash = 1
}
}
# zeig mir einen Counter aller News-Eintraege in dieser Kategorie
20 = CONTENT
20 {
table = tt_news_cat
select {
# hier wieder der Sysordner aller News-Eintraege und -Kategorien
pidInList = 4
join = tt_news_cat_mm ON (tt_news_cat.uid = tt_news_cat_mm.uid_foreign)
JOIN tt_news ON (tt_news.uid = tt_news_cat_mm.uid_local)
# dieses Where sorgt dafuer, dass auch die News der Unterkategorien 1 Ebene unterhalb
# gezaehlt werden - tiefere Ebenen koennen nicht beruecksichtigt werden
andWhere.dataWrap = (tt_news_cat.uid={field:uid} OR
# tt_news_cat.parent_category={field:uid}) AND tt_news.deleted=0 AND tt_news.hidden=0
# dieses Where zaehlt nur die News in dieser Kategorie
# andWhere.dataWrap = (tt_news_cat.uid={field:uid})
AND tt_news.deleted=0 AND tt_news.hidden=0
AND sys_language_uid={TSFE:sys_language_uid}
# fuehre einen count durch und speichere das Ergebnis in "counter"
selectFields = count(*) AS counter
}
renderObj = TEXT
renderObj {
# zeig mir nun das Ergebnis des Counters an und wrappe es
field = counter
wrap = <span>(|)</span>
}
}
# zeige mir alle Unterkategorien der aktuellen Kategorie an
30 = CONTENT
30 {
stdWrap {
# fuehre den Abschnitt nur aus, wenn in der Select-Abfrage ein Wert gefunden wurde
required = 0
wrap = <ul class="mg-rubriken-unterrubrik mg-kein-abstand">|</ul>
}
table = tt_news_cat
select {
pidInList = 4
orderBy = title
andWhere.dataWrap = parent_category={field:uid} AND deleted=0 AND hidden=0
}
# vererbe die Einstellungen von lib.CatList.10.renderObj an dieses renderObj
renderObj < lib.catList.10.renderObj
renderObj = COA
renderObj {
# zeige den Titel mit Verlinkung an, genauso wie bei lib.catList.10.renderObj.10 (vererbt)
10 < lib.catList.10.renderObj.10
# zeige den News-Counter an, genauso wie bei lib.catList.10.renderObj.20 (vererbt)
20 < lib.catList.10.renderObj.20
# zeige die Unterkategorien an, genauso wie bei lib.catList.10.renderObj.30 (vererbt)
30 < lib.catList.10.renderObj.30
# wenn noch eine 4. und 5. Kategorien-Ebene abgebildet werden sollen,
# dann die folgenden 6 Zeilen verwenden
# 30.renderObj = COA
# 30.renderObj {
# 10 < lib.catList.10.renderObj.10
# 20 < lib.catList.10.renderObj.20
# 30 < lib.catList.10.renderObj.30
# }
}
}
}
}
}
Vielen Dank und viele Grüße!