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 = trim($page1["nav_title"]) == "" ? "title" : "nav_title";
$page2SortField = trim($page2["nav_title"]) == "" ? "title" : "nav_title";
// uf8_decode, da strcasecmp kein uft8 unterstützt beim sortieren
$ret = strcasecmp ( utf8_decode( $page1[$page1SortField] ) , utf8_decode( $page2[$page2SortField] ) );
return $ret;
}
function user_sortMenu ($menuArr )
{
usort($menuArr, "user_pageCmp");
return $menuArr;
}
?>
Dieses Problem hatte ich soeben und konnte es dank dieser Anleitung schnell und unproblematisch lösen. Danke.