Sitemap

Armin Bartsch, Dienstag, 10. März 2009

Die Sitemap von TYPO die über css_styled_content konfiguriert wird hat einige Schwächen, mit einem eigenen TypoScript kann man leicht die Sitemap eigenen wünschen anpassen.

Um die Schwächen der über css_styled_content erzeugten Sitemap auszugleichen greifen viele auf Extensionen zurück, diese allerdings haben auch Ihre Schwächen und beschneiden die umfangreichen Konfigurationsmöglichkeiten durch TypoScript.

Die beste Lösung ist das Sitemap mit TypoScript zu erzeugen, so bleiben alle Konfigurationsmöglichkeiten erhalten und die Sitemap kann leicht und schnell angepasst werden.

TypoScript

Eine Sitemap ist nichts anderes als ein Menü, das mit den cObject HMENU und TMENU erzeugt wird. Im Template css_styled_content wird das Sitemap über tt_content.menu.20.2 konfiguriert, hier haben die Änderungen zu erfolgen um auch weiterhin die Sitemap als Spezielles Element einfügen zu können.

Das Beispiel-TypoScript generiert eine Sitemap mit der einer Darstellung wie unter Sitemap zu erreichen ist. Als CSS-Vorlage diente http://www.thestyleworks.de/tut-art/css-sitemap.shtml Beispiel 7B.

constants

Die Aufteilung des TypoScript erfolgt in constans und setup, dies dient der besseren der Übersicht.

Im Bereich constans befindent sich:

# Wrap für die gesamte Sitemap styles.sitemap.wrap_ges = <div id="sitemap">|</div> # Seitentypen die nicht angezeigt werden sollen styles.sitemap.excludeDoktypes = 6 # Seiten die nicht angezeigt werden sollen (rekursiv!) styles.sitemap.excludeUidList = # Link-Text - Feld aus dem der Link-Text gelesen werden soll styles.sitemap.ATagTitle = nav_title // title # Beschreibungs-Text - Feld aus dem die Beschreibung gelesen werden soll styles.sitemap.abstract = abstract // description #Wrap für die Beschreibung styles.sitemap.bs_wrap = <br />|
  1. # Wrap für die gesamte Sitemap
  2. styles.sitemap.wrap_ges = <div id="sitemap">|</div>
  3. # Seitentypen die nicht angezeigt werden sollen
  4. styles.sitemap.excludeDoktypes = 6
  5. # Seiten die nicht angezeigt werden sollen (rekursiv!)
  6. styles.sitemap.excludeUidList =
  7. # Link-Text - Feld aus dem der Link-Text gelesen werden soll
  8. styles.sitemap.ATagTitle = nav_title // title
  9. # Beschreibungs-Text - Feld aus dem die Beschreibung gelesen werden soll
  10. styles.sitemap.abstract = abstract // description
  11. #Wrap für die Beschreibung
  12. styles.sitemap.bs_wrap = <br />|

setup

Die Angaben für das setup:

seite.includeCSS.file57 = fileadmin/intervation/layout3/css/sitemap.css lib.sitemap = COA lib.sitemap { stdWrap.prefixComment = 2 | lib.sitemap wrap = {$styles.sitemap.wrap_ges} 10 = HMENU 10 { special = list special.value.field = pages excludeDoktypes = {$styles.sitemap.excludeDoktypes} excludeUidList = {$styles.sitemap.excludeUidList} 1 = TMENU 1 { wrap = <ul class="first">|</ul> noBlur = 1 expAll = 1 NO { wrapItemAndSub = <li class="first">|</li> ATagTitle.field = {$styles.sitemap.ATagTitle} after{ field= {$styles.sitemap.abstract} wrap = {$styles.sitemap.bs_wrap} } } } 2 < .1 2 { wrap = <ul class="last">|</ul> NO.wrapItemAndSub = <li>|</li> |*||*| <li class="last">|</li> } 3 < .2 4 < .2 5 < .2 } } # Löschen aller alten Sitemap-Angaben tt_content.menu.20.2 > # Kopie der neuen Sitemap-Angaben tt_content.menu.20.2 < lib.sitemap
  1. seite.includeCSS.file57 = fileadmin/intervation/layout3/css/sitemap.css
  2. lib.sitemap = COA
  3. lib.sitemap {
  4.   stdWrap.prefixComment = 2 | lib.sitemap
  5.   wrap = {$styles.sitemap.wrap_ges}
  6.   10 = HMENU
  7.   10 {
  8.     special = list
  9.     special.value.field = pages
  10.     excludeDoktypes = {$styles.sitemap.excludeDoktypes}
  11.     excludeUidList = {$styles.sitemap.excludeUidList}
  12.     1 = TMENU
  13.     1 {
  14.       wrap = <ul class="first">|</ul>
  15.       noBlur = 1
  16.       expAll = 1
  17.       NO {
  18.         wrapItemAndSub = <li class="first">|</li>
  19.         ATagTitle.field = {$styles.sitemap.ATagTitle}
  20.         after{
  21.           field= {$styles.sitemap.abstract}
  22.           wrap = {$styles.sitemap.bs_wrap}
  23.         }
  24.       }
  25.     }
  26.     2 < .1
  27.     2 {
  28.       wrap = <ul class="last">|</ul>
  29.       NO.wrapItemAndSub = <li>|</li> |*||*| <li class="last">|</li>
  30.     }
  31.     3 < .2
  32.     4 < .2
  33.     5 < .2
  34.   }
  35. }
  36.  
  37. # Löschen aller alten Sitemap-Angaben
  38. tt_content.menu.20.2 >
  39. # Kopie der neuen Sitemap-Angaben
  40. tt_content.menu.20.2 < lib.sitemap
  41.  

Sponsored by:

ideenwerft webhosting
ideenwerft caretaker