Zum Inhalt springen

Google Sitemap aus indexed_search mit TS

Erstellt am 8. August 2008 · Noch keine Antworten

Tags: SEO, Suche, Frage

lixx ·

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), ';'):'';
}

?>