kharkov_max Posted October 21, 2013 Share Posted October 21, 2013 (edited) Для информации !!! В новой в версии магазина, обновлен модуль Google sitemap, в новом модуле при генерации sitemap.xml появилось новое поле "lastmod" последняя дата редактирования. Так вот google при проверке sitemap.xml ругается на не верный формат выведенной даты. Формат даты должен быть такой http://www.sitemaps.org/protocol.html#lastmoddef Что делать что бы поправить? Идем в ./site-home/modules/gsitemap/gsitemap.php, находим в функциях строчку Edited October 22, 2013 by kharkov_max (see edit history) Link to comment Share on other sites More sharing options...
kharkov_max Posted October 21, 2013 Author Share Posted October 21, 2013 (edited) Правим это 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'])) на это if (!$this->_addLinkToSitemap($link_sitemap, array('type' => 'product', 'page' => 'product', 'lastmod' => date('c',strtotime($product->date_upd)) , 'link' => $url, 'image' => $image_product), $lang['iso_code'], $index, $i, $product_id['id_product'])) После данного изменения модуль будет формировать в sitemap.xml верную дату. Данные изменения делаем для категорий, поставщиков и производителей. Но !!! Если Вы загружали НОВЫЕ товары через импорт CSV и ни разу товар не редактировали, то поле из которого берутся данные в модуль равно NULL, т.е. преобразования даты в XML выдаст чушь и google будет на него ругаться. Что бы это полечить нужно в базе данных MySQL: 1. Текущим товарам с датой обновления NULL присвоить дату добавления тоавара update prefix-table_product_shop set date_upd = date_add where date_upd = '0000-00-00 00:00:00' 2. Добавить на таблицу prefix-table_product_shop и поле date_upd повесить тригер на insert (добавление) DROP TRIGGER IF EXISTS `database`.`update_date_product_insert`; DELIMITER $$ CREATE TRIGGER `database`.`update_date_product_insert` BEFORE insert ON `database`.`prefix-table_product_shop` FOR EACH ROW BEGIN IF @DISABLE_TRIGGERS IS NULL THEN set NEW.date_upd = NEW.date_add; END IF; END $$ DELIMITER ; Таким образом у всех товаров есть дата для модуля, дата добавляется тригером при импорте CSV, и редактируется при ручном редактировании товаров. PS. Все это проверено и работает, но перед тем как будете тулить у себя, лучше протестируйте на тестовых сайтах Edited October 22, 2013 by kharkov_max (see edit history) Link to comment Share on other sites More sharing options...
kharkov_max Posted October 22, 2013 Author Share Posted October 22, 2013 UP Link to comment Share on other sites More sharing options...
FrenchMaster Posted October 22, 2013 Share Posted October 22, 2013 Can you explain in english exactly what we have to do ? the google translation is not working very good in that case... Link to comment Share on other sites More sharing options...
vekia Posted October 22, 2013 Share Posted October 22, 2013 english solution: use this: http://www.prestasho...dpost&p=1426113 and this: http://www.prestasho...dpost&p=1426185 Link to comment Share on other sites More sharing options...
kharkov_max Posted October 22, 2013 Author Share Posted October 22, 2013 I'm not asking you to do anything. There is a problem with the module, and I described how it can be solved. Unfortunately I use translate.google.com Link to comment Share on other sites More sharing options...
kharkov_max Posted October 22, 2013 Author Share Posted October 22, 2013 english solution: use this: http://www.prestasho...dpost&p=1426113 and this: http://www.prestasho...dpost&p=1426185 Do not think that I have plagiarized, I saw your message)) Link to comment Share on other sites More sharing options...
kharkov_max Posted November 6, 2013 Author Share Posted November 6, 2013 Господа, отпишу результат. 1. Хоть сам модуль и обновили и теперь он отображает дату в формате 0000-00-00 00:00:00, но Google ее не кушает. И ругается на формат даты. Поэтому вернул все выше описанные настройки у себя. Так date('c',strtotime($product->date_upd)) все работает нормально. 2. Если товары импортируются из CSV, то тригер необходим. На Google этого не видно, а вот yandex показывает и время добавления страницы, и время ее обновления ... Так что пока пользуйте на здоровье этот механизм, если конечно он кому-то нужен ... Link to comment Share on other sites More sharing options...
wagood Posted November 7, 2013 Share Posted November 7, 2013 (edited) Google не кушает дату по причине того, что по стандарту дата должна быть в формате 0000-00-00 я сделал такую конвертацию date_format(date_create($product->date_upd), 'Y-m-d') вместо $product->date_upd и так в 4-х местах с $product-> , $category-> , $manufacturer-> , $supplier-> Кстати, там скрипт при каждом создании карты сайта пингует сайт гугла, заставляя гугул проиндексировать карту заново. Почитал, что так делать нельзя, тем более часто, гугл прекрасно сам индексирует с указанной периодичностью, поэтому себя закомментировал строку Tools::file_get_contents('http://www.google.com/webmasters/sitemaps/ping?sitemap=.urlencode(http.(Configuration::get(PS_SSL_ENABLED') ? 's' : '').'://'.Tools::getShopDomain(false, true).$this->context->shop->physical_uri.$this->context->shop->virtual_uri.$this->context->shop->id.'_index_sitemap.xml')); Edited November 8, 2013 by wagood (see edit history) Link to comment Share on other sites More sharing options...
kharkov_max Posted November 21, 2013 Author Share Posted November 21, 2013 Google не кушает дату в формате 0000-00-00, а кушает в формате date('c',strtotime($product->date_upd)) и только. Это поправили разработчики модуля в новой версии модуля. Вот только обновлять сам магазин до 1.5.6.1 не спешите, там похоже косяк с импортом CSV... 2 Link to comment Share on other sites More sharing options...
Adi Keil Posted November 23, 2013 Share Posted November 23, 2013 Google не кушает дату в формате 0000-00-00, а кушает в формате date('c',strtotime($product->date_upd)) и только. Это поправили разработчики модуля в новой версии модуля. Вот только обновлять сам магазин до 1.5.6.1 не спешите, там похоже косяк с импортом CSV... Какой косяк??? Я обновляю 25000 товаров при помощи Store Manager for Prestashop. И слава богу пока не поставил 1.5.6.1, но очень хотел поставить))) Спасибо за предупреждение, но очень хочется знать какие там есть косяки в новой версии. Как никак магазин с таким количеством товаров рушить никак не хочется)) Link to comment Share on other sites More sharing options...
kharkov_max Posted November 23, 2013 Author Share Posted November 23, 2013 Какой косяк??? Я обновляю 25000 товаров при помощи Store Manager for Prestashop. И слава богу пока не поставил 1.5.6.1, но очень хотел поставить))) Спасибо за предупреждение, но очень хочется знать какие там есть косяки в новой версии. Как никак магазин с таким количеством товаров рушить никак не хочется)) http://www.prestashop.com/forums/topic/290541-%D0%B8%D0%BC%D0%BF%D0%BE%D1%80%D1%82-%D0%B8%D0%B7-csv-presta-1561/ Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now