Einführung

Wer mit TYPO3 4.2 Seiten in mehreren Sprachen nach ihrem jeweiligen (übersetzten) Titel sortieren möchte wird auf Probleme stoßen. Folgender TypoScript Befehl klingt viel versprechend, wirkt sich jedoch nur auf die default Sprache aus:

  1. menu = HMENU
  2. menu {
  3. entryLevel = 1
  4. 1 = TMENU
  5. 1 {
  6. // this looks promising
  7. alternativeSortingField = title
  8. }
  9. }

Abhilfe auf TypoScript Ebene schafft ein Bugfix der ein neues Feld einführt alternativeSortingField2. Alternativ kann man die Sortierung der Navigationspunkte aber auch auf JavaScript Ebene angehen, indem man das jQuery Plugin TinySort 1.0.2 verwendet. Folgender JavaScript Quelltext verwendet diese Plugin und sortiert die Navigation entsprechend. Zusätzlich wird noch ein Workaround für die Sortierung von Elementen die mit einem Umlaut beginnen angewendet:

  1. jQuery(document).ready(function() {
  2.  
  3. var selector = "#navigation li";
  4.  
  5. jQuery(selector + " a").each(function() {
  6. var $this = $(this);
  7. var t = $this.text();
  8. $this.text(t.replace('Ägypten','Aegypten').
  9. replace('Österreich','Oesterreich') );
  10. });
  11.  
  12. jQuery(selector).tsort();
  13.  
  14. jQuery(selector + " a").each(function() {
  15. var $this = $(this);
  16. var t = $this.text();
  17. $this.text(t.replace('Oesterreich','Österreich').
  18. replace('Aegypten','Ägypten') );
  19. });
  20.  
  21. });

Der HTML-Code für die Navigation könnte so, oder so ähnlich aussehen:

  1. <div id="navigation">
  2. <li><a href="#">Punkt 1</a></li>
  3. <li><a href="#">Punkt 2</a></li>
  4. <li><a href="#">Punkt 3</a></li>
  5. <li><a href="#">Punkt 3</a></li>
  6. </ul>
  7. </div>

Verwende man die Sortierung auf Datenbankebene via alternativeSortingField2 tritt übrigens auch das Problem mit den Umlauten auf. Da hier auf SQL ebene sortiert wird muss das Tabellenfeld auf UTF-8 gesetzt werden.

Jetzt bookmarken:facebook.comdel.icio.usdigg.comgoogle.comlive.comMister WongTechnorati