thomas hirt . visuelle kommunikation
tt_news um ein Feld mit RTE erweitern und Links ermöglichen
Wie ich ein paar tote Pixel auf meinem MacBook Pro reparierte
 
Freitag, 09. Mär 2012

tt_news: Auswahl der Kategorie mit einer Auswahlliste (Dropdown Menü)

Um tt_news Beiträge gefiltert nach Kategorien anzeigen zu lassen eignet sich meiner Meinung nach eine Auswahlliste (select/option) am besten. Hier zeige ich wie diese Möglichkeit mit Typoscript umgesetzt werden kann.

Nach längeren Versuchen habe ich es aufgegeben das CATMENU von tt_news in eine Auswahlliste umzubauen. Es gibt dazu einige Beiträge im Netz, die mich aber alle nicht zum gewünschten Ziel führen konnten.

Nach länerer Suche bin ich dann auf diesen Beitrag gestoßen, der auch zur Lösung des Problems führen sollte:

www.typo3forum.net/forum/news-tt_news-mininews-co/21561-tt_news-catmenu-anpassen.html

Zusätzlich zu der dort beschriebenen Lösung habe ich noch ein wenig Javascript eingesetzt, um die Seite nach der Auswahl eine Kategorie automatisch neu zu laden.

www.php.de/html-usability-und-barrierefreiheit/22375-link-bei-auswahl-einem-select-menue.html

Wichtig: Damit die Auswahlliste funktioniert, muss man den Cache der Betroffenen Seite in den Seiteneigenschaften deaktiviert.

ACHTUNG!
Seit der TYPO3 Version 4.3 ist "GPvar" deprecated es müsste daher GP:tx_ttnews heissen.
(siehe den Kommentar von wasabili – besten Dank!)

# Kategorieauswahl als Dropdown vorbereiten
lib.kategorieauswahl = COA
lib.kategorieauswahl {
  50 = CONTENT
  50 {
    wrap = <select class="tt_news-dropdown-cat-select" onchange="location.href=this.options[this.selectedIndex].value;"><option value="presse/archiv.html">Kategorieauswahl</option>|</select>
    table = tt_news_cat
    select {
      # Sysfolder mit den Kategorien
      pidInList = 368
      # Übergeordnete Kategorien (Falls alle = 0)
      andWhere = parent_category = 32
    }
    
    renderObj = COA
    renderObj {
      10 = TEXT
      10.field = uid
      # URL der anzuzeigenden Seite: index.php?id=xy&tx_ttnews[cat]=|"
      10.wrap = <option value="presse/archiv.html?tx_ttnews[cat]=|"
      
      # Textobjekt falls die Kategorie ausgewählt ist      
      20 = TEXT
      20 {
        field = title
        wrap = selected="selected" >|</option>
        if {
          value.field = uid
          equals.data = GPvar:tx_ttnews|cat
        }
      }

      # Textobjekt falls die Kategorie nicht ausgewählt ist 
      21 = TEXT
      21 {
        field = title
        wrap = >|</option>
        if {
          value.field = uid
          equals.data = GPvar:tx_ttnews|cat
          negate = 1
        }
      }
    }
  }
}
# Die Auswahlliste an einem beliebigen Ort (z.B. mit einem Marker) einfügen
page.10.marks.MEIN_MARKER < lib.kategorieauswahl

 
 
www.thomas-hirt.atThomas Hirt schrieb am 14.9.12, 12:21
Urs Bräm schreibt mir via Mail:
Hab's noch so angepasst, dass der Link durch RealURL durchlaufen kann

lib.kategorieauswahl = COA
lib.kategorieauswahl {

10 = TEXT
10.wrap = <select class="tt_news-dropdown-cat-select" onchange="location.href=this.options[this.selectedIndex].value;"><option value="|">Alle Kategorien</option>
10.typolink {
parameter.data=TSFE:id
returnLast=url
}

50 = CONTENT
50 {

table = tt_news_cat
select {
# Sysfolder mit den Kategorien
pidInList = 8
orderBy = title ASC
# Übergeordnete Kategorien (Falls alle = 0)
# andWhere = parent_category = 0
}

renderObj = COA
renderObj {

5 = TEXT
5.wrap = <option value="|
5.typolink {
parameter.data=TSFE:id
returnLast=url
}

10 = TEXT
10.field = uid
# URL der anzuzeigenden Seite: index.php?id=xy&tx_ttnews[cat]=|"
10.wrap = ?tx_ttnews[cat]=|"

# Textobjekt falls die Kategorie ausgewählt ist
20 = TEXT
20 {
field = title
wrap = selected="selected" >|</option>
if {
value.field = uid
equals.data = GPvar:tx_ttnews|cat
}
}

# Textobjekt falls die Kategorie nicht ausgewählt ist
21 = TEXT
21 {
field = title
wrap = >|</option>
if {
value.field = uid
equals.data = GPvar:tx_ttnews|cat
negate = 1
}
}
}
}

60 = TEXT
60.value = </select>
}
http://typo3-lisardo.dePeter schrieb am 17.11.12, 12:56
Wenn du anstatt lib.kategorieauswahl = COA das hier schreibts:
lib.kategorieauswahl = COA_INT musst du den Cache der Seite nicht abschalten.
www.exotec.deAlexander Weber schrieb am 4.1.13, 15:12
Bei mir wird das "Textobjekt falls die Kategorie ausgewählt ist" nicht interpretiert. Es wird immer die erste Option "Kategorieauswahl" ausgewählt.
www.thomas-hirt.atThomas Hirt schrieb am 7.1.13, 10:41
Hier klappt es tadellos: http://www.attac.at/nc/presse/archiv-suche.html

Das "Textobjekt falls die Kategorie ausgewählt ist" schaut einfach nur nach ob das Feld "uid" der Kategorie der URL Variable "tx_ttnews|cat" gleicht.
Sofern das der Fall ist wird das Objekt ausgegeben.
wasabili schrieb am 17.1.13, 16:29
Bei mir wird der selected auch nicht rein geschrieben. Hab nur im Kopf Bereich etwas erweitert, aber sonst gleich belassen:

10 = TEXT
10.wrap = <div class="background"><h2>Titel</h2><p>Einsatzgebiet<br /><select class="tt_news-dropdown-cat-select" onchange="location.href=this.options[this.selectedIndex].value;"><option value="|">alle</option>
10.typolink {
parameter.data=TSFE:id
returnLast=url
}

20 = CONTENT
20 {

table = tt_news_cat
select {
# Sysfolder mit den Kategorien
pidInList = 2
orderBy = title ASC
# Übergeordnete Kategorien (Falls alle = 0)
andWhere = parent_category = 9
}

renderObj = COA
renderObj {
10 = TEXT
10.field = uid
# URL der anzuzeigenden Seite: index.php?id=xy&tx_ttnews[cat]=|"
10.wrap = <option value="/meta/seite.html?tx_ttnews[cat]=|"

# Textobjekt falls die Kategorie ausgewählt ist
20 = TEXT
20 {
field = title
wrap = selected="selected" >|</option>
if {
value.field = uid
equals.data = GPvar:tx_ttnews|cat
}
}

# Textobjekt falls die Kategorie nicht ausgewählt ist
21 = TEXT
21 {
field = title
wrap = >|</option>
if {
value.field = uid
equals.data = GPvar:tx_ttnews|cat
negate = 1
}
}
}
}

30 = TEXT
30.value = </select></p>
wasabili schrieb am 18.1.13, 09:06
Ich habs raus bekommen und zwar heisst es im Script GPvar:tx_ttnews sollte aber GP:tx_ttnews heissen. GPvar gilt nicht mehr …
www.Urs Bräm schrieb am 21.1.13, 10:32
Danke für den Hinweis zu GPvar!
Martin schrieb am 25.5.13, 19:17
Das funktioniert wunderbar, solange man nicht wieder zurück auf "Alle Kategorien" geht. Danach muss ich den Cache löschen, damit es wieder funzt. Verwende COA_INT.
Jemand nen Tipp für mich?
 
 
kalender
März 2012
M D M D F S S
« Dez   Dez »
 1234
5678091011
12131415161718
19202122232425
262728293031