Hallo,
Ich hab eine Navi zusammengebastelt, die in etwa so aussieht:
Navi 1
ein Test
auch ein Test
noch ein Test
Navi 2
CDE
ABC
Subsubnavi1
Subsubnavi2
DEF
Navi 3
Navi 3a
Navi 3b
Navi 3c
an sich kein Problem, ich erstelle diese Navi so:
marks.NAVI_OBEN = HMENU
marks.NAVI_OBEN {
### Erste Ebene ###
1 = TMENU
1 {
wrap = <ul class="menu">|</ul>
expAll = 1
NO.wrapItemAndSub = <li>|</li>
ACT < .NO
ACT = 1
ACT.ATagParams = class="active"
}
### Zweite, dritte und vierte Ebene (Kopieren von erster Ebene) ###
2 < .1
3 < .1
}
Nun hab ich aber das Problem, dass ich die Unternavigation von Navi 2 (und nur diese!) alphabetisch sortieren soll. Ich hab recherchiert und alternativeSortingField = title gefunden, allerdings schaff ichs nicht weiter, als die Ebene 2 Navi komplett nach Titel sortieren zu lassen, und zwar so:
page.10.marks.NAVI_OBEN.2 = TMENU
page.10.marks.NAVI_OBEN.2{
wrap = <ul class="menu">|</ul>
expAll = 1
alternativeSortingField = title
NO.wrapItemAndSub = <li>|</li>
ACT < .NO
ACT = 1
ACT.ATagParams = class="active"
}
Wie aber sorge ich dafür, dass nur die eine Subnavigation von Navi2 alphabetisch sortiert wird?
Bin für jeden Hinweis dankbar.
Ich habe hierfür leider auch keine Lösung.
Aber aus reiner Neugierde: Warum werden die Seiten nicht einfach im Backend manuell alphabetisch sortiert, wenn sie ohnehin in dieser Reihenfolge erscheinen sollen?
igorshmigor schrieb
Ich habe hierfür leider auch keine Lösung.
Aber aus reiner Neugierde: Warum werden die Seiten nicht einfach im Backend manuell alphabetisch sortiert, wenn sie ohnehin in dieser Reihenfolge erscheinen sollen?
die Seite is zweisprachig und der Kunde wünscht, dass die Reihenfolge dieses Untermenüs genau dann anders sortiert wird, wenn eine bestimmte Sprache eingestellt ist.... #angry#
Yeah, ich habs rausgefunden!
includeLibs.reversemenu = fileadmin/templates/scripts/sortMenu.php
page.10.marks.NAVI_OBEN.2.itemArrayProcFunc = user_sortMenu
Mit page.10.marks.NAVI_OBEN.2.itemArrayProcFunc definiere ich mein eigenes sort Script. Und das steht in meiner sortMenu.php, die sieht - derzeit noch etwas behelfsmäßig - so aus:
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ütz beim sortieren
$ret = strcasecmp ( utf8_decode( $page1[$page1SortField] ) , utf8_decode( $page2[$page2SortField] ) );
return $ret;
}
function user_sortMenu ($menuArr )
{
if($menuArr[0]["pid"] == 21 && $GLOBALS["L"] == 3)
usort($menuArr, "user_pageCmp"); //nach Titel sortieren
else
ksort($menuArr); //normal sortieren
return $menuArr;
}
Mein Navigationspunkt, dessen Unternavigationspunkte anders sortiert werden sollen, hat die PID 21, daher frage ich ab: if($menuArr[0]["pid"] == 21 ...
Ob meine Abfrage nach der Sprache so wirklich da stehn kann, wird sich noch erweisen, mal sehn. Soweit funktionierts mal.