Zum Inhalt springen

Kategoriemenü passend zu den Kategorien der Seite

Erstellt am 10. April 2015 · 2 Antworten · letzte Antwort am 15. April 2015

Tags: Kategorien, TYPO3 6.x, Frage

Arkala ·

Folgendes möchte ich gerne erreichen:
Passend zur Auswahl der Kategorien in den Seiteneigenschaften sollen alle anderen Seiten gelistet werden, die zu den gleichen Kategorien gehören.

Mittlerweile ist es mir gelungen, die KategorieIDs auszulesen:

lib.categories = CONTENT
lib.categories {
    stdWrap.required = 1
    table = pages
    select {
        uidInList = this
        pidInList = 0
        selectFields = sys_category.uid as catid, sys_category.title
        join = sys_category_record_mm ON pages.uid = sys_category_record_mm.uid_foreign JOIN sys_category ON sys_category.uid = sys_category_record_mm.uid_local
        where = sys_category_record_mm.tablenames = 'pages' AND sys_category.pid = 537
    }
    renderObj = COA
    renderObj {
        10 = TEXT
        10.field = catid
        10.wrap = |,
    }
}

Ich scheitere aber daran, die IDs an mein Typoscript-Menu vom Typ categories zu übergeben:

lib.catmenu = COA
lib.catmenu.1 < lib.categories
lib.catmenu.2 = HMENU
lib.catmenu.2 {
    special = categories
    special.value < lib.categories
    wrap = <ul>|</ul>
    1 = TMENU
    1.NO {
        linkWrap = <li>|</li>
    }
}

mit lib.catmenu.1 wird mir wunderbar die Liste der IDs "1,3,4," ausgegeben. Wenn ich diese von Hand unter lib.catmenu.2 { special.value = 1,3,4, } eintrage, werden die passenden Seiten im Menü gelistet.

Aber wie bekomme ich die in lib.categories ermittelten Werte an special.value übergeben ???

Ich hoffe, ihr könnt mir helfen

jenses ·

Versuch's mal hiermit:

lib.catmenu = COA
lib.catmenu.1 < lib.categories
lib.catmenu.2 = HMENU
lib.catmenu.2 {
    special = categories
    special.value.stdWrap.cObject < lib.categories
    wrap = <ul>|</ul>
    1 = TMENU
    1.NO {
        linkWrap = <li>|</li>
    }
}
Arkala · · Beste Antwort

Das ist des Rätsels Lösung !!!

Vielen Dank jenses!

Für alle, die auch ein solches Kategoriemenü abhängig von der aktuellen Seitenkategorie zaubern wollen, hier das vollständige Skript ohne Testausgaben:

lib.categories = CONTENT
lib.categories {
    stdWrap.required = 1
    table = pages
    select {
        uidInList = this
        pidInList = 0
        selectFields = sys_category.uid as catid, sys_category.title
        join = sys_category_record_mm ON pages.uid = sys_category_record_mm.uid_foreign JOIN sys_category ON sys_category.uid = sys_category_record_mm.uid_local
        where = sys_category_record_mm.tablenames = 'pages' AND sys_category.pid = 537
    }
    renderObj = COA
    renderObj {
        10 = TEXT
        10.field = catid
        10.wrap = |,
    }
}

lib.catmenu = HMENU
lib.catmenu {
    special = categories
    special.value.stdWrap.cObject < lib.categories
    wrap = <ul>|</ul>
    1 = TMENU
    1.NO {
        linkWrap = <li>|</li>
    }
}

ACHTUNG: sys_category.pid = 537 auf die ID eures Sysordners setzen, in dem ihr die Kategorien verwaltet.