[TYPO3-german] TT News Catmenu

Andre Sancken evilknevil10 at gmx.de
Fri Jun 7 09:30:52 CEST 2013


Hallo,


Mit folgendem Snippet generiere ich mir ein eigenes Catmenu.


catList = COA
catList {
  # hole alle Hauptkategorien
  10 = CONTENT
  10 {
    # wrappe die gesamte Liste als "unsortierte Liste"
    wrap = <header class="page-header"><ul
id="portfolio-items-filter">|</ul></header>
    table = tt_news_cat
    select {
      # hier muss die pid eures News-Sysordners rein, bzw. wo die
News-Kategorien gespeichert sind
      pidInList = 30
      orderBy = title
      where = parent_category=0 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="active">|</li>
      # ... nur, wenn ...
      wrap.override.if {
        # ... eine News-Kategorie bereits ausgewaehlt wurde und per GET/POST
ermittelt werden kann
        value.data = GPvar:tx_ttnews|cat
        # 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 News-Auflistung (Listenansicht)
          parameter = #
          title.field = title
          # fuege den GET-Parameter fuer die ausgewaehlte Kategorie hinzu
          # additionalParams.dataWrap = &tx_ttnews[cat]={field:uid}
          # cHash mit uebergeben fuers Caching - Danke an ScubaBen fuer den
Hinweis!
          useCacheHash = 1
          
          ATagParams.stdWrap.cObject = TEXT
              ATagParams.stdWrap.cObject {
                # case = lower
                field = title
                insertData = 1
                wrap = data-categories="|"
              }
          doNotLinkIt = 1

        }
      }
 
      # zeig mir einen Counter aller News-Eintraege in dieser Kategorie
      20 = CONTENT
      20 {
        table = tt_news_cat
        select {
          # hier wieder der Sysordner aller News-Eintraege und -Kategorien
          pidInList = 30
          join = tt_news_cat_mm ON (tt_news_cat.uid =
tt_news_cat_mm.uid_foreign)
                   JOIN tt_news ON (tt_news.uid = tt_news_cat_mm.uid_local)
          # dieses Where sorgt dafuer, dass auch die News der
Unterkategorien 1 Ebene unterhalb
          # gezaehlt werden - tiefere Ebenen koennen nicht beruecksichtigt
werden
          # andWhere.dataWrap = (tt_news_cat.uid={field:uid} OR
# tt_news_cat.parent_category={field:uid}) AND tt_news.deleted=0 AND
tt_news.hidden=0
          # dieses Where zaehlt nur die News in dieser Kategorie
          andWhere.dataWrap = (tt_news_cat.uid={field:uid})
                                           AND tt_news.deleted=0 AND
tt_news.hidden=0
                                           AND
sys_language_uid={TSFE:sys_language_uid}
          # fuehre einen count durch und speichere das Ergebnis in "counter"
          selectFields = count(*) AS counter
        }
        renderObj = TEXT
        renderObj {
          # zeig mir nun das Ergebnis des Counters an und wrappe es
          //field = counter
          //wrap =  <span>(|)</span>
        }
      }
 
      # zeige mir alle Unterkategorien der aktuellen Kategorie an
      30 = CONTENT
      30 {
        stdWrap {
          # fuehre den Abschnitt nur aus, wenn in der Select-Abfrage ein
Wert gefunden wurde
          required = 1
          wrap = <ul>|</ul>
        }
 
        table = tt_news_cat
        select {
          pidInList = 30
          orderBy = title
          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 den News-Counter an, genauso wie bei
lib.catList.10.renderObj.20 (vererbt)
          # 20 < lib.catList.10.renderObj.20
 
          # zeige die Unterkategorien an, genauso wie bei
lib.catList.10.renderObj.30 (vererbt)
          # 30 < lib.catList.10.renderObj.30
          # wenn noch eine 4. und 5. Kategorien-Ebene abgebildet werden
sollen,
          # dann die folgenden 6 Zeilen verwenden
          # 30.renderObj = COA
          # 30.renderObj {
          #   10 < lib.catList.10.renderObj.10
          #   20 < lib.catList.10.renderObj.20
          #   30 < lib.catList.10.renderObj.30
          # }
        }
      }
    }
  }
}


Folgende Ausgabe erscheint:


<ul id="portfolio-items-filter">
<li><a data-categories="Corporate Design" title="Corporate Design"
href="referenzen.html" class="active" style="">Corporate Design</a></li>
<li><a data-categories="Kommunikation" title="Kommunikation"
href="referenzen.html" style="display: none;">Kommunikation</a></li>
<li><a data-categories="Online-Media" title="Online-Media"
href="referenzen.html" style="display: none;">Online-Media</a></li>
</ul>


Jetzt bräuchte ich vor dem ersten <li> noch ein weiteres, was statisch sein
soll.


Beispiel: <li><a data-categories="*">Alle</li>


Das ganze ist der Isotope Effekt. Wie bekomme ich diesen Link rein?


Gruß


Andre











More information about the TYPO3-german mailing list