Neuigkeiten
  • Die modified eCommerce Shopsoftware ist kostenlos, aber nicht umsonst.
    Spenden
  • Damit wir die modified eCommerce Shopsoftware auch zukünftig kostenlos anbieten können:
    Spenden
  • Thema: BETA MODUL: Dynamische Sitemap

    Tomcraft

    • modified Team
    • Gravatar
    • Beiträge: 46.373
    • Geschlecht:
    Re: BETA MODUL: Dynamische Sitemap
    Antwort #15 am: 03. November 2011, 02:36:19
    Bei mir kommt dieser Fehler:

    Code: PHP  [Auswählen]
    Fatal error: Class 'language' not found in /kunden/206178_42281/webseiten/shop/inc/shopstat_functions.inc.php on line 200

    Kann es sein, dass ihr in der "/templates/<template-name>source/boxes.php" die folgende zeile auskommentiert habt?

    Code: PHP  [Auswählen]
      include(DIR_WS_BOXES . 'languages.php');

    Schaut mal bitte nach und kommentiert die Zeile ggf. wieder ein und testet erneut.

    Grüße

    Torsten

    Halli

    • Mitglied
    • Beiträge: 100
    Re: BETA MODUL: Dynamische Sitemap
    Antwort #16 am: 03. November 2011, 14:01:38
    Gerade gelesen. Diese Zeile war nie auskommentiert (Version modified eCommerce Shopsoftware 1.05)
    Aber ich habe gerade bemerkt, das alles so läuft wie es sollte. Ich schiebe das ganze mal auf die Domainfactory Server. Diese haben in letzter Zeit diverse Updates bekommen und scheinen nun schneller und stabiler zu laufen. War vielleicht damals einfach nur ein unerklärlicher Scriptabbruch bei mir.

    mdalpen

    • Neu im Forum
    • Beiträge: 19
    Re: BETA MODUL: Dynamische Sitemap
    Antwort #17 am: 22. Juni 2012, 16:40:59
    Moin!

    Bei mir läuft das Modul einwandfrei, soweit ich es via Konsole durch

    /usr/bin/php sitemap.xml.php
    und

    /usr/bin/php sitemap.xml.php >> /tmp/sitemap.xml
    getestet habe.

    Was passiert aber, wenn mehr als 50.000 Einträge durch dieses Modul per

    Code: PHP  [Auswählen]
    echo $content;

    ausgegeben werden?

    Dann wäre diese virtuelle sitemap.xml ja obsolet. Sieht Google das als Feed und schluckt die Artikel trotzdem?

    VG,

    mdalpen

    web28

    • modified Team
    • Beiträge: 9.404
    Re: BETA MODUL: Dynamische Sitemap
    Antwort #18 am: 22. Juni 2012, 17:34:15
    Was passiert aber, wenn mehr als 50.000 Einträge durch dieses Modul per ausgegeben werden?

    Dafür ist dieses Modul anscheinend nicht geeignet.

    mdalpen

    • Neu im Forum
    • Beiträge: 19
    Re: BETA MODUL: Dynamische Sitemap
    Antwort #19 am: 22. Juni 2012, 17:39:46
    @web28:

    Hmmm... dann werde ich es wohl umbauen müssen... Schade!

    VG,

    mdalpen

    web28

    • modified Team
    • Beiträge: 9.404
    Re: BETA MODUL: Dynamische Sitemap
    Antwort #20 am: 22. Juni 2012, 19:01:15
    Ein OnTheFly Modul ist für so große Datenmengen meiner Meinung nach überhaupt nicht geeignet.

    Dehalb habe ich für mein Kunden ein Modul programmiert, das eine perfekte Sitemap Datei(en) im gz. Format erzeugt, das reduziert die zu übertragene Datenmenge erheblich. Das Modul wird entweder von Hand gestartet oder per Cronjob.
    In der neuesten Version werden auch die Infos der Artikelbilder eingebunden.

    Gruss Web28

    mdalpen

    • Neu im Forum
    • Beiträge: 19
    Re: BETA MODUL: Dynamische Sitemap
    Antwort #21 am: 23. Juni 2012, 02:55:45
    @web28:

    Es freut mich natürlich für Dich, dass Du für Deine Kunden ein Modul programmiert hast, was eine perfekte Sitemap und dazu noch inkl. Bilder erzeugt.

    Ich habe mich im Forum umgesehen und gestern die "fortgeschrittene" von agentj hinsichtlich einbezogener Cache-Nutzung modifizierte Version des Moduls installiert.

    Bei 25.358 Artikeln (Unikaten) dauert die Ausgabe 0,2 Sekunden. Wenn ich die Ausgabe in eine Datei pipe, ist die .xml etwa 9,5 MB gross.

    Da die Shops erst relativ kurz online sind reicht mir eigentlich erst einmal die Funktion, wie sie im Admin-Bereich durch Auslösen von (in meinem Fall) http://<meinshop.de>/google_sitemap.php?auto=true&ping=false durchgeführt wird. Allerdings kommen gerade zwei neue Kunden mit erheblich mehr Artikeln (mind. 300.000, max. 750.000, auch Unikate) auf mich zu.

    Ich kann zwar ohne Probleme die google_sitemap.php nach den im Forum postulierten Korrekturen im Code mit Erfolg z.B. per cronjob ausführen, leider werden in diesem Fall aber grundsätzlich die Session-ID's  an die URLs in der .xml angehängt.

    Keine der im Forum postulierten Änderungen z.B. in der .htacces ändern daran etwas und ich habe bisher weder im Forum noch im Netz noch selbst herausgefunden, wie ich das umgehen kann.

    Das dynamische Modul hingegen ist schnell (siehe oben) und ich brauche keinen cronjob und v.a. kein manuelles Erstellen der sitemap.xml im Admin-Bereich nötig, was ich den Kunden und mir definitiv ersparen möchte (siehe Shopvorstellung: http://www.modified-shop.org/forum/index.php?topic=20506.msg191413#msg191413 ).

    Da das besagte dynamische Modul bisher das einzige ist, was mir via /usr/bin/php-Aufruf sämtliche URL's OHNE die vermaledeiten Session-ID's ausgibt, ist es für mich wahrscheinlich einfacher und schneller, dieses Modul so umzuschreiben so dass es mir anstatt eines
    Code: PHP  [Auswählen]
    echo $content
    meine sitemap-index.xml inkl. der darin erwähnten sitemapx.xml's erstellt, als wenn ich lange weiterhin nach dem Grund suche, welcher für den ungewünschten Anhang der Session-ID's verantwortlich ist, um ihn nur möglicherweise abstellen zu können, OHNE den Shop dadurch in seiner Funktion zu beeinträchtigen.

    Für Anregungen oder optimalere Vorschläge bin ich gerne offen... ;-)

    VG,

    mdalpen

    mdalpen

    • Neu im Forum
    • Beiträge: 19
    Re: BETA MODUL: Dynamische Sitemap
    Antwort #22 am: 26. Juni 2012, 14:38:20
    //Update:

    Habe das Modul jetzt so umgeschrieben, dass es korrekte sitemap.xml's erstellt und auch per cronjob ausgeführt werden kann.

    VG,

    mdalpen

    Pikul

    • Neu im Forum
    • Beiträge: 3
    Re: BETA MODUL: Dynamische Sitemap
    Antwort #23 am: 23. Juli 2012, 07:00:45
    Ich bekomme
    Zitat
    Fatal error: Cannot redeclare rv_get_path() (previously declared in /var/www/[shop-url]/html/sitemap.xml.php:116) in /var/www/[shop-url]/html/sitemap.xml.php on line 116
    :-?

    xxhappyxx

    • Viel Schreiber
    • Beiträge: 829
    • Geschlecht:
    Re: BETA MODUL: Dynamische Sitemap
    Antwort #24 am: 23. Juli 2012, 16:29:32
    Hallo Zusammen,

    ich habe mal wieder ein wenig über den Tellerrand geschaut und bin im osC-Forum fündig geworden.

    Wäre schön wenn jemand einen Blick drauf werfen könnte. Ich bin der Meinung die Ausgabe ist korrekt.

    Gruß Thomas

    PS.: Ist schon für modified eCommerce Shopsoftware angepasst.

    xxhappyxx

    • Viel Schreiber
    • Beiträge: 829
    • Geschlecht:
    Re: BETA MODUL: Dynamische Sitemap
    Antwort #25 am: 24. Juli 2012, 18:24:39
    Ähmmm,

    könnte mir bitte einer der Mods erklären wie aus meinem

    PS.: Ist schon für x t c m angepasst.

    ein

    PS.: Ist schon für Shopm angepasst.

    werden konnte?

    Gruß Thomas

    Edit: Stelle gerade fest, das hier eine Automatik am Werke ist. Aus  x t c m wird automatisch shop!?

    derkosta

    • Neu im Forum
    • Beiträge: 33
    Re: BETA MODUL: Dynamische Sitemap
    Antwort #26 am: 22. August 2012, 21:04:25
    Ich bekomme
    Zitat
    Fatal error: Cannot redeclare rv_get_path() (previously declared in /var/www/[shop-url]/html/sitemap.xml.php:116) in /var/www/[shop-url]/html/sitemap.xml.php on line 116
    :-?

    habe gerade auch das problem.
    gibts dazu eine lösung? sonst kommentiere ich die kategorien erstmal aus ;)

    John_Delay

    • Mitglied
    • Beiträge: 124
    • Geschlecht:
    Re: BETA MODUL: Dynamische Sitemap
    Antwort #27 am: 14. Februar 2013, 12:21:38
    Hallo an alle,

    Ich habe mich auch mal an der dynamischen Sitemap versucht, da ich finde, dass die built-in-Lösung nur sub-optimal ist. Dabei habe ich mir die originale Lösung dieses Threads (die ja nach den Aussagen hier und auch bei mir nicht funktionierte) als Vorlage genommen, es umgeschrieben, ergänzt und nun endlich zum Laufen bekommen.
    Das Script erzeugt 2 Dateien: sitemap2.xml und sitemap3.xml.gz (gleicher Inhalt, nur halt gezippt). Einfach die angehängte Datei sitemap2.php in den Shop root legen und folgenden Eintrag in der .htaccess ergänzen (irgendwann nach "RewriteEngine On"):

    RewriteCond %{REQUEST_URI} ^/sitemap2.xml
    RewriteRule .* /sitemap2.php [L]


    (btw: mit der Namensgebung "sitemap.xml.php" hatte mein PHP offenbar irgendein Problem).
    Die sitemap2.xml (oder auch die sitemap2.php, egal) sollte bei den derzeitigen Einstellungen ($usage_hours=0.99) einmal pro Stunde per Cron aufgerufen werden, damit die Sitemap-Dateien generiert werden können. Sonst würde, wie weiter oben bereits beschrieben, der Aufruf durch einen Bot ggf. obsolet.
    Die <priority> und <changefreq> Tags sollte jeder an seine eigenen Bedürfnisse anpassen.

    ÄNDERUNGEN ggü. dem o. g. Skript:
    • Den Aufruf der configuration.php habe ich rausgeworfen und die Variable $root hinzugefügt, da die configuration.php ja auch in der includes/application_top.php aufgerufen wird und es daher zu Warnmeldungen kam.
    • GZIP_COMPRESSION noch vor Aufruf der application_top.php als „false“ definiert – was unbedingt erforderlich ist und seltsamer Weise keine Warnmeldung erzeugte,
    • Der Kathegorien-Teil und die Funktion "rv_get_path" sind eine Katastrophe :D - insbesondere die imaginäre Variable $cat_data['code'], die bei eingeschaltetem error_reporting und display_errors eine "undefined"-Notice auswirft. Keine Ahnung, wo die ursprünglich herkommt ... Aber wenn man Sie rausschmeißen, funzt es gar nicht mehr. Wenn da bitte einer von Euch nochmal drüber schauen könnte? ... ich war einfach zu müde gestern.
    • Naja und ... erst mit einem "ob_start" zu beginnen und dann mitten im Script mit einem "exit" auszusteigen fand ich auch nicht schön :D, das habe ich geändert, sodass es nun bis zum Ende durchläuft,
    • Die Variable $language habe ich umbenannt in $all_languages - nur damit es zu keinen Konflikten kommt mit bereits an anderer Stelle verwendeten, gleichnamigen Variablen.
    • Die Blog-Modul-Geschichte habe ich entfernt, weil ich die nicht benötige (kann man ja bei Bedarf wieder entsprechend einbauen),
    • Den Code etwas "aufgefrischt" und leserlicher gemacht (aber das war auch vorher schon ok),
    • Die Reihenfolge der Tags gemäß Vorgaben geändert,
    • Noch diverse andere kleinere Änderungen vorgenommen,
    • Das aktuelle, offizielle Schema (http://www.sitemaps.org/schemas/sitemap/0.9) verwendet, das dann auch von anderen Suchmaschinen sicher erkannt wird (auch wenn die 0.84-Version von google-sitemaps i. A. noch unterstützt wird).

    Zitat
    "... Since Yahoo and Microsoft support the Google Sitemaps Protocol, the schema version was changed to "Sitemap 0.90" (no other changes). Google still accepts the version 0.84, but for submissions to other search engines urlset must reference the XML schema hosted by sitemaps.org."
    (Quelle: https://groups.google.com/forum/?fromgroups=#!topic/google_webmaster_help-sitemap/v4BrWDNkxSI).

    Da das Script nur bei ausgeschaltetem error_reporting und display_errors eine fehlerfreie (oder besser: notice-freie) Sitemap liefert, handelt es sich immer noch um eine quick-and-dirty-Lösung, die letztlich aber recht gut funktioniert (jedenfalls bei mir) … wie gesagt: die Variable $cat_data['code'] ist Schuld  :whistle:,
    Langfristig sollte man m. E. den Hebel aber an anderer Stelle ansetzen, denn:
    Zitat
    "... Google bestimmt die Sprache einer Seite lediglich auf der Grundlage des sichtbaren Contents. Wir verwenden keine  Sprachinformationen auf Codeebene wie lang-Attribute."
      und
    Zitat
    "... Verwenden Sie für die verschiedenen Sprachversionen Ihres Contents jeweils eine eigene URL. Verwenden Sie keine Cookies, um übersetzte Versionen der Seite anzuzeigen. Verlinken Sie nach Möglichkeit die einzelnen Sprachversionen einer Seite."
    (Quelle: http://support.google.com/webmasters/bin/answer.py?hl=de&answer=182192)

    Ich weiss, ich schreibe hier nix, was nicht schon hinreichend bekannt wäre - aber falls Ihr (das Entwickler-Team) eine Überarbeitung des Link-Routings auf dem Zettel habt, dann sollte es ganz oben stehen  :vote: . Ist bestimmt ein leidiges Thema, aber kann man sich da nicht was bei den anderen xtc forks abgucken? Langfristig gesehen soll der modified Shop doch konkurrenzfähig bleiben. Und der Grund, warum man einen Shop aufsetzt, liegt doch bei vielen Gewerbetreibenden darin, "zusätzliche" Kunden zu generieren und nicht nur die Sowieso-Kunden von ebay und amazon auf die eigene Seite umzuleiten. Die organische Suche bei Google und Co. kann nunmal immer noch ein Erfolgsbringer sein.

    Aus diesem Grunde glaube ich, dass es sinnvoller ist, nicht zu viel Zeit damit zu verbringen, weiter an diesem Skript "rumzubasteln", sondern erst mal das Routing in Angriff zu nehmen. Wenn man das Script anschließend nochmal bearbeitet, sollte man auch an die oben angesprochene 50.000 Links-Grenze einer google-sitemap denken. Wenn man z. B. 15.000 Artikel in einem 4-sprachigen Shop hat, so würden am Ende mehr als 10.000 Links nicht indexiert werden. Da müsste dann wahrscheinlich pro Sprache eine eigene Sitemap her. Man kann mich diesbezüglich gerne ansprechen, wenn ich so etwas gegen Honorar umsetzen soll.

    Eigentlich müssten auch noch 2 Spalten (creation_date & last_modified) in der DB-Tabelle content_manager hinzugefügt und eine entsprechende Änderung im Code der contentmanager.php gemacht werden. Momentan steht in der Sitemap immer die aktuelle Zeit bei den Content-Links ...

    Aber auch schon mit dieser Lösung hat man gegenüber der built-in-Lösung einige Vorteile:

    • ALLE Produkt-, Kategorien- und Content-Seiten werden berücksichtigt (ohne doppelte Einträge),
    • Die Änderung der Tag-Reihenfolge und die Aktualisierung des Sitemap-Schemas führt ggf. zu einer besseren Listung auch bei anderen Suchmaschinen (als Google),
    • Alle Links haben in mehrsprachigen Shops einen angehängten lang-Parameter (was bei derzeitigem Routing noch erforderlich ist), in einsprachigen Shops keinen,
    • Man läuft nicht Gefahr, dass Session-IDs an die Links angehängt werden (bei Backend-Einstellung "Cookie Benutzung bevorzugen" = false),
    • Man kann bei zu großen Datenmengen bequem von der dynamischer erzeugten (sitemap2.xml) auf die gezippte Sitemap (sitemap3.xml.gz) umsteigen,
    • Darüber hinaus sind die Sitemaps valide (getestet unter http://www.validome.org/xml/validate/  und  http://www.xmlcheck.com/).

    Und es ist nur das Aufspielen einer Datei, das Anlegen eines Cron-Jobs und ein minimaler Eingriff in die .htaccess notwendig und somit meiner Meinung nach kein Core-Hack.
    Ach ja ... und wenn Ihr es Euch einbaut: nicht vergessen, die sitemap2.xml bzw. die sitemap3.xml.gz (z. B. in Eurem Google Webmaster-Tool) bekannt zu geben und möglichst auch die robots.txt entsprechend zu ändern ;) .
    So, hoffe ich konnte helfen und freue mich auf Euer feedback,

    Gruß, Ingo

    twe

    • Schreiberling
    • Beiträge: 293
    • Geschlecht:
    Re: BETA MODUL: Dynamische Sitemap
    Antwort #28 am: 21. Februar 2013, 08:57:28
    Hab jetzt, nach deinem Hinweis in dem anderen Thread, die dateien ausgeführt und erhalte folgenden Fehler:

    Code: XML  [Auswählen]
    XML-Verarbeitungsfehler: Kein Element gefunden
    Adresse: /sitemap2.php
    Zeile Nr. 1, Spalte 1:
    ^

     

    John_Delay

    • Mitglied
    • Beiträge: 124
    • Geschlecht:
    Re: BETA MODUL: Dynamische Sitemap
    Antwort #29 am: 21. Februar 2013, 09:44:13
    Hallo twe,

    - hast Du den Eintrag in der .htaccess gemacht?
    - hast Du Schreibrechte in dem Root-Verzeichnis? Läuft es im CGI-Mode?
    - funzt auf dem Server file_put_contents ggf. nicht? Sonst kommentiere mal in der sitemap2.php die Zeile 174 aus und entferne dafür die Kommentarzeichen in den Zeilen 176 bis 178 ... Wenn gzopen auch nicht geht, dann ruf mal ´ne phpinfo.php auf (sofern vorhanden) und schau da mal rein, was überhaupt möglich ist.

    Schreib anschließend nochmal hier in den Thread.

    Gruß, Ingo
    43 Antworten
    25250 Aufrufe
    12. Januar 2015, 22:12:45 von spiegelid
    1 Antworten
    2106 Aufrufe
    21. März 2016, 18:22:57 von Bonsai
    1 Antworten
    2078 Aufrufe
    05. Oktober 2013, 01:58:50 von noRiddle (revilonetz)
    4 Antworten
    2982 Aufrufe
    14. Mai 2011, 20:56:14 von ElectricArts