Heute beginne ich eine kleine Artikelreihe, in der ich zeigen will, wie man einen Suchfilter für tt_news bauen kann. Solch ein Formular ist speziell für große Seiten interessant, die ihre Nachrichten in hierarchischen Kategorien ablegen. Ziel ist das Entwickeln eines Filters, der ungefähr so aussehen wird:

tt_news Kategorie-Filter
In Typo3 haben wir die drei Oberkategorien “Thema”, “Medientyp” und “Autor”. Alle Unterkategorien sollen jeweils einzeln in einer Liste oder Ausklappbox dargestellt werden. Dies ist mit der bereits vorhandenen CATMENU-Ansicht nicht zu realisieren.
Anzeige der gefilterten Nachrichten
Ja, richtig gelesen, wir fangen quasi von hinten an
… das Formular werden wir erst in den folgenden Artikeln zusammenbauen. Heute geht es zunächst darum wie wir das Ergebnis des Filters anzeigen können.
Das Ergebnis wird eine GET-Variable (erzeugt vom Formular), welche die Kategorie-UID’s enthält, also so etwas wie “?categories=45,12,90“. Wir wollen uns möglichst viel Arbeit ersparen, daher nutzen wir zur Anzeige einfach das normale News-Plugin mit der LIST-Ansicht. Da wir die Kategorien kombinieren wollen, wählen wir als Kategoriemodus “Zeige alle Beiträge aus ausgewählten Kategorien (UND)”.
Normalerweise werden die anzuzeigenden Kategorien im Plugin fest eingestellt. Alternativ gibt es auch die Möglichkeit diese per Typoscript festzulegen und da man von Typoscript aus auf GET-Variablen zugreifen kann, ist unsere Lösung schon mit einer einzigen Zeile abgetan:
plugin.tt_news.categorySelection.data = GPvar : categories
Dank der data-Eigenschaft können wir die Kategorie-Selektion aus der GET-Variable “categories” auslesen. Der Aufruf der Suchergebnisse würde nun also z.B. so aussehen: http://www.yourdomain.de/index.php?id=1000&categories=45,12,90
Wer das ganze jetzt mehrmals hintereinander testet, wird feststellen, dass sich die Seite nach dem ersten Aufruf nicht mehr verändert. Dem Cache sei dank! So nützlich er auch ist, so stört er doch an dieser Stelle. Daher müssen wir noch eine weitere GET-Variable an die URL anhängen, die Typo3 signalisiert, dass nicht gecached werden soll: http://www.yourdomain.de/index.php?id=1000&categories=45,12,90&no_cache=1
Und fertig ist die Anzeige der Ergebnisse … demnächst gehts weiter
Axotos 12:06 on 11.11.2010 Permalink
WOW! Tolles Tutorial!
aber danach wirds holprig:
Genau das wonach ich gesucht habe! – Leider verstehe ich es nicht…
Also das News-Plugin mit der LIST-Ansicht einzufügen habe ich nosch geschafft
- Ich vermute mal, dass wenn man “?categories=45,12,90″ hinter seine URL einfügt, dass dann die Kategorie(n?) angezeigt werden sollten. Ich habe aber realUrl installiert funktioniert das damit nicht?
- Muss der 2. Teil ins ganz normale TS eingetragen werden oder unter plugin.ttnews {…}?
- Der Code in Teil 3 muss dann in die news_filter.js?
Über eine Antwort würde ich mich sehr freuen!