TYPO3-Testaccount
Testen Sie die aktuellste TYPO3-Version kostenlos und unverbindlich für einen Monat!

Jetzt testen!

Schulungen

jetzt buchen

Vollständiges Kategorie-Menü


Autor Nachricht
Verfasst am: 29. 07. 2011 [11:57]
ra.s
Themenersteller
Dabei seit: 06.04.2006
Beiträge: 90
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
ProfilWWW
Verfasst am: 29. 07. 2011 [13:14]
king.darki
Dabei seit: 10.05.2011
Beiträge: 215
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

ProfilWWW
Verfasst am: 29. 07. 2011 [16:55]
ra.s
Themenersteller
Dabei seit: 06.04.2006
Beiträge: 90
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:

TYPOSCRIPT
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
          # }
        }
      }
    }
  }
}


[Dieser Beitrag wurde 1mal bearbeitet, zuletzt am 29.07.2011 um 16:56.]
ProfilWWW
Verfasst am: 29. 07. 2011 [21:19]
king.darki
Dabei seit: 10.05.2011
Beiträge: 215
Hallo,

freut mich wenn ich helfen konnte.

Jetzt noch ein Like oder Plus1 auf meiner Website, dann hab ich auch was davon icon_wink.gif

Grüße Patrick

ProfilWWW
Verfasst am: 01. 08. 2011 [13:45]
ra.s
Themenersteller
Dabei seit: 06.04.2006
Beiträge: 90
... kannste haben. sekunde. +g+
ProfilWWW