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 />|# 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 />|
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
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