Zum Inhalt springen

Directory Menü alphabetisch sortieren

Erstellt am 9. Januar 2007 · 2 Antworten · letzte Antwort am 9. Januar 2007

Tags: Frage

torben75hh ·

Hi!
Ich habe die folgende Struktur:

1. Ordner (PID1)
F....
I....
2. Ordner (PID2)
A....
K....

Nun möchte ich per "special = directory" die beiden PIDs angeben, um ein kombiniertes Menü zu erzeugen.
Das Menü soll dann allerdings alphabetisch sortiert sein:

A... (Ordner2)
F... (Ordner1)
I... (Ordner1)
K... (Ordner2)

Wenn ich einfach so die PIDs angebe, wird jeder Ordner nacheinander durchgegangen. Das ist dann nicht mehr alphabetisch.

Hat jemand ne Idee, wie ich das realisieren kann?

Unbekannter Benutzer ·

Nicht mit special = directory.

Du musst über ein CONTENT Objekt gehen, aus der Tabelle pages selecten mit pid=PID1 or pid=PID2 (also alle Seiten, die unterhalb von PID1 oder PID2 liegen), dann nach Titel sortieren und mit renderObj als Menü ausgeben.

Sollte eigentlich prima klappen.

Grüße

Christian

torben75hh ·

Ich hatte schon für eine andere Seite etwas ähnliches gebastelt. Das konnte ich zum Glück relativ einfach anpassen.

Hier der gesamte Code:

temp.getPages = HMENU
temp.getPages{
  special = directory
  special.value = 573,185,184,1552,1198
  1 = TMENU
  1{
    NO{
      expAll = 0
      doNotShowLink = 1
      stdWrap.cObject = LOAD_REGISTER
      stdWrap.cObject{
        allPages.field = pid
        allPages.dataWrap = {register:allPages},|
      }
    }
  }
}

lib.sparelibs = COA
lib.sparelibs {
  10 < temp.getPages

  20 = TEXT
  20.value = <ul class="sidenav">

  30 = CONTENT
  30{
    table = pages
    select{
      pidInList.data = register:allPages
      orderBy = title
      andWhere = title != ''
    }

    renderObj = COA
    renderObj{

      20 = TEXT
      20{
        field = title
        typolink{
          parameter.dataWrap = {field:uid}
        }
        wrap = <li>|</li>
      }

      30 = LOAD_REGISTER
      30{
        firstLetter.field = title
        firstLetter.crop = 1|
      }

    }
  }
  40 = TEXT
  40.value = </ul>
}

Wie Kitsunet schon gesagt hat. COA ist hier das Zauberwort...