t0mmyK Posted October 21, 2013 Share Posted October 21, 2013 Cześć, Po wygenerowaniu mapy witryny przy użyciu modułu google sitemap, w wersji 2.3, w narzędziach dla webmajsterów mam komunikat o błędach: Wykryto nieprawidłową datę. Popraw datę lub formatowanie przed ponownym przesłaniem. W pliku xml sekcja <lastmod> ma zapis: <lastmod>2013-10-21 01:25:22</lastmod> Wiecie jak poradzić sobie z tym problemem? pozdrawiam,t0mmyK Link to comment Share on other sites More sharing options...
vekia Posted October 21, 2013 Share Posted October 21, 2013 ciekawe dlaczego google się "sadzi" o tę datę. możesz wyedytować plik ręcznie (w celach testowych) i zmienić <lastmod>2013-10-21 01:25:22</lastmod> na <lastmod>2013-10-21</lastmod> ? jak poznamy przyczynę, to wówczas będzie można zmodyfikować moduł Link to comment Share on other sites More sharing options...
t0mmyK Posted October 21, 2013 Author Share Posted October 21, 2013 poprawiłem, czekam na przetworzenie pliku Link to comment Share on other sites More sharing options...
t0mmyK Posted October 21, 2013 Author Share Posted October 21, 2013 po zmianie lastmod na 2013-10-21 - 1 błąd mniej Link to comment Share on other sites More sharing options...
vekia Posted October 21, 2013 Share Posted October 21, 2013 czyli po zmianie daty na prostą, tj. bez godzin google już akceptuje ten plik? mówisz, że jeden problem mniej, gdzie jest drugi? i kolejne? Link to comment Share on other sites More sharing options...
t0mmyK Posted October 21, 2013 Author Share Posted October 21, 2013 Zasadniczy jest taki, że nie będę przecież poprawiał ręcznie tego pliku czy możecie zerknąć jak u Was wygląda postać tej sekcji? I czy ktoś jest w stanie napisać mi jak mogę zmienić ten format? Link to comment Share on other sites More sharing options...
vekia Posted October 21, 2013 Share Posted October 21, 2013 w pliku: gsitemap.php (w katalogu z modułem) masz taki kod: private function _createIndexSitemap() { $sitemaps = Db::getInstance()->ExecuteS('SELECT `link` FROM `'._DB_PREFIX_.'gsitemap_sitemap` WHERE id_shop = '.$this->context->shop->id); if (!$sitemaps) return false; $xml = '<?xml version="1.0" encoding="UTF-8"?><sitemapindex xmlns="http://www.sitemaps.org/schemas/sitemap/0.9"></sitemapindex>'; $xml_feed = new SimpleXMLElement($xml); foreach ($sitemaps as $link) { $sitemap = $xml_feed->addChild('sitemap'); $sitemap->addChild('loc', 'http://'.Tools::getShopDomain(false, true).__PS_BASE_URI__.$link['link']); $sitemap->addChild('lastmod', date('c')); } file_put_contents(dirname(__FILE__).'/../../'.$this->context->shop->id.'_index_sitemap.xml', $xml_feed->asXML()); } jest tam taka linijka: $sitemap->addChild('lastmod', date('c')); zmien date('c') na date ('Y-m-d') Link to comment Share on other sites More sharing options...
t0mmyK Posted October 21, 2013 Author Share Posted October 21, 2013 Dziękuję, próbowałem to zmienić i o ile w pliku 1_index_sitemap.xml format jest zgodny z zapisem ustawionym jak powyżej to w plikach 1_pl_0_sitemap.xml i 1_en_0_sitemap.xml dalej to samo Link to comment Share on other sites More sharing options...
vekia Posted October 21, 2013 Share Posted October 21, 2013 to zamien wszystkie wystapienia date('c') na date ('Y-m-d') Link to comment Share on other sites More sharing options...
t0mmyK Posted October 21, 2013 Author Share Posted October 21, 2013 to jest jedyne - dla pliku indeksu dla plików map nie występuje Link to comment Share on other sites More sharing options...
vekia Posted October 21, 2013 Share Posted October 21, 2013 sprawa się komplikuje przyznam że jak dotąd dzialałem na pamięć, teraz przeglądnąłem źródła modułu i mamy trochę więcej roboty zamień: 1 if (!$this->_addLinkToSitemap($link_sitemap, array('type' => 'product', 'page' => 'product', 'lastmod' => $product->date_upd, 'link' => $url, 'image' => $image_product), $lang['iso_code'], $index, $i, $product_id['id_product'])) na: if (!$this->_addLinkToSitemap($link_sitemap, array('type' => 'product', 'page' => 'product', 'lastmod' => date("Y-m-d", strtotime($product->date_upd)), 'link' => $url, 'image' => $image_product), $lang['iso_code'], $index, $i, $product_id['id_product'])) 2 if (!$this->_addLinkToSitemap($link_sitemap, array('type' => 'category', 'page' => 'category', 'lastmod' => $category->date_upd, 'link' => $url, 'image' => $image_category), $lang['iso_code'], $index, $i, (int)$category_id['id_category'])) na if (!$this->_addLinkToSitemap($link_sitemap, array('type' => 'category', 'page' => 'category', 'lastmod' => date("Y-m-d", strtotime($category->date_upd)), 'link' => $url, 'image' => $image_category), $lang['iso_code'], $index, $i, (int)$category_id['id_category'])) 3 if (!$this->_addLinkToSitemap($link_sitemap, array('type' => 'manufacturer', 'page' => 'manufacturer', 'lastmod' => $manufacturer->date_upd, 'link' => $url, 'image' => $manifacturer_image), $lang['iso_code'], $index, $i, $manufacturer_id['id_manufacturer'])) na if (!$this->_addLinkToSitemap($link_sitemap, array('type' => 'manufacturer', 'page' => 'manufacturer', 'lastmod' => date("Y-m-d", strtotime($manufacturer->date_upd)), 'link' => $url, 'image' => $manifacturer_image), $lang['iso_code'], $index, $i, $manufacturer_id['id_manufacturer'])) 4 if (!$this->_addLinkToSitemap($link_sitemap, array('type' => 'supplier', 'page' => 'supplier', 'lastmod' => $supplier->date_upd, 'link' => $url, 'image' => $supplier_image), $lang['iso_code'], $index, $i, $supplier_id['id_supplier'])) na if (!$this->_addLinkToSitemap($link_sitemap, array('type' => 'supplier', 'page' => 'supplier', 'lastmod' => date("Y-m-d", strtotime($supplier->date_upd)), 'link' => $url, 'image' => $supplier_image), $lang['iso_code'], $index, $i, $supplier_id['id_supplier'])) 5 $this->_addSitemapNode($writeFd, htmlspecialchars(strip_tags($file['link'])), $this->_getPriorityPage($file['page']), Configuration::get('GSITEMAP_FREQUENCY'), $file['lastmod']); na $this->_addSitemapNode($writeFd, htmlspecialchars(strip_tags($file['link'])), $this->_getPriorityPage($file['page']), Configuration::get('GSITEMAP_FREQUENCY'), date("Y-m-d", strtotime($file['lastmod']))); 1 Link to comment Share on other sites More sharing options...
vekia Posted October 21, 2013 Share Posted October 21, 2013 dobra znalazłem chyba łatwiejsze rozwiązanie private function _addSitemapNode($fd, $loc, $priority, $change_freq, $last_mod = NULL) { fwrite($fd, '<loc>'.(Configuration::get('PS_REWRITING_SETTINGS') ? '<![CDATA['.$loc.']]>' : $loc).'</loc>'."\r\n".'<priority>'."\r\n".number_format($priority, 1, '.', '').'</priority>'."\r\n".($last_mod ? '<lastmod>'.date("Y-m-d", strtotime($last_mod)).'</lastmod>' : '')."\r\n".'<changefreq>'.$change_freq.'</changefreq>'."\r\n"); } 1 Link to comment Share on other sites More sharing options...
t0mmyK Posted October 21, 2013 Author Share Posted October 21, 2013 eureka! Dzięki serdeczne! To "łatwiejsze" rozwiązanie działa. Link to comment Share on other sites More sharing options...
Recommended Posts