Zum Inhalt springen

Seite auf Submenü überprüfen

Erstellt am 5. Juli 2006 · 8 Antworten · letzte Antwort am 16. April 2009

Tags: Frage

Webpinsel ·

Hallo,

kann man irgendwie per TypoScript feststellen, ob sich unterhalb der aktuellen Seite noch untergeordnete Seiten befinden? Ich würde das gern für eine if.isTrue-Abfrage außerhalb des eigentlichen Menüaufbaus nutzen.

Beispiel:

page.10 = TEXT
page.10.value = Es gibt ein Submenü zu dieser Seite!
page.10.if {
  isTrue.[...was nun?]
}

Gibt es da eine Lösung?

Fragt...
Webpinsel

Webpinsel ·

Hallo steffenk,

das war auch eine meiner Überlegungen. Aber das Problem ist, dass ich ja wissen möchte, ob meine aktuelle Seite weitere Unterseiten hat und nicht, ob es Elternseiten gibt. Müsste also eigentlich etwas wie

data = leveltitle : +1

sein. Aber das funktioniert leider nicht. :-(

Bei den Menüobjekten gibt es ja so etwas wie "ifSub". Und genau für das bräuchte ich eine Menüfunktion-unabhängige Abfrage.

Gruß,
Webpinsel

Webpinsel ·

Hallo,

ich habe einen Submenürahmen innerhalb eines TV-Templates, den ich je nach Vorhandensein eines Submenüs ein- bzw. ausblenden möchte. Diesen Rahmen kann ich aber nicht über das Menüobjekt per wrap basteln, da innerhalb des Rahmens auch noch eine Grafik dynamisch generiert wird. Daher muss ich den Rahmen irgendwie anders ein- bzw. ausblenden. Aber ich habe jetzt einen Lösungsansatz gefunden:

lib.submenu.if.isTrue {
  numRows {
    table = pages
    select.pidInList.data = TSFE:id
  }
}

So scheint es zu funktionieren. Trotzdem Danke für die Rückmeldungen!

Gruß,
Webpinsel

Jehu ·

Hallo Webpinsel,

kannst du das nochmal etwas erläutern? Ich als TypoScript-Anfänger blicken nicht ganz, wie du das Problem nun gelöst hast.

Dank und Gruß
Jehu

Webpinsel ·

Hallo Jehu,

also, in der inneren Klammer mache ich eine Datenbankabfrage in der Tabelle "pages". Das Objekt numRows gibt dabei die Anzahl der Tabellenzeilen zurück, welche die aktuelle Seiten-Id (TSFE:id) im Feld "pid" gespeichert haben. Dies ist immer dann der Fall, wenn in einer solchen Tabellenzeile eine Unterseite der aktuellen Seite gespeichert ist (pid steht dabei wohl für parent-id). Wenn nun Tabellenzeilen gefunden werden, auf welche diese Eigenschaft zutrifft, wird dementsprechend ein positiver numRows-Wert zurückgegeben. Damit ist dann die if.isTrue-Abfrage gültig und das Typoscript-Objekt lib.submenu wird gesetzt.

Hoffe, das ist einigermaßen verständlich. ;-)

Gruß,
Webpinsel

kirchbautag ·

toll was alles möglich ist... hat jemand eine idee wie man das noch etwas weiter treiben kann? Kann man z.b. auslesen lassen, ob es untergeordnete interne Seiten gibt?

Bei uns am Institut gibt es verschiedene Bereiche zu denen unterschiedliche Benutzergruppen Zugang haben. So haben z.B. Studenten, die das Seminar Homiletik besuchen, Zugang zu entsprechenden Unterlagen. Es macht vom Benutzerverhalten her Sinn, dass es kein übergeordneten LogIn Bereich auf der Home-Ebene gibt, sondern erst wenn ich im Menü an der entsprechende Stelle bin, möchte ich mich evtl. einloggen um auf bestimmte Daten zuzugreifen... Deshalb habe ich derzeit auf jeder Seite die Möglichkeit, mich einzuloggen. Das sorgt aber für Verwirrung, weil unklar ist, ob sich unter der Seite wo ich grade bin etwas verbirgt, auf das ich zugreifen könnte. Deshlab wäre es geschickt, wenn der Typoscript-LogIn-Button nur dort erscheint, wo sich auch ein interner Bereich hinter verbirgt... (http://www.kirchbautag.de)

Mein stümperhafter Ansatz: statt dem TSFE:id frage ich die fe_group ab(ist immer dann Positiv, wenn eienr Seite eine Benutzergruppe zugewiesen ist, mit anderen Worten, wenn sie für die anderen nicht zugänglich, also intern ist). Das funktioniert aber irgendwie nicht.. Leute ich hab keine Ahnung, also tue ich auch mal nicht schlau... brauche da Hilfe. Ist auch für keine Big Company sondern für ein armes Institut an der Uni... Vielen Dank!