[TYPO3-german] TT News Catmenu
Andre Sancken
evilknevil10 at gmx.de
Fri Jun 7 09:30:52 CEST 2013
Hallo,
Mit folgendem Snippet generiere ich mir ein eigenes Catmenu.
catList = COA
catList {
# hole alle Hauptkategorien
10 = CONTENT
10 {
# wrappe die gesamte Liste als "unsortierte Liste"
wrap = <header class="page-header"><ul
id="portfolio-items-filter">|</ul></header>
table = tt_news_cat
select {
# hier muss die pid eures News-Sysordners rein, bzw. wo die
News-Kategorien gespeichert sind
pidInList = 30
orderBy = title
where = parent_category=0 AND deleted=0 AND hidden=0
}
renderObj = COA
renderObj {
# wrappe jede gefundene Hauptkategorie als Listenelement
wrap = <li>|</li>
# ueberschreibe den vorherigen Wrap ...
wrap.override = <li class="active">|</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 = #
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
ATagParams.stdWrap.cObject = TEXT
ATagParams.stdWrap.cObject {
# case = lower
field = title
insertData = 1
wrap = data-categories="|"
}
doNotLinkIt = 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 = 30
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 = 1
wrap = <ul>|</ul>
}
table = tt_news_cat
select {
pidInList = 30
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
# }
}
}
}
}
}
Folgende Ausgabe erscheint:
<ul id="portfolio-items-filter">
<li><a data-categories="Corporate Design" title="Corporate Design"
href="referenzen.html" class="active" style="">Corporate Design</a></li>
<li><a data-categories="Kommunikation" title="Kommunikation"
href="referenzen.html" style="display: none;">Kommunikation</a></li>
<li><a data-categories="Online-Media" title="Online-Media"
href="referenzen.html" style="display: none;">Online-Media</a></li>
</ul>
Jetzt bräuchte ich vor dem ersten <li> noch ein weiteres, was statisch sein
soll.
Beispiel: <li><a data-categories="*">Alle</li>
Das ganze ist der Isotope Effekt. Wie bekomme ich diesen Link rein?
Gruß
Andre
More information about the TYPO3-german
mailing list