Jump to content

Moduł google sitemap - nieprawidłowa data


Recommended Posts

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

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

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

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'])));

  • Like 1
Link to comment
Share on other sites

dobra znalazłem chyba łatwiejsze rozwiązanie :D

	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");
	}
  • Like 1
Link to comment
Share on other sites

×
×
  • Create New...