Der Beitrag ist zwar schon etwas älter, aber zum einen war es gerade für mich aktuell und zum anderen ist die andere Version die hier vorgeschlagen wird ja noch BETA und scheint noch nicht zu funktionieren.
Da das eingebaute google_sitemap.php zu funktionieren scheint, habe ich mal geschaut, wie man die Datei dazu überreden kann einen Cronjob von extern zu akzeptieren, hier ist meine Lösung:
(gildet für die Shopversion modified eCommerce Shopsoftware v1.05 dated: 2010-07-18 SP1d)
Datei öffnen: google_sitemap.xml
suche nach:
require('includes/application_top.php');
darüber einfügen:
// cron4sitemap - start$cron = (isset($_GET['cron']) && $_GET['cron'] == true) ?
true : false; // cron4sitemap - ende suche nach:
if (!isset($_SESSION['customer_id'])) { darunter einfügen:
// cron4sitemap - if start
if (!$cron) {
suche nach:
xtc_redirect(xtc_href_link(FILENAME_LOGIN, '', 'NONSSL'));
darunter einfügen:
} // cron4sitemap - if ende
! durch die obigen Codezeilen können nicht eingeloggte Besucher die google_sitemap.php aufrufen !
Hinweis zur Sicherheit am Ende.
suche nach:
$breadcrumb->add('Google Sitemap', xtc_href_link(FILENAME_GOOGLE_SITEMAP, xtc_get_all_get_params(), 'NONSSL'));
darunter einfügen:
// cron4sitemap - if start
if (!$cron) {
suche nach:
include (DIR_WS_MODULES . 'default.php');
darunter einfügen:
} // cron4sitemap - if ende
durch die obigen Code Zeilen werden keine Templatedateien geladen
suche nach:
$smarty->caching = 0;
darüber einfügen:
// cron4sitemap - if start
if (!$cron) {
suche nach:
$smarty->display(CURRENT_TEMPLATE . '/index.html');
darunter einfügen:
// cron4sitemap - ...
} else {
print "1";
} // cron4sitemap - if ende
durch die obigen Codezeilen wird nur eine 1 ausgegeben und sonst keine Infos
suche nach:
require(DIR_WS_INCLUDES . 'application_bottom.php');
darüber einfügen:
// cron4sitemap - if start
if (!$cron) {
und darunter einfügen:
} // cron4sitemap - if ende
fertig
danach Eure Domain in die folgende Zeile eintragen und den Cronjob z.B. bei
www.setcronjob.com eintragen:
http://www.deinshop.de/google_sitemap.php?auto=true&cron=trueWichtig: auto=true damit eine Datei erzeugt wird und cron=true damit das Script erkennt, dass es sich um einen Cronjob handelt.
Ausgegeben wird lediglich eine 1 und nichts anderes. Bei mir hat es so mit dem oben genannten Service funktioniert.
Wem es zu unsicher ist die Abfrage der ID und die Umleitung (ganz am Anfang) quasi auszuhebeln, der kann der Datei auch einen anderen Namen geben: xYz123_sitemap.php oder so ... und diese URL dann im Cronjob eintragen.
Gerne lasse ich mich auch belehren, warum man UNBEDINGT die Weiterleitung zur Startseite braucht, wenn man nicht eingeloggt ist, falls es ein großes Sicherheitsrisiko darstellt, darf der Beitrag gerne wieder gelöscht werden. Aber vielleicht reicht ja auch das Hinzufügen der neuen Variable cron und das umbenennen in eine unbekannte Datei ...
PS: ist vielleicht nicht besonders elegant gelöst, aber dafür gibts ja vielleicht hier ein Programmier-Ass