Vollständiges Kategorie-Menü [Gelöst]

  • ra.s ra.s
    R2-D2
    0 x
    101 Beiträge
    0 Hilfreiche Beiträge
    29. 07. 2011, 11:57

    Hallo zusammen,

    ich verwende commerce das erste Mal in einem Projekt und habe mir nach den bekannten Anleitungen ein Kategorie-Menu im TS erstellt - funktioniert auch einwandfrei. Nur leider bekomme ich es nicht dazu in der 2. Ebene die Unterkategorien auszugeben. Ich bekomme immer nur eine Menu-Ebene ausgegeben.

    Ist es überhaupt möglich ein Kategorie-Menü zu erstellen, welches alle Unterkategorien ausgibt - quasi einer Sitemap gleich?

    Grüße,
    Ralf


  • 1
  • king.darki king.dark...
    Sternenflotten-Admiral
    0 x
    219 Beiträge
    0 Hilfreiche Beiträge
    29. 07. 2011, 13:14

    Hallo Ralf,

    ich hab auf meiner Website ein TS veröffentlicht, mit dem man ein CATMENU für tt_news selbst zusammenbauen kann. Das könntest du auch für commerce verwenden, musst nur die Bezeichnungen der fields ändern:
    http://fiedomedia.de/de/news/artikel/typo3-flexibles-catmenu-fuer-tt-news-mit-typoscript-erstellen/

    Grüße Patrick

  • ra.s ra.s
    R2-D2
    0 x
    101 Beiträge
    0 Hilfreiche Beiträge
    29. 07. 2011, 16:55

    Hi Patrick,

    viele Dank für das Script. Habe es für Commerce angepasst und alles läuft wunderbar. +g+
    Lediglich die Anzeige der Anzahl zugeordneten Produkte habe ich rausgenommen. Da diese nicht die Anzahl aller untergeordneten Produkte anzeigen kann, ist sie für mich nicht wirklich nützlich.

    Nochmal Danke,
    Ralf

    Hier die Commerce-Version eines CATMENUS, basierend auf Patricks Script aus dem vorangegangenem Post:

    [TS]lib.catList = COA
    lib.catList {
    # hole alle Hauptkategorien
    10 = CONTENT
    10 {
    # wrappe die gesamte Liste als "unsortierte Liste"
    wrap = <ul>|</ul>
    table = tx_commerce_categories
    select {
    # hier muss die PID eures 'Products'-Ordners (unter dem werden im Regelfall die Kategorien angelegt) rein
    # oder die PID des Ordners in dem ihr die Kategorien angelegt habt
    pidInList = 5
    orderBy = sorting
    # Da es in commerce noch andere (System) Kategorie-Typen gibt, solltet ihr eure Kategorien einer "Master"-Kategorie unterstellen.
    # Die UID dieser Kategorie dann hier als Wert von 'parent_category' eintragen
    where = parent_category = 48 AND deleted = 0 AND hidden = 0
    }
    renderObj = COA
    renderObj {
    # wrappe jede gefundene Hauptkategorie als Listenelement
    wrap = <li>|</li>
    # ueberschreibe den vorherigen Wrap ...
    wrap.override = <li class="current">|</li>
    # ... nur, wenn ...
    wrap.override.if {
    # ... eine News-Kategorie bereits ausgewaehlt wurde und per GET/POST ermittelt werden kann
    value.data = GPvar:tx_commerce_pi1|catUid
    # und dieser ermittelte Wert der aktuellen uid gleicht
    equals.field = uid
    }
    # zeig mir den Kategorie-Titel und mache einen Link daraus zur Kategorie-Detail-Uebersicht
    10 = TEXT
    10 {
    # das title-Feld soll als Text angezeigt werden (koennte man auch description... verwenden)
    field = title
    typolink {
    # verlinke zu der Seite mit der Produkt-Auflistung (Listenansicht)
    parameter = 13
    title.field = title
    # fuege den GET-Parameter fuer die ausgewaehlte Kategorie hinzu
    additionalParams.dataWrap = &tx_commerce_pi1[catUid]={field:uid}
    }
    }
    # zeige mir alle Unterkategorien der aktuellen Kategorie an
    20 = CONTENT
    20 {
    stdWrap {
    # fuehre den Abschnitt nur aus, wenn in der Select-Abfrage ein Wert gefunden wurde
    required = 1
    wrap = <ul>|</ul>
    }
    table = tx_commerce_categories
    select {
    # Hier wieder die PID eures Kategorien-Ordners
    pidInList = 5
    orderBy = sorting
    andWhere.dataWrap = parent_category = {field:uid} AND deleted = 0 AND hidden = 0
    }
    # vererbe die Einstellungen von lib.catList.10.renderObj an dieses renderObj
    renderObj < lib.catList.10.renderObj
    renderObj = COA
    renderObj {
    # zeige den Titel mit Verlinkung an, genauso wie bei lib.catList.10.renderObj.10 (vererbt)
    10 < lib.catList.10.renderObj.10
    # zeige die Unterkategorien an, genauso wie bei lib.catList.10.renderObj.20 (vererbt)
    20 < lib.catList.10.renderObj.20
    # wenn noch eine 3. und 4. Kategorien-Ebene abgebildet werden sollen,
    # dann die folgenden 5 Zeilen verwenden
    # 20.renderObj = COA
    # 20.renderObj {
    # 10 < lib.catList.10.renderObj.10
    # 20 < lib.catList.10.renderObj.20
    # }
    }
    }
    }
    }
    }
    [/TS]

  • king.darki king.dark...
    Sternenflotten-Admiral
    0 x
    219 Beiträge
    0 Hilfreiche Beiträge
    29. 07. 2011, 21:19

    Hallo,

    freut mich wenn ich helfen konnte.

    Jetzt noch ein Like oder Plus1 auf meiner Website, dann hab ich auch was davon ;-)

    Grüße Patrick

  • ra.s ra.s
    R2-D2
    0 x
    101 Beiträge
    0 Hilfreiche Beiträge
    01. 08. 2011, 13:45

    ... kannste haben. sekunde. +g+

  • 1