Hallo, ha sich schon mal jemand Gedanken gemacht, wie man alle Shopseiten in die XML Sitemap und die normale Sitemap bekommt? Danke
Hi, ja, ⊠/engine/Shopware/Controllers/Frontend/SitemapXml.php ca. nach $url .= "\r\n"; echo $url; } }
je Seite eine Zeile wies diese echo "<url> <loc>http://www.domain.at/</loc> <lastmod>2012-05-13</lastmod> <changefreq>weekly</changefreq> <priority>1.00</priority> </url>\r\n";
und echo "\r\n"; } }
am Ende einfĂŒgen
ok, danke dir. soweit ist das schon mal gut. Aber ich will ja die Shopseiten nicht manuell da eintragen. Daher sollte dies ja automatisch gehen. Aber evtl. kann ich diese dann einfach per SQL Abfragen und automtatisch fĂŒllen. Wenn jemand so was schon mal âautomatischâ gemacht hat, nur her damit
In der /engine/Shopware/Controllers/Frontend/SitemapXml.php die Funktion indexAction() ergÀnzen mit $this-\>readCustomUrls("gBrands"); $this-\>readCustomUrls("gBottom");
wobei der angebene Name gBottom der Name des Gruppen Keys der Seiten ist, die in der Sitemap erscheinen sollen. Wenn mehrere Rubriken erscheinen sollen, dann den Aufruf so wie oben wiederholen. Dann noch die folgende neue Funktion in /engine/Shopware/Controllers/Frontend/SitemapXml.php integrieren: /\*\* \* Read certain custom urls \* \* \*/ public function readCustomUrls($group) { $sql = "SELECT c.id FROM s\_cms\_static c WHERE c.grouping = \"$group\" "; $result = Shopware()-\>Db()-\>query($sql); if (!$result-\>rowCount()) { return; } while ($url = $result-\>fetch()) { $url['link'] = $this-\>Front()-\>Router()-\>assemble(array( 'sViewport' =\> 'custom', 'sCustom' =\> $url['id'] )); $this-\>printArticleUrls($url); } }
[quote=âklausmâ]Hi, ja, ⊠/engine/Shopware/Controllers/Frontend/SitemapXml.php ca. nach $url .= "\r\n"; echo $url; } }
je Seite eine Zeile wies diese echo "<url> <loc>http://www.domain.at/</loc> <lastmod>2012-05-13</lastmod> <changefreq>weekly</changefreq> <priority>1.00</priority> </url>\r\n";
und echo "\r\n"; } }
am Ende einfĂŒgen[/quote] Ah super, danke! Das werde ich gleich mal versuchen!Ich arbeite auch derzeit mit einer Homepage Software, die ich von dieser Seite habe, und wollte ebenfalls die Shopseite rechts in der Sidebar haben. Wusste bis dato nĂ€mlich ebenfalls nicht wie das funktioniert, aber jetzt bin ich schlauer!
Jep, habe es geschafft meine von mir gewĂŒnschten Shopseiten in die sitemap.xml zu bekommen, mit einer geĂ€nderten Zeile in dem Code von Tigersoft (hier nochmal ein Danke!). Auch die Blogseiten sind drin!!! ;): Man muss die Zeile WHERE c.grouping = â$groupâ in WHERE c.grouping LIKE â%â.$group."%" Ă€ndern. Jetzt muss mir nur noch jemand sagen, wie die auch im Shop bei der Sitemap angezeigt werden können, so wie die Kategorien. Ich weiĂ nicht wo und wie. Vielleicht kann ja da noch einer von den Profis einen Tipp geben. WĂ€re echt super!!! [quote=âTigersoftâ]In der /engine/Shopware/Controllers/Frontend/SitemapXml.php die Funktion indexAction() ergĂ€nzen mit $this-\>readCustomUrls("gBrands"); $this-\>readCustomUrls("gBottom");
wobei der angebene Name gBottom der Name des Gruppen Keys der Seiten ist, die in der Sitemap erscheinen sollen. Wenn mehrere Rubriken erscheinen sollen, dann den Aufruf so wie oben wiederholen. Dann noch die folgende neue Funktion in /engine/Shopware/Controllers/Frontend/SitemapXml.php integrieren: /\*\* \* Read certain custom urls \* \* \*/ public function readCustomUrls($group) { $sql = "SELECT c.id FROM s\_cms\_static c WHERE c.grouping = \"$group\" "; $result = Shopware()-\>Db()-\>query($sql); if (!$result-\>rowCount()) { return; } while ($url = $result-\>fetch()) { $url['link'] = $this-\>Front()-\>Router()-\>assemble(array( 'sViewport' =\> 'custom', 'sCustom' =\> $url['id'] )); $this-\>printArticleUrls($url); } }
[/quote]
Ich hĂ€nge mich hier auch noch einmal ran. Ich fĂ€nde eine Lösung fĂŒr die normale sitemap wie auch der sitemap.xml fĂŒr die Landingpages sehr wichtig. Ich habe fĂŒr beides noch keine funktionierende Lösung zu Stande gebracht. In der SitemapXml.php probiere ich im Moment folgendes: Unter public function indexAction() $this->readCampaignUrls(âleftMiddleâ); eingefĂŒgt. Als vorletzten Block: /** * Read certain campaign urls * * */ public function readCampaignUrls($parentId) { $sql = "SELECT c.id, c.seo_description FROM s_emotion c WHERE c.landingpage_block = â$parentIdâ "; $result = Shopware()->Db()->query($sql); if (!$result->rowCount()) { return; } while ($url = $result->fetch()) { $url[âlinkâ] = $this->Front()->Router()->assemble(array( [color=red]âsViewportâ => â???â, Hier weiĂ ich nicht weiter[/color] )); $this->printArticleUrls($url); } } Hier fehlt mir im rot markierten Teil einfach Wissen damit ich die Landingpage als Link angezeigt bekomme. Problem ist wohl das in der s_emotion kein Link zur Landingpage angegeben ist, wahrscheinlich muĂ man hier noch eine sql Abfrage in der rewrite_url einfĂŒgen, aber das ist mir zu hoch⊠Falls jemand einen Tipp hĂ€tte wĂŒrde ich mich freuen. Danke Frank
Hi, der Aufbau ist in etwa so: âsViewportâ=âdetailâ (das sind Produktseiten) âsViewportâ=âcatâ (das sind Kategorien ) âsViewportâ=âblogâ (das sind Blogartikel) Sent from my iPad using Tapatalk
hallo zusammen, ich habe mich auch gerade mit dem thema beschĂ€ftigt und habe aufbauend auf ein paar snippets aus diesem thread die sitemapxml.php refactored (shopware version 4.3.4). in der sitemap enthalten sind jetzt auch custom pages auĂerdem kann die prioritĂ€t in abhĂ€ngigkeit von dem seitentypen beeinflusst werden: https://gist.github.com/seriousManual/5 ⊠1c37b25135 listen mit custom urls hier eintragen (mein beispiel ist âgTopâ): https://gist.github.com/seriousManual/5 ⊠ap-xml-L72 ansonsten können in folgenden zeilen die prioritĂ€ten angepasst werden: category urls (blog): https://gist.github.com/seriousManual/5 ⊠ap-xml-L99 category urls (artikel categories): https://gist.github.com/seriousManual/5 ⊠p-xml-L107 artikel urls: https://gist.github.com/seriousManual/5 ⊠p-xml-L144 blog urls: https://gist.github.com/seriousManual/5 ⊠p-xml-L184 custom urls: https://gist.github.com/seriousManual/5 ⊠p-xml-L207 viel spaĂ.