Jun 1, 2010
Typoscript XML Sitemap
Man kann sich mit Typoscript eine wunderbare XML Sitemap basteln, ohne dazu extra eine der vielen erhältlichen Extensions verwenden zu müssen.
In diesem Beispiel wird der komplette Seitenbaum abgebildet, plus zusätzlich die Einträge einer Extensiontabelle. Wenn man z.B. eine Auflistung von Newsartikeln inkl. einer Detailansicht zum jeweiligen Artikel hat, kann man diese Detailseiten ebenfalls hier hinzufügen. (ab 20 = CONTENT…)
xmlSitemap = PAGE xmlSitemap { typeNum = 200 config { no_cache = 1 disableAllHeaderCode = 1 additionalHeaders = Content-Type: text/xml; charset=utf-8 simulateStaticDocuments = 0 baseURL = http://www.domain.at/ absRefPrefix = http://www.domain.at/ tx_realurl_enable = 1 } 10 = COA 10 { wrap ( <?xml version="1.0" encoding="UTF-8"?> <urlset xmlns="http://www.google.com/schemas/sitemap/0.84" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.google.com/schemas/sitemap/0.84 http://www.google.com/schemas/sitemap/0.84/sitemap.xsd" >|</urlset> ) 10 = HMENU 10 { special = directory #Ausgangspunkt / Root Seite special.value = 1 #1 = Standard #2 = Erweitert #3 = Externe URL #4 = Shortcut #5 = Nicht im MenÌ #6 = Backend Benutzer Bereich #7 = Mount Seite #199 = Abstand #254 = Sysordner #255 = Recycler excludeDoktypes = 2,3,5,6,7,199,254,255 1 = TMENU 1 { expAll = 1 NO { doNotLinkIt = 1 allWrap = <url>|</url> stdWrap.cObject = COA stdWrap.cObject { 10 = TEXT 10 { typolink { parameter.field = uid returnLast = url } wrap = <loc>|</loc> } 20 = TEXT 20 { field = SYS_LASTCHANGED strftime = %Y-%m-%dT%H:%M:%SZ wrap = <lastmod>|</lastmod> } 30 = TEXT 30.value = <priority>0.5</priority> } } } 2 < .1 3 < .1 4 < .1 5 < .1 6 < .1 7 < .1 8 < .1 9 < .1 10 < .1 } 20 = CONTENT 20 { table = tx_meineextension_entries select { orderBy = title ASC languageField = sys_language_uid pidInList = 6,7,8 } renderObj = COA renderObj { stdWrap.wrap = <url>|</url> 5 = TEXT 5 { # Seite mit der Detailansicht typolink.parameter = 10 typolink.additionalParams = &tx_meineextension_pi1[showUid]={field:uid} typolink.additionalParams.insertData = 1 typolink.returnLast = url wrap = <loc>|</loc> } 10 = TEXT 10 { field = tstamp strftime = %Y-%m-%dT%H:%M:%SZ wrap = <lastmod>|</lastmod> } 20 = TEXT 20.value = <priority>0.4</priority><changefreq>weekly</changefreq> } } } }
Ich denke das meiste ist selbsterklärend.
Die Ausgabe der Sitemap erhält man dann mittels der festgelegten Typenum. (http://www.domain.at/?type=200)
Mit der passenden realurl Config oder alternativ einer RewriteRule bekommt man das auch noch in schön hin:
//[...] 'fileName'=> array ( 'index'=> array ( 'sitemap.xml'=> array ( 'keyValues'=> array ( 'type'=>200, ), ), //[...]
(http://www.domain.at/sitemap.xml)
Kommentare