Hallo Leute!
Bin gerade dabei mir mit TS eine Google Sitemap unter Verwendung der Tabelle indexed_search zu erstellen. Klappt bis auf eine Kleinigkeit eigentlich ganz gut. Die da wäre, dass mir die Links nicht im richtigen Format gezeigt werden und entweder realURL nicht funktioniert, oder ich eine "nicht wohlgeformt"-Fehlermeldung bekomme. Verantwortlich für den Fehler sind die "&"
Eine URL sieht dann so aus:
<loc>http://domain.com/glossar.html?tx_a21glossary%5Bback%5D=32&tx_a21glossary%5Buid%5D=41&cHash=4fc8c7f188</loc>
Habe es auch mit "htmlSpecialChars = 1" versucht, aber dann fehlt bei den "&" das schliessende ";", also nur "&".
Die User-Function benötigt es noch um die Spalte cHashParams auszulesen.
Hat jemand eine Idee wie man das mit den Links hinbekommt?
lg lixx
Mein TScript:
############################################
#-------------------------------------------------------------------#
# tmpl: Google Sitemap-Template
#-------------------------------------------------------------------#
############################################
includeLibs >
includeLibs.user_googlesitemap = fileadmin/googlesitemap.php
plugin >
#-------------------------------------------------------------------#
#----->> config
#-------------------------------------------------------------------#
config >
config {
no_cache = 1
disableAllHeaderCode = 1
disableCharsetHeader = 1
additionalHeaders = Content-Type: text/xml;charset=utf8
enableContentLengthHeader = 1
xhtml_cleaning = 0
simulateStaticDocuments = 0
baseURL = http://domain.at/
tx_realurl_enable = 1
tx_a21glossary.excludePages = 8
}
page = PAGE
page.typeNum = 0
page.10 = CONTENT
page.10 {
wrap = <?xml version="1.0" encoding="UTF-8"?><urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">|</urlset>
table = pages
select {
selectFields = index_phash.data_page_id, index_phash.cHashParams, index_phash.item_mtime
pidInList = 1,15,16
leftjoin = index_phash ON ( index_phash.data_page_id = pages.uid )
}
renderObj >
renderObj = COA
renderObj {
wrap = <url>|</url>
10 = TEXT
10 {
insertData = 1
wrap = <loc>http://{getenv:HTTP_HOST}/|</loc>
typolink {
parameter.field = data_page_id
returnLast = url
additionalParams.field = cHashParams
additionalParams.postUserFunc = user_googlesitemap
additionalParams.HTMLparser = 0
additionalParams.HTMLparser.htmlSpecialChars = 1
}
}
}
}
UserFunc:
<?php
function user_googlesitemap($content, $conf) {
//echo htmlentities(http_build_query(unserialize($content)))."\n";
return $content?'&'.http_build_query(unserialize($content), ';'):'';
}
?>