Moin!
Ich verwende zur Zeit folgendes TS um die News-Kategorien in einem Ordner auszulesen und in die Seitennavigation zu integrieren:
temp.newsMenu {
table = tt_news_cat
select {
# the category folder(s)
pidInList = 73
orderBy = title ASC
}
renderObj = COA
renderObj.wrap = |
renderObj {
10 = TEXT
10.field = uid
10.dataWrap = <a href=index.php?id=73&tx_ttnews[cat]= | >
10.insertData = 1
10.typolink.useCacheHash = 1
20 = TEXT
20 {
typolink.useCacheHash = 1
field = title
wrap = <span class="men-act">|</span>
if {
value.field = uid
equals.data = GPvar:tx_ttnews|cat
}
}
21 = TEXT
21 {
field = title
wrap = |
if {
value.field = uid
equals.data = GPvar:tx_ttnews|cat
negate = 1
}
}
30 = TEXT
30.value = </a>
}
}
temp.newsMenuLinkParams = COA
temp.newsMenuLinkParams {
10 = TEXT
10.field = uid
10.wrap = &tx_ttnews[tt_news]=|
}
Das Ganze ist ein Aggregat aus der tt_news Doku und einem Beispiel aus dem Web und funktioniert.
Ist es bei dieser Herangehensweise auch möglich, den/die/das "language overlay" der News-Kategorien mit einzubeziehen?
Sodass anhand des aktiven "L=..." Parameters der Bezeichner in der aktuellen Sprache ausgelesen wird?
Bei aller Googelei zu dem Thema fand ich bisher nur Fragen, kaum verwertbare Antworten, danke schonmal fürs Lesen...
Maddin
Hallo,
in der Sprachcondition holst du dir den titel aus dem overlay feld, machst ein split und holst dir den string von der korrekten position.
georg
Moin Georg,
just2b schrieb
in der Sprachcondition
Verstehe ich:
[globalVar = GP:L = 1]
...
[GLOBAL]
just2b schrieb
holst du dir den titel aus dem overlay feld,
Die UID der Category müsste ich ja irgendwie so kriegen?
DB:tt_news:{GPvar:tx_ttnews|tt_news}:category
Aber wie baut man das zur Abfrage des Overlays um?
Kann auch nicht der richtige Ansatz sein, da so die Cat der aktuellen News abgefragt wird.
Ich müsste die PID des Kategorien-Ordners noch ins Spiel bringen.
just2b schrieb
machst ein split und holst dir den string von der korrekten position.
Den Split dann beim Bau des Menus, irgendwie so:
20 = TEXT
20 { typolink.useCacheHash = 1
field = title_lang_ol
split {
token = |
cObjNum = ??}
}
Advanced TS ist echt noch nicht so mein Ding...
Hallo,
sorry hat bissl gedauert
lib.menu = CONTENT
lib.menu {
table = tt_news_cat
select {
pidInList = 44
}
renderObj = COA
renderObj {
10 = TEXT
10 {
field = title
typolink {
parameter = 55
additionalParams = &tx_ttnews[cat]={field:uid}
additionalParams.insertData = 1
useCacheHash = 1
}
}
stdWrap.outerWrap.wrap = <span class="act">=> |</span>
stdWrap.outerWrap.if {
value.field = uid
equals.data = GPvar:tx_ttnews|cat
}
wrap = |<br />
}
}
[globalVar = GP:L = 1 ] || [globalVar = GP:L = 2 ]
lib.menu.renderObj.10 {
override.cObject = TEXT
override.cObject {
field = title_lang_ol
split {
token = |
returnKey.cObject = COA
returnKey.cObject {
10 = TEXT
10.data = GPvar:L
20 = TEXT
20.value = -1
stdWrap.prioriCalc = 1
}
}
}
}
[global]
das ganze funktioniert natürlich nur wenn keine uid bei den languages ausgelasen wurde, ansonsten einfach direkt immer returnKey auf das passende setzen
lg georg
just2b schrieb
sorry hat bissl gedauert
#giggle#
Also echt mal Georg - das lief schonmal besser!!
😉
Nur Spass - klappt, vielen Dank!
natürlich klappt das, hab das schon getestet 😉
ich hoff du hast auch die änderungen gesehen:
- bessere umsetzung vom aktiv-zustand
- richtige links
georg
just2b schrieb
ich hoff du hast auch die änderungen gesehen:
- bessere umsetzung vom aktiv-zustand
- richtige links
Aber sicher doch.
Zumindest das mit den Links hätte ich wissen können... war mir auch sofort peinlich.
:o
Well ed döt mut et wetten.
Ich bräuchte gerade so ziemlich das selbe und habe es mit deinem Ansatz porbiert, funktioniert bei mir aber nicht:
TYPO3 6.2.6
lib.kategorieauswahl = COA
lib.kategorieauswahl.wrap = <div class="rezeptDropdown">|</div>
lib.kategorieauswahl {
10 = CONTENT
10 {
wrap = <div class="threecol"><p>Produkt:</p><select onchange="location.href=this.options[this.selectedIndex].value;"><option value="index.php?id=21">--- Wähle aus ---</option>|</select></div>
table = tt_news_cat
select {
# Sysfolder mit den Kategorien
pidInList = 2
# Übergeordnete Kategorien (Falls alle = 0)
andWhere = parent_category = 1
}
renderObj = COA
renderObj {
10 = TEXT
10.field = uid
# URL der anzuzeigenden Seite:
10.wrap = <option value="index.php?id=21&tx_ttnews[cat]=|"
# Textobjekt wenn die Kategorie ausgewählt ist
20 = TEXT
20 {
field = title
wrap = selected="selected" >|</option>
if {
value.field = uid
equals.data = GP:tx_ttnews|cat
}
}
# Textobjekt wenn keine Kategorie
21 = TEXT
21 {
field = title
wrap = >|</option>
if {
value.field = uid
equals.data = GP:tx_ttnews|cat
negate = 1
}
}
}
}
}
[globalVar = GP:L = 1]
lib.kategorieauswahl.10.wrap = <div class="threecol"><p>Product:</p><select onchange="location.href=this.options[this.selectedIndex].value;"><option value="index.php?id=21">--- select ---</option>|</select></div>
[end]
# Die Auswahlliste einfügen
lib.dropdown < lib.kategorieauswahl
lg opaque
Da ich nur eine weitere Sprache habe löse ich es mit Conditions, sollte es wer brauchen:
[globalVar = GP:L = 1]
# 1. Kateogrien Lokalisieren
lib.kategorieauswahl.10.select.selectFields = IF(title_lang_ol="", title, title_lang_ol) AS title
lib.kategorieauswahl.10.renderObj.20.select.selectFields = IF(title_lang_ol="", title, title_lang_ol) AS title
lib.kategorieauswahl.10.renderObj.21.select.selectFields = IF(title_lang_ol="", title, title_lang_ol) AS title
[global]
lg opaque