Hallo,
Ich möchte die pidInList eines alternativen TS zum Rendern des tt_news-CATMENU über Conditions
von aussen setzen. Nur weiss ich nicht wie und wo ich die Condition setzen setzen muss.
Dass ich die Conditions nicht in geschweifte Klammern setzen kann ist mir bewusst.
Angedachte hatte ich folgenden Aufbau...nur leider funktioniert es nicht:
[globalVar = TSFE:id=5] #MAGAZIN
temp.mainTemplate.navisub.2.10.select.pidInList = 95
[global]
Zum Verständnis mein TS-Aufbau (stark gestaucht):
TS rendert die News-Kategorien als UL
temp.newscatList = COA
temp.newscatList {
# hole alle Hauptkategorien
10 = CONTENT
10 {
# wrappe die gesamte Liste als "unsortierte Liste"
#wrap = <div id="navisub"><ul>|</ul></div>
allWrap = <div id="navisub"><ul>|</ul></div>
allWrap.required = 1
table = tt_news_cat
select {
# hier muss die pid eures News-Sysordners rein, bzw. wo die News-Kategorien gespeichert sind
pidInList = 95
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="current">|</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.data = page:uid
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
}
}
}
}
}
Haupttemplate:
temp.subnav = COA
temp.subnav{
1 < lib.navi_sub #submenü der kategorien
2 < temp.newscatList #catmenu von tt_news
}
temp.mainTemplate = TEMPLATE
temp.mainTemplate {
template =< plugin.tx_automaketemplate_pi1
workOnSubpart = DOCUMENT_BODY
subparts{
(...)
navisub < temp.subnav
(...)
}
}
Page:
page = PAGE
page{
typeNum = 0
10 < temp.mainTemplate
(...)
}
Hallo.
TypoScript ist manchmal etwas eigen, was die syntaktischen Dinge angeht.... Nimm mal den kommentar aus der Zeile der Condition raus udn setze ihn in eine eigene Zeile.
Viele Grüße
Julian
Hi Julian,
das war die Lösung. Danke Dir 🙂
Hatte mich schon gewundert warum die Conditions nicht funktionierten.
Für alle die es interessiert hier das entsprechende TS. Es stellt das CATMENU für tt_news dar
und bildet alle tt_news-Kategorien im definierten Zielordner als Navigation ab.
Die aktuelle Seite wird in die URL mit aufgenommen. Die Bedingungen werden direkt nach der Definition angelegt.
temp.newscatList = COA
temp.newscatList {
# hole alle Hauptkategorien
10 = CONTENT
10 {
# wrappe die gesamte Liste als "unsortierte Liste"
#wrap = <div id="navisub"><ul>|</ul></div>
stdWrap{
wrap = <div id="navisub"><ul>|</ul></div>
required = 1
}
table = tt_news_cat
select {
# hier muss die pid eures News-Sysordners rein, bzw. wo die News-Kategorien gespeichert sind
pidInList = 0
orderBy = title
#where = parent_category!=0 AND deleted=0 AND hidden=0
where = 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="current">|</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.data = page:uid
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
}
}
}
}
}
#MAGAZIN
[globalVar = TSFE:id=5]
temp.newscatList.10.select.pidInList = 95
[global]
#AUSRÜSTUNG
[globalVar = TSFE:id=6]
temp.newscatList.10.select.pidInList = 96
[global]
Eine Frage habe ich noch. Sie baut auf dem obigen TS auf.
Ich möchte gerne ein HMENU so modifizieren, dass die Unterkategorien des aktuellen Navipunktes einfach als weitere Listenelemente angehängt werden.
Wie kann ich die Elemente des TMENUs als weitere LI hinten anhängen?
Hier das entsprechende TS:
lib.navi_sub = HMENU
lib.navi_sub {
entryLevel = 1
# Zweite Menüebene
1 = TMENU
1 {
noBlur = 1
#es sollen nur die LI eingebunden werden
#wrap = <div id="navisub"><ul>|</ul></div>
expAll = 1
NO.linkWrap = <li>|</li>|*|<li>|</li>|*|<li class="last">|</li>
ACT =1
ACT.linkWrap = <li class="current">|</li>
}
}