Unter der Haube: Tutorials, Tipps & Tricks, etc.TYPO3 Extension Modsmc_googlesitemap
Deutsch
English

Modifikation der TYPO3 Extension mc_googlesitemap

mc_googlesitemapDie Extension mc_googlesitemap ist der Quasi-Standard für die Erzeugung von XML-Sitemaps für Suchmachinen unter TYPO3. In der Version 0.4.2 (stable) kann sie über das TYPO3 Repository bezogen werden. Der Einsatz ist eigentlich unproblematisch. Allerdings sind mir zwei kleine "Glitches" aufgefallen:

  • Wenn die Rootpage kein Shortcut ist (d.h. die Rootpage enthält bereits den Inhalt der Startseite), wird ein falscher Link für den Startseiteneintag in der Sitemap erzeugt.
    ("/" anstatt "http://domain.tld/")
  • Bei aktiviertem absRefPrefix wird zudem die Domain doppelt in die Links eingefügt
    (z.B. "http://domain.tld/http://domain.tld/anypage/etc/")

Der erste Effekt...

... tritt nicht auf, wenn die Rootpage ein Shortcut zur eigentlichen Startseite ist. Dies ist aus verschiedenen Gründen der Standard bei vielen TYPO3-Installationen. Daher werden viele TYPO3-Nutzer den Fehler nie bemerken.

FIX: In der Datei class.tx_mcgooglesitemap_base.php muss in der Function "createElement" (ab Zeile 287) folgendes gepatched werden:

Aus

function createElement($array) {
$linea[]="\t";
$linea[]="\t\t".$array['loc']."";
$linea[]="\t\t".$array['lastmod']."";

wird

function createElement($array) {
$linea[]="\t";
if ($array['loc'] == "/") { $array['loc'] = "http://domain.tld/"; }
$linea[]="\t\t".$array['loc']."";
$linea[]="\t\t".$array['lastmod']."";

Natürlich muss dabei "domain.tld" durch die reale Domain ersetzt werden...

Der zweite Effekt...

... naja, was soll man sagen. Von der Verwendung von absRefPrefix wird seitens TYPO3 abgeraten. Der Einsatz ist auch in der Tat problematisch, da einige Extensions (so auch diese) damit nicht umgehen können, resp. nicht darauf vorbereitet sind. Allerdings bin ich mittlerweile ein Fan dieser Funktion. Warum das so ist, darauf gehe ich später noch mal ein.

FIX: In der Datei class.tx_mcgooglesitemap_base.php muss in Zeile 72 folgendes gepatched werden:

Aus

$this->baseUrl='http://'.$host.'/'.$path;

wird

$this->baseUrl=$path;

Hier wird also nur "'http://'.$host.'/'." entfernt. Damit fügt mc_googlesitemap das Domainprefix nicht mehr eigenständig hinzu, sondern dies wird absRefPrefix überlassen.

Nutzer

Donnerstag, 24. September 2009 14:01
Nutzer's Gravatar

... kann oder muss man beide Modifikationen durchführen? Oder reicht auch eine von beiden (je nach dem, ob absRefPrefix genutzt wird, oder nicht)?

Velaskin aus Aachen

Freitag, 25. September 2009 13:20
Velaskin's Gravatar

Man muss nur eine Modifikation durchführen.

Wenn absRefPrefix aktiviert ist, muss nur dieser Fix gemacht werden (unabhängig davon, ob die Rootpage ein Shortcut ist, oder nicht).

Wenn absRefPrefix nicht aktiv ist, muss der erste Fix nur gemacht werden, wenn die Rootpage kein Shortcut ist.

Ins Gästebuch eintragen
remember me
:):));):D:oCOOLNEUTRALSLANTFROWNCOOLROLLEYESEEKOOPSSADCRYMADFIMEVIL:?HOLY