Zum Inhalt springen

news categories language overlay

Erstellt am 13. Januar 2009 · 8 Antworten · letzte Antwort am 21. November 2014

Tags: Frage

madmat ·

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

just2b ·

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

madmat ·

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...

just2b ·

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

madmat ·
just2b schrieb

sorry hat bissl gedauert

#giggle#

Also echt mal Georg - das lief schonmal besser!!
😉
Nur Spass - klappt, vielen Dank!

just2b ·

natürlich klappt das, hab das schon getestet 😉

ich hoff du hast auch die änderungen gesehen:
- bessere umsetzung vom aktiv-zustand
- richtige links

georg

madmat ·
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.

opaque ·

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

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