TYPO3 Menu-Sortierung bei mehrsprachigen Webseiten

Da es immer wieder vorkommt, dass auf mehrsprachigen Seiten eine Sortierfunktion eingebaut ist, sie aber nicht funktioniert, da immer nach der Originalsprache des Feldes sortiert wird.

Nach kurzem Stöbern durch Google kam ich auf diese Seite mit folgender Lösung des Problems:

temp.JumpNav = HMENU
temp.JumpNav {
 special = directory
 special.value = 47
 
 1 = JSMENU
 1.target = _top
 1.firstLabelGeneral = Bitte wählen
 1.alternativeSortingField = title
 wrap = <div>|</div>
}

So ist die Ausgangssituation mit alternativeSortingField und hierzu nun die Lösung:

Typoscript:

temp.JumpNav = HMENU
temp.JumpNav {
  special = directory
  special.value = 47
 
  1 = JSMENU
  1.target = _top
  1.firstLabelGeneral = Bitte wählen
  #1.alternativeSortingField = title
  1.itemArrayProcFunc = user_sortMenu
  wrap = <div>|</div>
}

localconf.php:

require_once ( PATH_site. "/fileadmin/templates/scripts/sortMenu.php");

/fileadmin/templates/scripts/sortMenu.php

<?php
   function user_pageCmp ($page1, $page2)
   {
     /* wenn Navigationstitel leer ist Titel verwenden */
     $page1SortField = <a href="http://www.php.net/trim">trim</a>($page1["nav_title"]) == "" ? "title" : "nav_title";
     $page2SortField = <a href="http://www.php.net/trim">trim</a>($page2["nav_title"]) == "" ? "title" : "nav_title";
 
     // uf8_decode, da strcasecmp kein uft8 unterstützt beim sortieren
 
     $ret =  <a href="http://www.php.net/strcasecmp">strcasecmp</a>  ( <a href="http://www.php.net/utf8_decode">utf8_decode</a>( $page1[$page1SortField] ) , <a href="http://www.php.net/utf8_decode">utf8_decode</a>( $page2[$page2SortField] ) );   
     return $ret;
   }
 
   function user_sortMenu ($menuArr  )
   {
     <a href="http://www.php.net/usort">usort</a>($menuArr, "user_pageCmp");   
     return $menuArr;   
   }
?>

Links

Eine Antwort to “TYPO3 Menu-Sortierung bei mehrsprachigen Webseiten”

  1. avatar

    Dieses Problem hatte ich soeben und konnte es dank dieser Anleitung schnell und unproblematisch lösen. Danke.

Schreibe einen Kommentar