LeGastronome Posted October 22, 2012 Share Posted October 22, 2012 Bonjour, Désolé de remettre ça sur le tapis mais y a t il un module sitemap qui fonctionne correctement en 1.5? Multiboutique ou non? Merci Link to comment Share on other sites More sharing options...
LeGastronome Posted October 23, 2012 Author Share Posted October 23, 2012 c'est dingue que tout le monde se fout de se module ? pour moi très important? mais c'est que pour moi ? Link to comment Share on other sites More sharing options...
benji41 Posted October 24, 2012 Share Posted October 24, 2012 y'a déjà un site map sur la 1.5 Link to comment Share on other sites More sharing options...
btsconsult Posted October 24, 2012 Share Posted October 24, 2012 Bonjour, Tu parle du Google Sitemap ? Google sitemap INSTALLÉ Développé par : PrestaShop | Version : 1.9 | Catégorie : Référencement - SEO Description : Génère votre fichier sitemap pour Google Sinon il fonctionne bien ! 1 Link to comment Share on other sites More sharing options...
benji41 Posted October 24, 2012 Share Posted October 24, 2012 Bah oui il fonctionne pour ça je comprends pas trop le topic créé par LeGastronome Link to comment Share on other sites More sharing options...
rangoli Posted October 24, 2012 Share Posted October 24, 2012 Bonjour il ne fonctionne pas correctement sur mon site: 1. le sitemap génère que les urls en Anglais 2. réécriture url ne fonctionne pas avec les pages cms.. http://forge.prestashop.com/browse/PNM-500 Merci Link to comment Share on other sites More sharing options...
speedscuba Posted October 25, 2012 Share Posted October 25, 2012 (edited) Bonjour, Je confirme, le module gsitemap prestashop 1.5 en version multiboutique ne fonctionne pas. Pour ma part j'ai le message suivant : Erreur durant la création du fichier sitemap Warning : fopen(/home/www/b9ff8c735651f9da0851e81704af4f4d/web/modules/gsitemap/../../sitemap-1.xml) [ function.fopen ]: failed to open stream: Permission denied in /home/www/b9ff8c735651f9da0851e81704af4f4d/web/modules/gsitemap/gsitemap.php on line 314 Warning : fwrite(): supplied argument is not a valid stream resource in /home/www/b9ff8c735651f9da0851e81704af4f4d/web/modules/gsitemap/gsitemap.php on line 315 Warning : fclose(): supplied argument is not a valid stream resource in /home/www/b9ff8c735651f9da0851e81704af4f4d/web/modules/gsitemap/gsitemap.php on line 316 Si quelqu'un à une idée ;-) PS : les droits en écriture on été donné sur le dossier et fichiers gsitemap Merci Edited October 25, 2012 by speedscuba (see edit history) Link to comment Share on other sites More sharing options...
LeGastronome Posted October 31, 2012 Author Share Posted October 31, 2012 Il fonctionne bien ce module ? J'ai pas vu de maj dans la svn ? Link to comment Share on other sites More sharing options...
jde2a Posted November 20, 2012 Share Posted November 20, 2012 Bonjour , est ce normal que dans le sitemap les URL ne soient pas réécrite ? Link to comment Share on other sites More sharing options...
canel Posted November 21, 2012 Share Posted November 21, 2012 Bonjour, Idem pour ma part, certaines url sont réécrites d'autres pas : http://monsite.com/index.php?id_product=4&controller=product Link to comment Share on other sites More sharing options...
facbest Posted November 21, 2012 Share Posted November 21, 2012 Bonjour, le sitemap ne marche que s'il y a qu'une seule boutique (principale) En multiboutique le sitemap ne prend que la première boutique se qui oblige à avoir tous les produits des autre boutiques sur la 1ère boutique Pour ma part j'ai fait comme ça : Ma boutique 1 est sans produit car page d'accueil de mes autres boutiques virtuelle http://www.lecoindesvelos.com j'ai créé un sitemap pour chacune de mes boutiques sitemap-1 sitemap-2 etc.. que j'ai rempli avec un logiciel externe et que j'ai envoyé à Google voilà le resultat du sitemap dans le BO déporté exemple sitemat principal correspond à Sitemap pour : www.lecoindesvelos.com/ Sitemap principal Votre fichier Google sitemap est en ligne à l'adresse suivante : http://www.lecoindesvelos.com/sitemap.xml Sitemap pour : www.lecoindesvelos.com/ Votre fichier Google sitemap est en ligne à l'adresse suivante : http://www.lecoindesvelos.com/sitemap-1.xml Mise à jour Tuesday 13 November 2012 11:51:32 Taille du fichier 1.259MB Nombre de pages indexées : 5457 Sitemap pour : www.lecoindesvelos.com/bmx/ Votre fichier Google sitemap est en ligne à l'adresse suivante : http://www.lecoindesvelos.com/bmx/sitemap-2.xml Mise à jour Tuesday 13 November 2012 11:54:32 Taille du fichier 0.385MB Nombre de pages indexées : 1555 Sitemap pour : www.lecoindesvelos.com/piecesderechange/ Votre fichier Google sitemap est en ligne à l'adresse suivante : http://www.lecoindesvelos.com/piecesderechange/sitemap-3.xml Mise à jour Tuesday 13 November 2012 12:01:04 Taille du fichier 0.112MB Nombre de pages indexées : 486 etc.. Problème car apparemment les photos ne sont pas pris en compte par Google Si quelqu'un a une autre idée! Merci d'avance Link to comment Share on other sites More sharing options...
canel Posted November 21, 2012 Share Posted November 21, 2012 Merci facbest pour ma part je ne suis pas en multiboutique... ça deviens difficile d'avoir des réponses sur ce forum, qu'est-ce qu'il se passe ? Link to comment Share on other sites More sharing options...
LeGastronome Posted November 21, 2012 Author Share Posted November 21, 2012 J'ai modifié le fichier, je vous le mets à dispo ce soir.... je vais demander une prime chez presta.. pour debugage Link to comment Share on other sites More sharing options...
LeGastronome Posted November 22, 2012 Author Share Posted November 22, 2012 Essayez ce fichier gsitemap.php Link to comment Share on other sites More sharing options...
facbest Posted November 23, 2012 Share Posted November 23, 2012 Bonjour, Chez moi le fichier me fait une 'erreur sans commentaires' quand je fait sur toute les boutique et une page blanche quand je fait sur une boutique en faisant page avant sur safari il me renvoi sur 404 Link to comment Share on other sites More sharing options...
LeGastronome Posted November 23, 2012 Author Share Posted November 23, 2012 activez le rapport de bug Link to comment Share on other sites More sharing options...
facbest Posted November 23, 2012 Share Posted November 23, 2012 Ca donne aucune erreur Link to comment Share on other sites More sharing options...
LeGastronome Posted November 23, 2012 Author Share Posted November 23, 2012 dans le répertoire du module il ne créez pas de sitemap? étonnant Link to comment Share on other sites More sharing options...
facbest Posted November 23, 2012 Share Posted November 23, 2012 non juste une page blanche quand je clique pour générer et rien dans sitemap.xml. J'ai la version 1.9 je sais pas si c'est la bonne a force de faire des mise à jour depuis la première version 1.5.0 de toute façon des bugs partout vivement la prochaine version de prestashop. Link to comment Share on other sites More sharing options...
canel Posted November 27, 2012 Share Posted November 27, 2012 Merci LeGastronome chez moi pas de page blanche mais pas de changement non plus :-( J'ai toujours les url 2 fois, réécrites et non réécrites... Link to comment Share on other sites More sharing options...
canel Posted November 27, 2012 Share Posted November 27, 2012 Trouvé pour moi !!!!! Désinstaller le module gsitemap, aller dans le fichier gsitemap.php qui est dans le dossier modules bien sûr. Ligne 209 : $tmpLink = $this->context->link->getProductLink((int)($product['id_product']), $product['link_rewrite'], $product['category'], $product['ean13'], (int)($product['id_lang'])); Remplacé la ligne ci-dessus par : $tmpLink = $this->context->link->getProductLink($product, $product['link_rewrite'], $product['category'], $product['ean13'], (int)($product['id_lang']), $id_shop, 0, true); 3 Link to comment Share on other sites More sharing options...
LeGastronome Posted November 27, 2012 Author Share Posted November 27, 2012 parce que tu n'es pas en multiboutique ? et les pages en bas de fichier xml ? Link to comment Share on other sites More sharing options...
canel Posted November 27, 2012 Share Posted November 27, 2012 Non je ne suis pas en multiboutique. Je n'avais pas trop regardé la fin de mon sitemap mais il me reste encore 4 url bizarre.. <url><loc>http://www.libertiss.com/index.php?controller=new-products</loc><priority>0.5</priority><changefreq>monthly</changefreq></url><url><loc>http://www.libertiss.com/index.php?controller=prices-drop</loc><priority>0.5</priority><changefreq>monthly</changefreq></url><url><loc>http://www.libertiss.com/index.php?controller=stores</loc><priority>0.5</priority><changefreq>monthly</changefreq></url><url><loc>http://www.libertiss.com/index.php?controller=authentication</loc><priority>0.5</priority><changefreq>monthly</changefreq></url><url><loc>http://www.libertiss.com/index.php?controller=best-sales</loc><priority>0.5</priority><changefreq>monthly</changefreq></url><url><loc>http://www.libertiss.com/index.php?controller=contact-form</loc><priority>0.5</priority><changefreq>monthly</changefreq></url> Link to comment Share on other sites More sharing options...
LeGastronome Posted November 29, 2012 Author Share Posted November 29, 2012 eh eh :-) il faut faire la même modif sur la création des pages. regarde mon fichier Link to comment Share on other sites More sharing options...
canel Posted November 29, 2012 Share Posted November 29, 2012 Cela ne change rien à mes dernière url, de plus ça rajoute d'autres url étrange du styles http://http://www.libertiss.com/5/xxxx soit 2 http + une numero entre le ndd et le nom du produit. Une autre question, ne vaudrait-il pas mieux pour le référencement de garder le nom de la catégorie dans l'url ? Link to comment Share on other sites More sharing options...
pick33 Posted November 30, 2012 Share Posted November 30, 2012 Pour ma part, ça fonctionne très bien après MAJ de 1.4.6.2 -> 1.5.2 Link to comment Share on other sites More sharing options...
NicoVibrato Posted November 30, 2012 Share Posted November 30, 2012 Bonsoir, l'url dans le site map reste malheureusement en dynamique et donc pas réécrite? c'est curieux? pour toutes les langues activées Link to comment Share on other sites More sharing options...
rom1z Posted December 19, 2012 Share Posted December 19, 2012 Bonjour, quelqu’un a t'il a t'il réussi a faire fonctionner gsitemap correctement en multiboutique? Car de mon coté il me génère un sitemap qui redirige vers un sitemap pour chaque boutique. Mais lorsque je le soumet a google il m'indique que toutes les adresses comportent des erreurs, effectivement les url du sitemap sont incomplete. du genre: <loc>http:///index.php?id_product=24&controller=product</loc> au lieu de cela qui est correct <loc>http://www.monsite/index.php?id_product=24&controller=product</loc> Si je déactive le multi boutique tout fonctionne bien Merci Link to comment Share on other sites More sharing options...
Hardwell Posted January 21, 2013 Share Posted January 21, 2013 Trouvé pour moi !!!!! Désinstaller le module gsitemap, aller dans le fichier gsitemap.php qui est dans le dossier modules bien sûr. Ligne 209 : $tmpLink = $this->context->link->getProductLink((int)($product['id_product']), $product['link_rewrite'], $product['category'], $product['ean13'], (int)($product['id_lang'])); Remplacé la ligne ci-dessus par : $tmpLink = $this->context->link->getProductLink($product, $product['link_rewrite'], $product['category'], $product['ean13'], (int)($product['id_lang']), $id_shop, 0, true); MAGINIFIQUE Link to comment Share on other sites More sharing options...
mic84 Posted January 22, 2013 Share Posted January 22, 2013 merci a Canel pour la modification du sitemap.php Michel Link to comment Share on other sites More sharing options...
Thierroch Posted February 4, 2013 Share Posted February 4, 2013 Merci à Canel pour cette modif qui fonctionne aussi pour moi. Thierroch Link to comment Share on other sites More sharing options...
Zitoun Posted February 21, 2013 Share Posted February 21, 2013 (edited) Bonjour, Merci pour votre solution. Cependant, dans le cadre d'une boutique multilingue, une seule adresse est générée. il faudrait peut être modifier le code comme suit (ou une solution avoisinante): ligne 201: if (!isset($done[$id_product][(int)($product['id_lang'])]['added'])) ligne 213 : $done[$id_product][(int)($product['id_lang'])]['added'] = true; Juste en dessous ligne 218 il y a aussi le problème de l'image qui est rattachée à la première langue (en) et non à la langue par défaut (fr): if (!isset($done[$id_product][$id_image]) && $id_image && $product['id_lang']==4) Qu'en pensez-vous ? Merci beaucoup d'avance. Edited February 21, 2013 by Zitoun (see edit history) 1 Link to comment Share on other sites More sharing options...
misterpink Posted February 21, 2013 Share Posted February 21, 2013 Bonjour, Pour moi cette solution sur gsitemap.php a fonctionnée sur prestashop 1.5.3 gsitemap.php ligne 209 remplacer par : $tmpLink = $this->context->link->getProductLink((int)($product['id_product']), $product['link_rewrite'], $product['category'], $product['ean13'], (int)($product['id_lang']),null,0,true); Link to comment Share on other sites More sharing options...
WebDesign-Entreprise Posted March 1, 2013 Share Posted March 1, 2013 Canel's solution works for me! Thank you! Link to comment Share on other sites More sharing options...
Squadra Unica Posted March 9, 2013 Share Posted March 9, 2013 Merci à Canel et Zitoune. Modifier le fichier gsitemap.php comme Canel (pour avoir les liens correct) et comme Zitoune (pour avoir les liens dans les différentes langues). Link to comment Share on other sites More sharing options...
n0b0dY Posted March 20, 2013 Share Posted March 20, 2013 (edited) Bonsoir à tous, Je n'ai pas bien compris un point.; il faut désinstaller le module gsitemap > doit on le réinstaller ensuite ? Y a til une manière spéciale de procéder ou puis je me contenter de le désisnstaller depuis le BO puis une fois le gsitemap.php modifié, je le réinstalle drectement depuis le BO ? Je suis un peu perdu.. merci d'avance. Edit : Je viens de penser que du coup, si la manipulation fonctionne, je vais avoir les urls correctement réécrites mais par la même occasion, lorsque je vais resoumettre mon site map à Google, toutes mes pages vont changer d'adresses.. (j'ai 6 pages dans Google..) n'ayant jamais mis en place de redirections permanentes, quelqu'un aurait il un tuto simple pour cela ? Edited March 20, 2013 by n0b0dY (see edit history) Link to comment Share on other sites More sharing options...
n0b0dY Posted March 22, 2013 Share Posted March 22, 2013 C'est bon, ca vient de marcher pour moi aussi.. enfin un sitemap tout propre.. milles merci ! Link to comment Share on other sites More sharing options...
amerigeau Posted March 26, 2013 Share Posted March 26, 2013 Trouvé pour moi !!!!! Désinstaller le module gsitemap, aller dans le fichier gsitemap.php qui est dans le dossier modules bien sûr. Ligne 209 : $tmpLink = $this->context->link->getProductLink((int)($product['id_product']), $product['link_rewrite'], $product['category'], $product['ean13'], (int)($product['id_lang'])); Remplacé la ligne ci-dessus par : $tmpLink = $this->context->link->getProductLink($product, $product['link_rewrite'], $product['category'], $product['ean13'], (int)($product['id_lang']), $id_shop, 0, true); Sur une 1.5.2.0 le tip fonctionne très bien pour les urls produits. Merci Link to comment Share on other sites More sharing options...
BreizhInWeb Posted March 30, 2013 Share Posted March 30, 2013 Merci pour la résolution de ce bug que je viens de modifier aussi Link to comment Share on other sites More sharing options...
chounpyt Posted March 30, 2013 Share Posted March 30, 2013 Bonjour avez-vous regardé si la 1.5.4 résout ce problème de sitemap, ou si avec cette release il faut encore bidouiller le sitemap ? merci de votre avis éclairé sur ce point super important Link to comment Share on other sites More sharing options...
BreizhInWeb Posted March 30, 2013 Share Posted March 30, 2013 Bonjour avez-vous regardé si la 1.5.4 résout ce problème de sitemap, ou si avec cette release il faut encore bidouiller le sitemap ? merci de votre avis éclairé sur ce point super important Moi le soucis était encore effectif voici mon fichier modifier pour 1.5.4 * @copyright 2007-2013 PrestaShop SA * @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0) * International Registered Trademark & Property of PrestaShop SA */ if (!defined('_PS_VERSION_')) exit; class Gsitemap extends Module { private $_html = ''; private $_postErrors = array(); public function __construct() { $this->name = 'gsitemap'; $this->tab = 'seo'; $this->version = '1.9'; $this->author = 'PrestaShop'; $this->need_instance = 0; parent::__construct(); $this->displayName = $this->l('Google sitemap'); $this->description = $this->l('Generate your Google sitemap file.'); if (!defined('GSITEMAP_FILE')) define('GSITEMAP_FILE', dirname(__FILE__).'/../../sitemap.xml'); } public function uninstall() { file_put_contents(GSITEMAP_FILE, ''); return parent::uninstall(); } private function _postValidation() { file_put_contents(GSITEMAP_FILE, ''); if (!($fp = fopen(GSITEMAP_FILE, 'w'))) $this->_postErrors[] = sprintf($this->l('Cannot create %ssitemap.xml file..'), realpath(dirname(__FILE__.'/../..')).'/'); else fclose($fp); } private function getUrlWith($url, $key, $value) { if (empty($value)) return $url; if (strpos($url, '?') !== false) return $url.'&'.$key.'='.$value; return $url.'?'.$key.'='.$value; } private function _postProcess() { Configuration::updateValue('GSITEMAP_ALL_CMS', (int)Tools::getValue('GSITEMAP_ALL_CMS')); Configuration::updateValue('GSITEMAP_ALL_PRODUCTS', (int)Tools::getValue('GSITEMAP_ALL_PRODUCTS')); if (Shop::isFeatureActive()) $res = $this->generateSitemapIndex(); else $res = $this->generateSitemap(Configuration::get('PS_SHOP_DEFAULT'), GSITEMAP_FILE); $this->_html .= ' '; $this->_html .= $res ? $this->l('Sitemap file generated.') : $this->l('Error while creating sitemap file.'); $this->_html .= ' '; } /** * Generate sitemap index to reference the sitemap of each shop * * @return bool */ public function generateSitemapIndex() { $xmlString = << XML; $xml = new SimpleXMLElement($xmlString); $sql = 'SELECT s.id_shop, su.domain, su.domain_ssl, CONCAT(su.physical_uri, su.virtual_uri) as uri FROM '._DB_PREFIX_.'shop s INNER JOIN '._DB_PREFIX_.'shop_url su ON s.id_shop = su.id_shop AND su.main = 1 WHERE s.active = 1 AND s.deleted = 0 AND su.active = 1'; if (!$result = Db::getInstance()->executeS($sql)) return false; $res = true; foreach ($result as $row) { $info = pathinfo(GSITEMAP_FILE); $filename = $info['filename'].'-'.$row['id_shop'].'.'.$info['extension']; $replaceUrl = array('http://'.$row['domain'].$row['uri'], ((Configuration::get('PS_SSL_ENABLED')) ? 'https://' : 'http://').$row['domain_ssl'].$row['uri']); $last = $this->generateSitemap($row['id_shop'], $info['dirname'].'/'.$filename, $replaceUrl); if ($last) { $this->_addSitemapIndexNode($xml, 'http://'.$row['domain'].(($row['uri']) ? $row['uri'] : '/').$filename, date('Y-m-d')); } $res &= $last; } $fp = fopen(GSITEMAP_FILE, 'w'); fwrite($fp, $xml->asXML()); fclose($fp); return $res && file_exists(GSITEMAP_FILE); } /** * Generate a sitemap for a shop * * @param int $id_shop * @param string $filename * @return bool */ private function generateSitemap($id_shop, $filename = '', $replace_url = array()) { $langs = Language::getLanguages(); $shop = new Shop($id_shop); if (!$shop->id) return false; $xmlString = << XML; $xml = new SimpleXMLElement($xmlString); if (Configuration::get('PS_REWRITING_SETTINGS') && count($langs) > 1) foreach($langs as $lang) { $this->_addSitemapNode($xml, Tools::getShopDomain(true, true).__PS_BASE_URI__.$lang['iso_code'].'/', '1.00', 'daily', date('Y-m-d')); } else $this->_addSitemapNode($xml, Tools::getShopDomain(true, true).__PS_BASE_URI__, '1.00', 'daily', date('Y-m-d')); /* Product Generator */ $sql = 'SELECT p.id_product, pl.link_rewrite, DATE_FORMAT(IF(ps.date_upd,ps.date_upd,ps.date_add), \'%Y-%m-%d\') date_upd, pl.id_lang, cl.`link_rewrite` category, ean13, i.id_image, il.legend legend_image, ( SELECT MIN(level_depth) FROM '._DB_PREFIX_.'product p2 '.Shop::addSqlAssociation('product', 'p2').' LEFT JOIN '._DB_PREFIX_.'category_product cp2 ON p2.id_product = cp2.id_product LEFT JOIN '._DB_PREFIX_.'category c2 ON cp2.id_category = c2.id_category WHERE p2.id_product = p.id_product AND product_shop.`active` = 1 AND c2.`active` = 1) AS level_depth FROM '._DB_PREFIX_.'product p LEFT JOIN '._DB_PREFIX_.'product_shop ps ON (ps.id_product = p.id_product AND ps.id_shop = '.(int)$id_shop.') LEFT JOIN '._DB_PREFIX_.'product_lang pl ON (p.id_product = pl.id_product) LEFT JOIN '._DB_PREFIX_.'category_lang cl ON (ps.id_category_default = cl.id_category AND pl.id_lang = cl.id_lang AND cl.id_shop = '.(int)$id_shop.') LEFT JOIN '._DB_PREFIX_.'image i ON p.id_product = i.id_product LEFT JOIN '._DB_PREFIX_.'image_lang il ON (i.id_image = il.id_image) LEFT JOIN '._DB_PREFIX_.'lang l ON (pl.id_lang = l.id_lang) WHERE l.`active` = 1 AND ps.`active` = 1 AND ps.id_shop = '.(int)$id_shop.' '.(Configuration::get('GSITEMAP_ALL_PRODUCTS') ? '' : 'HAVING level_depth IS NOT NULL').' ORDER BY pl.id_product, pl.id_lang ASC'; $resource = Db::getInstance(_PS_USE_SQL_SLAVE_)->query($sql); // array used to know which product/image was already added (blacklist) $done = null; $sitemap = null; // iterates on the products, to gather the image ids while ($product = Db::getInstance()->nextRow($resource)) { // if the product has not been added $id_product = $product['id_product']; if (!isset($done[$id_product][(int)($product['id_lang'])]['added'])) { // priority if (($priority = 0.7 - ($product['level_depth'] / 10)) < 0.1) $priority = 0.1; // adds the product $tmpLink = $this->context->link->getProductLink($product, $product['link_rewrite'], $product['category'], $product['ean13'], (int)($product['id_lang']), $id_shop, 0, true); $sitemap = $this->_addSitemapNode($xml, $tmpLink, $priority, 'weekly', substr($product['date_upd'], 0, 10)); // considers the product has added $done[$id_product][(int)($product['id_lang'])]['added'] = true; } // if the image has not been added $id_image = $product['id_image']; if (!isset($done[$id_product][$id_image]) && $id_image) { if (!isset($done[$id_product][$id_image]) && $id_image && $product['id_lang']==4) // adds the image $this->_addSitemapNodeImage($sitemap, $product); // considers the image as added $done[$id_product][$id_image] = true; } } /* Categories Generator */ if (Configuration::get('PS_REWRITING_SETTINGS')) $categories = Db::getInstance()->executeS(' SELECT c.id_category, c.level_depth, link_rewrite, DATE_FORMAT(IF(date_upd,date_upd,date_add), \'%Y-%m-%d\') AS date_upd, cl.id_lang FROM '._DB_PREFIX_.'category c LEFT JOIN '._DB_PREFIX_.'category_lang cl ON c.id_category = cl.id_category LEFT JOIN '._DB_PREFIX_.'lang l ON cl.id_lang = l.id_lang WHERE l.`active` = 1 AND c.`active` = 1 AND c.id_category != 1 ORDER BY cl.id_category, cl.id_lang ASC'); else $categories = Db::getInstance()->executeS( 'SELECT c.id_category, c.level_depth, DATE_FORMAT(IF(date_upd,date_upd,date_add), \'%Y-%m-%d\') AS date_upd FROM '._DB_PREFIX_.'category c ORDER BY c.id_category ASC'); foreach($categories as $category) { if (($priority = 0.9 - ($category['level_depth'] / 10)) < 0.1) $priority = 0.1; $tmpLink = Configuration::get('PS_REWRITING_SETTINGS') ? $this->context->link->getCategoryLink((int)$category['id_category'], $category['link_rewrite'], (int)$category['id_lang']) : $this->context->link->getCategoryLink((int)$category['id_category']); $this->_addSitemapNode($xml, htmlspecialchars($tmpLink), $priority, 'weekly', substr($category['date_upd'], 0, 10)); } /* CMS Generator */ if (Configuration::get('GSITEMAP_ALL_CMS') || !Module::isInstalled('blockcms')) $sql_cms = ' SELECT DISTINCT '.(Configuration::get('PS_REWRITING_SETTINGS') ? 'cl.id_cms, cl.link_rewrite, cl.id_lang' : 'cl.id_cms'). ' FROM '._DB_PREFIX_.'cms_lang cl LEFT JOIN '._DB_PREFIX_.'lang l ON (cl.id_lang = l.id_lang) WHERE l.`active` = 1 ORDER BY cl.id_cms, cl.id_lang ASC'; else if (Module::isInstalled('blockcms')) $sql_cms = ' SELECT DISTINCT '.(Configuration::get('PS_REWRITING_SETTINGS') ? 'cl.id_cms, cl.link_rewrite, cl.id_lang' : 'cl.id_cms'). ' FROM '._DB_PREFIX_.'cms_block_page b LEFT JOIN '._DB_PREFIX_.'cms_lang cl ON (b.id_cms = cl.id_cms) LEFT JOIN '._DB_PREFIX_.'lang l ON (cl.id_lang = l.id_lang) WHERE l.`active` = 1 ORDER BY cl.id_cms, cl.id_lang ASC'; $cmss = Db::getInstance(_PS_USE_SQL_SLAVE_)->executeS($sql_cms); foreach($cmss as $cms) { $tmpLink = Configuration::get('PS_REWRITING_SETTINGS') ? $this->context->link->getCMSLink((int)$cms['id_cms'], $cms['link_rewrite'], false, (int)$cms['id_lang']) : $this->context->link->getCMSLink((int)$cms['id_cms']); $this->_addSitemapNode($xml, $tmpLink, '0.8', 'daily'); } /* Add classic pages (contact, best sales, new products...) */ $pages = array( 'supplier' => false, 'manufacturer' => false, 'new-products' => false, 'prices-drop' => false, 'stores' => false, 'authentication' => true, 'best-sales' => false, 'contact-form' => true); // Don't show suppliers and manufacturers if they are disallowed if (!Module::getInstanceByName('blockmanufacturer')->id && !Configuration::get('PS_DISPLAY_SUPPLIERS')) unset($pages['manufacturer']); if (!Module::getInstanceByName('blocksupplier')->id && !Configuration::get('PS_DISPLAY_SUPPLIERS')) unset($pages['supplier']); // Generate nodes for pages if(Configuration::get('PS_REWRITING_SETTINGS')) foreach ($pages as $page => $ssl) foreach($langs as $lang) $this->_addSitemapNode($xml, $this->context->link->getPageLink($page, $ssl, $lang['id_lang']), '0.5', 'monthly'); else foreach($pages as $page => $ssl) $this->_addSitemapNode($xml, $this->context->link->getPageLink($page, $ssl), '0.5', 'monthly'); $xml_string = $xml->asXML(); // Replace URL in XML strings by real shops URL if ($replace_url) $xml_string = str_replace(array(Tools::getShopDomain(true).__PS_BASE_URI__, Tools::getShopDomainSsl(true).__PS_BASE_URI__), $replace_url, $xml_string); $fp = fopen($filename, 'w'); fwrite($fp, $xml_string); fclose($fp); return file_exists($filename); } private function _addSitemapIndexNode($xml, $loc, $last_mod) { $sitemap = $xml->addChild('sitemap'); $sitemap->addChild('loc', htmlspecialchars($loc)); $sitemap->addChild('lastmod', $last_mod); return $sitemap; } private function _addSitemapNode($xml, $loc, $priority, $change_freq, $last_mod = NULL) { $sitemap = $xml->addChild('url'); $sitemap->addChild('loc', htmlspecialchars($loc)); $sitemap->addChild('priority', number_format($priority,1,'.','')); if ($last_mod) $sitemap->addChild('lastmod', $last_mod); $sitemap->addChild('changefreq', $change_freq); return $sitemap; } private function _addSitemapNodeImage($xml, $product) { $image = $xml->addChild('image', null, 'http://www.google.com/schemas/sitemap-image/1.1'); $image->addChild('loc', htmlspecialchars($this->context->link->getImageLink($product['link_rewrite'], (int)$product['id_product'].'-'.(int)$product['id_image'])), 'http://www.google.com/schemas/sitemap-image/1.1'); $legend_image = preg_replace('/(&+)/i', '&', $product['legend_image']); $image->addChild('caption', $legend_image, 'http://www.google.com/schemas/sitemap-image/1.1'); $image->addChild('title', $legend_image, 'http://www.google.com/schemas/sitemap-image/1.1'); } private function _displaySitemap() { if (Shop::isFeatureActive()) { $sql = 'SELECT s.id_shop, su.domain, su.domain_ssl, CONCAT(su.physical_uri, su.virtual_uri) as uri FROM '._DB_PREFIX_.'shop s INNER JOIN '._DB_PREFIX_.'shop_url su ON s.id_shop = su.id_shop AND su.main = 1 WHERE s.active = 1 AND s.deleted = 0 AND su.active = 1'; if (!$result = Db::getInstance()->executeS($sql)) return ''; $this->_html .= ' '.$this->l('Sitemap index').' '; $this->_html .= ' '.$this->l('Your Google sitemap file is online at the following address:').' '.Tools::getShopDomain(true, true).__PS_BASE_URI__.'sitemap.xml '; $info = pathinfo(GSITEMAP_FILE); foreach ($result as $shop) { $filename = $info['dirname'].'/'.$info['filename'].'-'.$shop['id_shop'].'.'.$info['extension']; if (file_exists($filename) && filesize($filename)) { $fp = fopen($filename, 'r'); $fstat = fstat($fp); fclose($fp); $xml = simplexml_load_file($filename); $nbPages = count($xml->url); $sitemap_uri = 'http://'.$shop['domain'].$shop['uri'].$info['filename'].'-'.$shop['id_shop'].'.'.$info['extension']; $this->_html .= ' '.$this->l('Sitemap for: ').$shop['domain'].$shop['uri'].' '; $this->_html .= ' '.$this->l('Your Google sitemap file is online at the following address:').' '.$sitemap_uri.' '; $this->_html .= $this->l('Update:').' '.utf8_encode(strftime('%A %d %B %Y %H:%M:%S',$fstat['mtime'])).' '; $this->_html .= $this->l('Filesize:').' '.number_format(($fstat['size']*.000001), 3).'MB '; $this->_html .= $this->l('Indexed pages:').' '.$nbPages.' '; } } } elseif (file_exists(GSITEMAP_FILE) && filesize(GSITEMAP_FILE)) { $fp = fopen(GSITEMAP_FILE, 'r'); $fstat = fstat($fp); fclose($fp); $xml = simplexml_load_file(GSITEMAP_FILE); $nbPages = count($xml->url); $this->_html .= ' '.$this->l('Your Google sitemap file is online at the following address:').' '.Tools::getShopDomain(true, true).__PS_BASE_URI__.'sitemap.xml '; $this->_html .= $this->l('Update:').' '.utf8_encode(strftime('%A %d %B %Y %H:%M:%S',$fstat['mtime'])).' '; $this->_html .= $this->l('Filesize:').' '.number_format(($fstat['size']*.000001), 3).'MB '; $this->_html .= $this->l('Indexed pages:').' '.$nbPages.' '; } } private function _displayForm() { if (Tools::usingSecureMode()) $domain = Tools::getShopDomainSsl(true); else $domain = Tools::getShopDomain(true); $this->_html .= ' '.$this->l('Sitemap also includes products from inactive categories.').' '.$this->l('Sitemap also includes CMS pages not found in a CMS block.').' '.$this->l('Use cron job to re-build the sitemap:').' '.$domain.__PS_BASE_URI__.'modules/gsitemap/gsitemap-cron.php?&token='.substr(Tools::encrypt('gsitemap/cron'),0,10).'&GSITEMAP_ALL_CMS='.((int)Configuration::get('GSITEMAP_ALL_CMS')).'&GSITEMAP_ALL_PRODUCTS='.((int)Configuration::get('GSITEMAP_ALL_PRODUCTS')).' '; } public function getContent() { if (Tools::isSubmit('btnSubmit')) { $this->_postValidation(); if (!count($this->_postErrors)) $this->_postProcess(); else foreach ($this->_postErrors as $err) $this->_html .= ' '.$err.' '; } $this->_html .= ' '.$this->l('Search Engine Optimization (SEO).').' '.$this->l('See').' '.$this->l('This page').' '.$this->l('For more information').' '; $this->_displaySitemap(); $this->_displayForm(); $this->_html .= ' '; return $this->_html; } } Cordialement Link to comment Share on other sites More sharing options...
axodav Posted March 30, 2013 Share Posted March 30, 2013 Bonjour, Merci de l'info, mais cher moi vos données ne sont pas exploitable sous Notepade++ pouvez-vous mètre en pièce jointe le fichier. Merci Moi le soucis était encore effectif voici mon fichier modifier pour 1.5.4 * @copyright 2007-2013 PrestaShop SA * @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0) * International Registered Trademark & Property of PrestaShop SA */ if (!defined('_PS_VERSION_')) exit; class Gsitemap extends Module { private $_html = ''; private $_postErrors = array(); public function __construct() { $this->name = 'gsitemap'; $this->tab = 'seo'; $this->version = '1.9'; $this->author = 'PrestaShop'; $this->need_instance = 0; parent::__construct(); $this->displayName = $this->l('Google sitemap'); $this->description = $this->l('Generate your Google sitemap file.'); if (!defined('GSITEMAP_FILE')) define('GSITEMAP_FILE', dirname(__FILE__).'/../../sitemap.xml'); } public function uninstall() { file_put_contents(GSITEMAP_FILE, ''); return parent::uninstall(); } private function _postValidation() { file_put_contents(GSITEMAP_FILE, ''); if (!($fp = fopen(GSITEMAP_FILE, 'w'))) $this->_postErrors[] = sprintf($this->l('Cannot create %ssitemap.xml file..'), realpath(dirname(__FILE__.'/../..')).'/'); else fclose($fp); } private function getUrlWith($url, $key, $value) { if (empty($value)) return $url; if (strpos($url, '?') !== false) return $url.'&'.$key.'='.$value; return $url.'?'.$key.'='.$value; } private function _postProcess() { Configuration::updateValue('GSITEMAP_ALL_CMS', (int)Tools::getValue('GSITEMAP_ALL_CMS')); Configuration::updateValue('GSITEMAP_ALL_PRODUCTS', (int)Tools::getValue('GSITEMAP_ALL_PRODUCTS')); if (Shop::isFeatureActive()) $res = $this->generateSitemapIndex(); else $res = $this->generateSitemap(Configuration::get('PS_SHOP_DEFAULT'), GSITEMAP_FILE); $this->_html .= ' '; $this->_html .= $res ? $this->l('Sitemap file generated.') : $this->l('Error while creating sitemap file.'); $this->_html .= ' '; } /** * Generate sitemap index to reference the sitemap of each shop * * @return bool */ public function generateSitemapIndex() { $xmlString = << XML; $xml = new SimpleXMLElement($xmlString); $sql = 'SELECT s.id_shop, su.domain, su.domain_ssl, CONCAT(su.physical_uri, su.virtual_uri) as uri FROM '._DB_PREFIX_.'shop s INNER JOIN '._DB_PREFIX_.'shop_url su ON s.id_shop = su.id_shop AND su.main = 1 WHERE s.active = 1 AND s.deleted = 0 AND su.active = 1'; if (!$result = Db::getInstance()->executeS($sql)) return false; $res = true; foreach ($result as $row) { $info = pathinfo(GSITEMAP_FILE); $filename = $info['filename'].'-'.$row['id_shop'].'.'.$info['extension']; $replaceUrl = array('http://'.$row['domain'].$row['uri'], ((Configuration::get('PS_SSL_ENABLED')) ? 'https://' : 'http://').$row['domain_ssl'].$row['uri']); $last = $this->generateSitemap($row['id_shop'], $info['dirname'].'/'.$filename, $replaceUrl); if ($last) { $this->_addSitemapIndexNode($xml, 'http://'.$row['domain'].(($row['uri']) ? $row['uri'] : '/').$filename, date('Y-m-d')); } $res &= $last; } $fp = fopen(GSITEMAP_FILE, 'w'); fwrite($fp, $xml->asXML()); fclose($fp); return $res && file_exists(GSITEMAP_FILE); } /** * Generate a sitemap for a shop * * @param int $id_shop * @param string $filename * @return bool */ private function generateSitemap($id_shop, $filename = '', $replace_url = array()) { $langs = Language::getLanguages(); $shop = new Shop($id_shop); if (!$shop->id) return false; $xmlString = << XML; $xml = new SimpleXMLElement($xmlString); if (Configuration::get('PS_REWRITING_SETTINGS') && count($langs) > 1) foreach($langs as $lang) { $this->_addSitemapNode($xml, Tools::getShopDomain(true, true).__PS_BASE_URI__.$lang['iso_code'].'/', '1.00', 'daily', date('Y-m-d')); } else $this->_addSitemapNode($xml, Tools::getShopDomain(true, true).__PS_BASE_URI__, '1.00', 'daily', date('Y-m-d')); /* Product Generator */ $sql = 'SELECT p.id_product, pl.link_rewrite, DATE_FORMAT(IF(ps.date_upd,ps.date_upd,ps.date_add), \'%Y-%m-%d\') date_upd, pl.id_lang, cl.`link_rewrite` category, ean13, i.id_image, il.legend legend_image, ( SELECT MIN(level_depth) FROM '._DB_PREFIX_.'product p2 '.Shop::addSqlAssociation('product', 'p2').' LEFT JOIN '._DB_PREFIX_.'category_product cp2 ON p2.id_product = cp2.id_product LEFT JOIN '._DB_PREFIX_.'category c2 ON cp2.id_category = c2.id_category WHERE p2.id_product = p.id_product AND product_shop.`active` = 1 AND c2.`active` = 1) AS level_depth FROM '._DB_PREFIX_.'product p LEFT JOIN '._DB_PREFIX_.'product_shop ps ON (ps.id_product = p.id_product AND ps.id_shop = '.(int)$id_shop.') LEFT JOIN '._DB_PREFIX_.'product_lang pl ON (p.id_product = pl.id_product) LEFT JOIN '._DB_PREFIX_.'category_lang cl ON (ps.id_category_default = cl.id_category AND pl.id_lang = cl.id_lang AND cl.id_shop = '.(int)$id_shop.') LEFT JOIN '._DB_PREFIX_.'image i ON p.id_product = i.id_product LEFT JOIN '._DB_PREFIX_.'image_lang il ON (i.id_image = il.id_image) LEFT JOIN '._DB_PREFIX_.'lang l ON (pl.id_lang = l.id_lang) WHERE l.`active` = 1 AND ps.`active` = 1 AND ps.id_shop = '.(int)$id_shop.' '.(Configuration::get('GSITEMAP_ALL_PRODUCTS') ? '' : 'HAVING level_depth IS NOT NULL').' ORDER BY pl.id_product, pl.id_lang ASC'; $resource = Db::getInstance(_PS_USE_SQL_SLAVE_)->query($sql); // array used to know which product/image was already added (blacklist) $done = null; $sitemap = null; // iterates on the products, to gather the image ids while ($product = Db::getInstance()->nextRow($resource)) { // if the product has not been added $id_product = $product['id_product']; if (!isset($done[$id_product][(int)($product['id_lang'])]['added'])) { // priority if (($priority = 0.7 - ($product['level_depth'] / 10)) < 0.1) $priority = 0.1; // adds the product $tmpLink = $this->context->link->getProductLink($product, $product['link_rewrite'], $product['category'], $product['ean13'], (int)($product['id_lang']), $id_shop, 0, true); $sitemap = $this->_addSitemapNode($xml, $tmpLink, $priority, 'weekly', substr($product['date_upd'], 0, 10)); // considers the product has added $done[$id_product][(int)($product['id_lang'])]['added'] = true; } // if the image has not been added $id_image = $product['id_image']; if (!isset($done[$id_product][$id_image]) && $id_image) { if (!isset($done[$id_product][$id_image]) && $id_image && $product['id_lang']==4) // adds the image $this->_addSitemapNodeImage($sitemap, $product); // considers the image as added $done[$id_product][$id_image] = true; } } /* Categories Generator */ if (Configuration::get('PS_REWRITING_SETTINGS')) $categories = Db::getInstance()->executeS(' SELECT c.id_category, c.level_depth, link_rewrite, DATE_FORMAT(IF(date_upd,date_upd,date_add), \'%Y-%m-%d\') AS date_upd, cl.id_lang FROM '._DB_PREFIX_.'category c LEFT JOIN '._DB_PREFIX_.'category_lang cl ON c.id_category = cl.id_category LEFT JOIN '._DB_PREFIX_.'lang l ON cl.id_lang = l.id_lang WHERE l.`active` = 1 AND c.`active` = 1 AND c.id_category != 1 ORDER BY cl.id_category, cl.id_lang ASC'); else $categories = Db::getInstance()->executeS( 'SELECT c.id_category, c.level_depth, DATE_FORMAT(IF(date_upd,date_upd,date_add), \'%Y-%m-%d\') AS date_upd FROM '._DB_PREFIX_.'category c ORDER BY c.id_category ASC'); foreach($categories as $category) { if (($priority = 0.9 - ($category['level_depth'] / 10)) < 0.1) $priority = 0.1; $tmpLink = Configuration::get('PS_REWRITING_SETTINGS') ? $this->context->link->getCategoryLink((int)$category['id_category'], $category['link_rewrite'], (int)$category['id_lang']) : $this->context->link->getCategoryLink((int)$category['id_category']); $this->_addSitemapNode($xml, htmlspecialchars($tmpLink), $priority, 'weekly', substr($category['date_upd'], 0, 10)); } /* CMS Generator */ if (Configuration::get('GSITEMAP_ALL_CMS') || !Module::isInstalled('blockcms')) $sql_cms = ' SELECT DISTINCT '.(Configuration::get('PS_REWRITING_SETTINGS') ? 'cl.id_cms, cl.link_rewrite, cl.id_lang' : 'cl.id_cms'). ' FROM '._DB_PREFIX_.'cms_lang cl LEFT JOIN '._DB_PREFIX_.'lang l ON (cl.id_lang = l.id_lang) WHERE l.`active` = 1 ORDER BY cl.id_cms, cl.id_lang ASC'; else if (Module::isInstalled('blockcms')) $sql_cms = ' SELECT DISTINCT '.(Configuration::get('PS_REWRITING_SETTINGS') ? 'cl.id_cms, cl.link_rewrite, cl.id_lang' : 'cl.id_cms'). ' FROM '._DB_PREFIX_.'cms_block_page b LEFT JOIN '._DB_PREFIX_.'cms_lang cl ON (b.id_cms = cl.id_cms) LEFT JOIN '._DB_PREFIX_.'lang l ON (cl.id_lang = l.id_lang) WHERE l.`active` = 1 ORDER BY cl.id_cms, cl.id_lang ASC'; $cmss = Db::getInstance(_PS_USE_SQL_SLAVE_)->executeS($sql_cms); foreach($cmss as $cms) { $tmpLink = Configuration::get('PS_REWRITING_SETTINGS') ? $this->context->link->getCMSLink((int)$cms['id_cms'], $cms['link_rewrite'], false, (int)$cms['id_lang']) : $this->context->link->getCMSLink((int)$cms['id_cms']); $this->_addSitemapNode($xml, $tmpLink, '0.8', 'daily'); } /* Add classic pages (contact, best sales, new products...) */ $pages = array( 'supplier' => false, 'manufacturer' => false, 'new-products' => false, 'prices-drop' => false, 'stores' => false, 'authentication' => true, 'best-sales' => false, 'contact-form' => true); // Don't show suppliers and manufacturers if they are disallowed if (!Module::getInstanceByName('blockmanufacturer')->id && !Configuration::get('PS_DISPLAY_SUPPLIERS')) unset($pages['manufacturer']); if (!Module::getInstanceByName('blocksupplier')->id && !Configuration::get('PS_DISPLAY_SUPPLIERS')) unset($pages['supplier']); // Generate nodes for pages if(Configuration::get('PS_REWRITING_SETTINGS')) foreach ($pages as $page => $ssl) foreach($langs as $lang) $this->_addSitemapNode($xml, $this->context->link->getPageLink($page, $ssl, $lang['id_lang']), '0.5', 'monthly'); else foreach($pages as $page => $ssl) $this->_addSitemapNode($xml, $this->context->link->getPageLink($page, $ssl), '0.5', 'monthly'); $xml_string = $xml->asXML(); // Replace URL in XML strings by real shops URL if ($replace_url) $xml_string = str_replace(array(Tools::getShopDomain(true).__PS_BASE_URI__, Tools::getShopDomainSsl(true).__PS_BASE_URI__), $replace_url, $xml_string); $fp = fopen($filename, 'w'); fwrite($fp, $xml_string); fclose($fp); return file_exists($filename); } private function _addSitemapIndexNode($xml, $loc, $last_mod) { $sitemap = $xml->addChild('sitemap'); $sitemap->addChild('loc', htmlspecialchars($loc)); $sitemap->addChild('lastmod', $last_mod); return $sitemap; } private function _addSitemapNode($xml, $loc, $priority, $change_freq, $last_mod = NULL) { $sitemap = $xml->addChild('url'); $sitemap->addChild('loc', htmlspecialchars($loc)); $sitemap->addChild('priority', number_format($priority,1,'.','')); if ($last_mod) $sitemap->addChild('lastmod', $last_mod); $sitemap->addChild('changefreq', $change_freq); return $sitemap; } private function _addSitemapNodeImage($xml, $product) { $image = $xml->addChild('image', null, 'http://www.google.com/schemas/sitemap-image/1.1'); $image->addChild('loc', htmlspecialchars($this->context->link->getImageLink($product['link_rewrite'], (int)$product['id_product'].'-'.(int)$product['id_image'])), 'http://www.google.com/schemas/sitemap-image/1.1'); $legend_image = preg_replace('/(&+)/i', '&', $product['legend_image']); $image->addChild('caption', $legend_image, 'http://www.google.com/schemas/sitemap-image/1.1'); $image->addChild('title', $legend_image, 'http://www.google.com/schemas/sitemap-image/1.1'); } private function _displaySitemap() { if (Shop::isFeatureActive()) { $sql = 'SELECT s.id_shop, su.domain, su.domain_ssl, CONCAT(su.physical_uri, su.virtual_uri) as uri FROM '._DB_PREFIX_.'shop s INNER JOIN '._DB_PREFIX_.'shop_url su ON s.id_shop = su.id_shop AND su.main = 1 WHERE s.active = 1 AND s.deleted = 0 AND su.active = 1'; if (!$result = Db::getInstance()->executeS($sql)) return ''; $this->_html .= ' '.$this->l('Sitemap index').' '; $this->_html .= ' '.$this->l('Your Google sitemap file is online at the following address:').' '.Tools::getShopDomain(true, true).__PS_BASE_URI__.'sitemap.xml '; $info = pathinfo(GSITEMAP_FILE); foreach ($result as $shop) { $filename = $info['dirname'].'/'.$info['filename'].'-'.$shop['id_shop'].'.'.$info['extension']; if (file_exists($filename) && filesize($filename)) { $fp = fopen($filename, 'r'); $fstat = fstat($fp); fclose($fp); $xml = simplexml_load_file($filename); $nbPages = count($xml->url); $sitemap_uri = 'http://'.$shop['domain'].$shop['uri'].$info['filename'].'-'.$shop['id_shop'].'.'.$info['extension']; $this->_html .= ' '.$this->l('Sitemap for: ').$shop['domain'].$shop['uri'].' '; $this->_html .= ' '.$this->l('Your Google sitemap file is online at the following address:').' '.$sitemap_uri.' '; $this->_html .= $this->l('Update:').' '.utf8_encode(strftime('%A %d %B %Y %H:%M:%S',$fstat['mtime'])).' '; $this->_html .= $this->l('Filesize:').' '.number_format(($fstat['size']*.000001), 3).'MB '; $this->_html .= $this->l('Indexed pages:').' '.$nbPages.' '; } } } elseif (file_exists(GSITEMAP_FILE) && filesize(GSITEMAP_FILE)) { $fp = fopen(GSITEMAP_FILE, 'r'); $fstat = fstat($fp); fclose($fp); $xml = simplexml_load_file(GSITEMAP_FILE); $nbPages = count($xml->url); $this->_html .= ' '.$this->l('Your Google sitemap file is online at the following address:').' '.Tools::getShopDomain(true, true).__PS_BASE_URI__.'sitemap.xml '; $this->_html .= $this->l('Update:').' '.utf8_encode(strftime('%A %d %B %Y %H:%M:%S',$fstat['mtime'])).' '; $this->_html .= $this->l('Filesize:').' '.number_format(($fstat['size']*.000001), 3).'MB '; $this->_html .= $this->l('Indexed pages:').' '.$nbPages.' '; } } private function _displayForm() { if (Tools::usingSecureMode()) $domain = Tools::getShopDomainSsl(true); else $domain = Tools::getShopDomain(true); $this->_html .= ' '.$this->l('Sitemap also includes products from inactive categories.').' '.$this->l('Sitemap also includes CMS pages not found in a CMS block.').' '.$this->l('Use cron job to re-build the sitemap:').' '.$domain.__PS_BASE_URI__.'modules/gsitemap/gsitemap-cron.php?&token='.substr(Tools::encrypt('gsitemap/cron'),0,10).'&GSITEMAP_ALL_CMS='.((int)Configuration::get('GSITEMAP_ALL_CMS')).'&GSITEMAP_ALL_PRODUCTS='.((int)Configuration::get('GSITEMAP_ALL_PRODUCTS')).' '; } public function getContent() { if (Tools::isSubmit('btnSubmit')) { $this->_postValidation(); if (!count($this->_postErrors)) $this->_postProcess(); else foreach ($this->_postErrors as $err) $this->_html .= ' '.$err.' '; } $this->_html .= ' '.$this->l('Search Engine Optimization (SEO).').' '.$this->l('See').' '.$this->l('This page').' '.$this->l('For more information').' '; $this->_displaySitemap(); $this->_displayForm(); $this->_html .= ' '; return $this->_html; } } Cordialement Link to comment Share on other sites More sharing options...
BreizhInWeb Posted March 30, 2013 Share Posted March 30, 2013 (edited) http://pastebin.com/PJERkSah Edited March 30, 2013 by BreizhInWeb (see edit history) Link to comment Share on other sites More sharing options...
axodav Posted March 31, 2013 Share Posted March 31, 2013 http://pastebin.com/PJERkSah Merci je vais pouvoir tester le fichier Link to comment Share on other sites More sharing options...
vrfshop Posted April 1, 2013 Share Posted April 1, 2013 Bonjour, Je poste ce message car depuis que je suis passé à la version 1.5.4 de prestashop je rencontre une erreur 500 lors de la génération du sitemap.xml. Mes autres sites sont en version 1.5.3.1 et là je n'ai pas ce problème. J'ai regardé et testé les différents script mis à notre dispo dans ce forum, mais rien à faire toujours une erreur 500 avec la création d'un sitemap vide (droit 644 et j'ai essayé avec 755 et 777 rien à faire). Si quelqu'un à la solution je suis preneur. Merci à vous tous. Link to comment Share on other sites More sharing options...
Gregory Roussac Posted April 5, 2013 Share Posted April 5, 2013 Hello, Merci pour la contrib. Une nouvelle version du module sitemap est dans le tube. La correction ligne 209 est normalement intégrée. @vrfshop regardez vos logs Apache, vous aurez plus d'infos je pense. Cordialement, 1 Link to comment Share on other sites More sharing options...
axodav Posted April 5, 2013 Share Posted April 5, 2013 (edited) Merci pour la correction, mais cher moi ça marche pas pour les produits. Liens du produit XXX/en/smoke-detector-kidde-smoke-detector-29-en-kidde-1.html Liens généré par le sitemap XXX/en/smoke-detector/1-kidde-smoke-detector-29-en-0047871072.html Je pense que mon problème vient que j’ai changé la config SEO (Route vers les produits : {category}-{rewrite}-{manufacturer}-{id}.html) Le lien fourni par le sitemap ajoute à la fin le code EAN13, met id au début du non du produit et ne sépare pas la catégorie, bref je pense que le sitemap ne tiens pas en compte les options SEO du back-office. Edited April 5, 2013 by axodav (see edit history) Link to comment Share on other sites More sharing options...
chounpyt Posted April 15, 2013 Share Posted April 15, 2013 Bonjour SOS : 1.5.3.1. : le module gsitemap plante lors de la 'génération sitemap', je n'ai pas non plus accés par le Ftp pour changer le fichier gsitemap.php par celui modifié (lignes 209,201,213) "access denied", pourtant le CHOM est 777. Merci de m'aider Link to comment Share on other sites More sharing options...
leozebulon Posted April 16, 2013 Share Posted April 16, 2013 Bonjour, Effectivement, la nouvelle version laisse toujours les EAN13 alors que cela n'est pas configuré avec les EAN13 dans la route du SEO. Une idée pour enlever cette EAN13 à la fin malgré que cela soit configuré pour n'afficher que l'id et le nom du produit directement ? Merci Link to comment Share on other sites More sharing options...
axodav Posted April 16, 2013 Share Posted April 16, 2013 (edited) Attention le sitemap ne prend en compte la config SEO Edited April 17, 2013 by axodav (see edit history) Link to comment Share on other sites More sharing options...
Gregory Roussac Posted April 16, 2013 Share Posted April 16, 2013 Hello, Une passe de correction sur ce module est en cours. Encore un peu de patience La liste des tracks sur la forge PNM-1276 -> index_sitemap.xml not generated PNM-1237 -> gsitmap 2.0 don't follow ceo and url settings PNM-960 -> gsitemap takes the default urls, not mine (possible problem in Dispacher.php) PNM-944 -> sitemap bug and url rewriting PNM-740 -> Wrong url for images in module gsitemap multistore PNM-589 -> gsitemap problem : Fatal error : allowed memory size of 73400320 bytes exhausted (tried to allocate 512 bytes) Cordialement Link to comment Share on other sites More sharing options...
leozebulon Posted April 22, 2013 Share Posted April 22, 2013 Bonjour, Le sitemap est il enfin fonctionnel avec les bugs signalés corrigés (notamment le problème de réécriture url) ? En vous en remerciant, Cordialement. Link to comment Share on other sites More sharing options...
axodav Posted April 22, 2013 Share Posted April 22, 2013 On le récupère ou? Link to comment Share on other sites More sharing options...
ENCRECOM Posted April 23, 2013 Share Posted April 23, 2013 Comment récuperer le nouveau sitemap corrigé ? Ou faut-il passer à la version precedente ? Link to comment Share on other sites More sharing options...
Fredericparis Posted April 23, 2013 Share Posted April 23, 2013 Oui, c'est vrai ça... On le récupère où? Et finalement, peut-on utiliser ce sitemap sur une version Presta 1.4.6 ? Link to comment Share on other sites More sharing options...
axodav Posted April 23, 2013 Share Posted April 23, 2013 (edited) Je vient de tester la dernier version qui est disponible sur Github (voir pièce jointe). Url rewriting marche sauf que j'ai toujour EAN13 a la fin du lien et le module ne tien pas en compte des configurations personnalisé SEO. exemple: {category:/}{rewrite}-{manufacturer}-{id}.html XXX/fr/detecteur-de-fumee/1-detecteur-de-fumee-29-fr-0047871072.html au lieu de XXX/fr/detecteur-de-fumee/detecteur-de-fumee-29-fr-kidde-1.html gsitemap.zip Edited April 23, 2013 by axodav (see edit history) Link to comment Share on other sites More sharing options...
Hokatsu Posted April 25, 2013 Share Posted April 25, 2013 Bonjour, Depuis la mise à jours de ma boutique (1.5.2) j'ai 2 problèmes avec le module gsitemap, en version 1.9 il il n'y a pas les url rewriting dans le sitemap que les url classique et en version 2.1 la génération du sitemap tourne en boucle et lorsqu'elle arrive à sortir quelques choses il me crée plusieurs fichiers sitemap identique mais ne contenant pas toutes les urls du site. quelqu'un a les même problème ou une solution pour moi ? Link to comment Share on other sites More sharing options...
altahir007 Posted April 28, 2013 Share Posted April 28, 2013 Hello, Une passe de correction sur ce module est en cours. Encore un peu de patience La liste des tracks sur la forge PNM-1276 -> index_sitemap.xml not generated PNM-1237 -> gsitmap 2.0 don't follow ceo and url settings PNM-960 -> gsitemap takes the default urls, not mine (possible problem in Dispacher.php) PNM-944 -> sitemap bug and url rewriting PNM-740 -> Wrong url for images in module gsitemap multistore PNM-589 -> gsitemap problem : Fatal error : allowed memory size of 73400320 bytes exhausted (tried to allocate 512 bytes) Cordialement Je pense qu'il faut encore patienter ... voilà tout, j'ai les même soucis en prestashop 1.5.4.0 avec gsitemap 1.9 et 2.1 pas moyen d'avoir un sitemap.xml correct. Je vous conseil d'aller générer un fichier depuis un site exterieur et de l'utiliser en attendant (même en multiboutique) Link to comment Share on other sites More sharing options...
axodav Posted April 28, 2013 Share Posted April 28, 2013 Et la 1.5.4.1 sa donne quoi comme résultat? Link to comment Share on other sites More sharing options...
altahir007 Posted April 28, 2013 Share Posted April 28, 2013 Je n'ai pas testé l'upgrade de peur de me retrouver avec une boutique avec plus de bug j'attend surtout une mise à jour du module gsitemap 2.2 Salutation Link to comment Share on other sites More sharing options...
altahir007 Posted May 1, 2013 Share Posted May 1, 2013 rien de neuf ? Link to comment Share on other sites More sharing options...
Fredericparis Posted May 1, 2013 Share Posted May 1, 2013 Non il faut attendre encore un peu, il n'ont pas fini apparemment. TEST UN PEU FOU : (attention à ne pas envoyer tout de suite le sitemap à google si vous ne l'avez pas validé avant, ou désactiver la tâche CRON d'envoi si vous l'avez activée) DONC : Je me suis amusé à faire un petit test sur le site d'un ami : il est en Prestashop 1.5.4, j'ai désactivé le module sitemap, remplacé par un module venant de la version 1.4.8.2, relancé le tout, modifié très légèrement les URL de redirection... Etonnement ça marche, le fichier sitemap est correct. Pour valider votre sitemap "façon google", n'hésitez pas à aller dans votre console de gestion Goggle webmaster, séclectionner votre sitemap puis "tester le sitemap". Vous verrez si votre sitemap est bien utilisable par Google Link to comment Share on other sites More sharing options...
Squadra Unica Posted May 1, 2013 Share Posted May 1, 2013 Avec la mise à jour 1.5.4.1 le sitemap crée un index sitemap et tous les autres sitemap dans les langues du site. Envoyé chez google et les liens sont accéptés. Par contre 3 images acceptées pour le moment. Link to comment Share on other sites More sharing options...
Fredericparis Posted May 1, 2013 Share Posted May 1, 2013 3 images ? Si 3 images passent, et qu'elles ont la même adresse de lien de base, alors elles doivent toutes passer. Attention que Google est parfois fort lent pour indexer. La période normale est d'environ 7 jours. Il faudrait re-vérifier d'ici 2/3 jour. Les images apparaissent-elles toutes dans votre fichier sitemap.xml ? Si oui alors c'est bon. Sinon - si vous avez plus de 50000 lignes dans votre sitemap - (et ça va très vite avec des sites importants multilingues) c'est peut-être que votre fichier arrive tronqué chez Goggle, mais ça m'étonnerait. Link to comment Share on other sites More sharing options...
altahir007 Posted May 1, 2013 Share Posted May 1, 2013 Oui pourquoi 3 images ? Merci pour les news, je ne vais pas passer en 1.5.4.1 je préfère attendre une release correcte et en attendant, je me tape un sitemap maison généré depuis un site, et je retouche le XML pour ne pas me retrouver avec de la bouze en ligne lol Merci Frederic, tu sembles au courant des évolutions, tiens moi au jus stp j'ai hate de corriger ça ! Salutation et bonne soirée Link to comment Share on other sites More sharing options...
Fredericparis Posted May 1, 2013 Share Posted May 1, 2013 Je suis pas plus au courant que ça, mais je suis à la loupe les infos de développement Prestashop, et c'est pas prêt encore, mais presque. Normalement, aucun besoin de retoucher un sitemap, c'est mauvais signe. En général -sauf dans le cas de la 5.1 - c'est que le problème ne vient pas du module, mais bien du site lui-même : mauvaises redirections, URL rewriting mal écrit dans le .htacess, des dossiers qui ne sont pas en autorisation 777, trop de lignes dans le sitemap, balises Meta tittle am écrites ou avec caractères interdits, la belle mère qui vous a jeté un sort.... Link to comment Share on other sites More sharing options...
altahir007 Posted May 1, 2013 Share Posted May 1, 2013 Pfff bon je patiente, prestashop c'est une première experience pour moi, je suis un peu emmerdé avec ces divers soucis ... Merci pour les news (tu les retrouves ou ces infos d'actus developpeur ?) Link to comment Share on other sites More sharing options...
Fredericparis Posted May 1, 2013 Share Posted May 1, 2013 Par ici les newsletter (bug tracker) : http://forge.prestashop.com/secure/Dashboard.jspa Link to comment Share on other sites More sharing options...
altahir007 Posted May 1, 2013 Share Posted May 1, 2013 Merci m'sieur ! Link to comment Share on other sites More sharing options...
jd440 Posted May 7, 2013 Share Posted May 7, 2013 (edited) Bonjour à tous. Je viens de lire tous les post du fil et je n'ai pas trouvé la soluce. Je suis sous 1.5.4.1 avec gsitemap:2.1 et en multiboutique. J'essaye de génére mes sitemaps, mais ca bug completement. Le module se prenant totalement les pieds avec les multiboutique: Je lance la génération depuis: http://www.example9.tld/admin/ Veuillez configurer l'URL de sitemap suivante dans votre interface Google Webmaster : http://www.example9.tld/index_sitemap.xml Cette URL correspond au fichier sitemap maître et fait référence à : fr_0_sitemap.xml et le sitemap contient: <?xml version="1.0" encoding="UTF-8"?> <sitemapindex xmlns="http://www.sitemaps.org/schemas/sitemap/0.9" xmlns:image="http://www.google.com/schemas/sitemap-image/1.1"> <sitemap> <loc> http://www.example9.tld/fr_0_sitemap.xml </loc> <lastmod> 2013-05-07T16:03:55+02:00 </lastmod> </sitemap> </sitemapindex> Permier soucis: http://www.example1.tld/index_sitemap.xml http://www.example2.tld/index_sitemap.xml http://www.example3.tld/index_sitemap.xml http://www.example9.tld/index_sitemap.xml sont identique: du coup il renvoie tous vers: http://www.example9.tld/fr_0_sitemap.xml Ensuite ce fichier contient par exemple: Il propose des produits d'une boutique mais avec l'url d'une autre boutique? http://www.bouique9.tld/produit de_la_boutique1.xml [...] http://www.bouique9.tld/produit de_la_boutique2.xml [...] http://www.bouique9.tld/produit de_la_boutique3.xml [..] Edited May 8, 2013 by jd440 (see edit history) Link to comment Share on other sites More sharing options...
Bruno Leveque Posted May 24, 2013 Share Posted May 24, 2013 Bonjour à tous, Bonne nouvelle, nous avons bien avancé cette semaine sur ce module ! Au programme : - Correction des bugs mentionnés par Gregory - Correction d'autres bugs qui n'avaient pas été décelés auparavant - Correction de fonctions coeurs qui posaient problème pour le bon fonctionnement du module - Ajout du support du multi-boutiques Pour avoir un module parfaitement fonctionnel, il faudra upgrader en dernière version 1.5.x ou reprendre les corrections coeur de la classe Tools.php. Nous allons faire plusieurs tests dans les jours qui viennent avant de publier cette nouvelle version sur Github. Est-ce que certains d'entre vous sont intéressés par le recevoir en amont afin de jouer les beta-testeurs ? Bon week-end! 1 Link to comment Share on other sites More sharing options...
jd440 Posted May 24, 2013 Share Posted May 24, 2013 Ok je veux bien testé me si depuis j'ai crée mon propre module. étant en 1.5.4.1 ai- je d'autre correctif à apporter à la classe tools? Link to comment Share on other sites More sharing options...
jd440 Posted May 24, 2013 Share Posted May 24, 2013 je viens de mettre le module à jour. Généré le sitemap: Resultat: Grosse gamelade. http://www.domaine1.com/index_sitemap.xml http://www.domaine2.com/index_sitemap.xml http://www.domaine3.com/index_sitemap.xml Sont tous identique <sitemapindex><sitemap><loc>http://www.domaine1.com/fr_0_sitemap.xml</loc><lastmod>2013-05-24T18:30:37+02:00</lastmod></sitemap></sitemapindex> et les fichier http://www.domaine1.com/fr_0_sitemap.xml http://www.domaine2.com/fr_0_sitemap.xml http://www.domaine3.com/fr_0_sitemap.xml Ces sitemap qui sont tous identique contiennet tous des fichier vers tous les domaines. Et les url sont totalement mélangé. exemple http://www.domaine2.com/5-ipod-touch.html se retrouve dans le sitemap à l'adresse: http://www.domaine1.com/5-ipod-touch.html P.S:ATTENTION car gsitemap envoie un ping à google avec un sitemap incorrect. Heureusement je l'avait désactivé avant. Link to comment Share on other sites More sharing options...
Bruno Leveque Posted May 24, 2013 Share Posted May 24, 2013 Visiblement tu as mal lu :-) La version que tu as testé n'est pas multi-boutiques, le fonctionnement est donc celui attendu. Nous allons faire plusieurs tests dans les jours qui viennent avant de publier cette nouvelle version sur Github. 1 Link to comment Share on other sites More sharing options...
jd440 Posted May 24, 2013 Share Posted May 24, 2013 Oups autant pour moi, ca partait d'un bon sentiment. Dans tout les cas si vous avez besoin d'un testeur. Link to comment Share on other sites More sharing options...
axodav Posted May 24, 2013 Share Posted May 24, 2013 (edited) Bonjour à tous, Bonne nouvelle, nous avons bien avancé cette semaine sur ce module ! Au programme : - Correction des bugs mentionnés par Gregory - Correction d'autres bugs qui n'avaient pas été décelés auparavant - Correction de fonctions coeurs qui posaient problème pour le bon fonctionnement du module - Ajout du support du multi-boutiques Pour avoir un module parfaitement fonctionnel, il faudra upgrader en dernière version 1.5.x ou reprendre les corrections coeur de la classe Tools.php. Nous allons faire plusieurs tests dans les jours qui viennent avant de publier cette nouvelle version sur Github. Est-ce que certains d'entre vous sont intéressés par le recevoir en amont afin de jouer les beta-testeurs ? Bon week-end! Je veut bien tester La correction prend t'elle en compte la config SEO pour url rewriting que j'ai évoqué plus haut dans le topic? Lien original XXX/en/smoke-detector-kidde-smoke-detector-29-en-kidde-1.html Liens généré par le sitemap XXX/en/smoke-detector/1-kidde-smoke-detector-29-en-0047871072.html Je pense que mon problème vient que j’ai changé la config SEO (Route vers les produits : {category}-{rewrite}-{manufacturer}-{id}.html) Le lien fourni par le sitemap ajoute à la fin le code EAN13, met id au début du non du produit et ne sépare pas la catégorie, bref je pense que le sitemap ne tiens pas en compte les options SEO du back-office. Sur la version 2.1.1 du module le bug est toujours présent. Edited May 25, 2013 by axodav (see edit history) Link to comment Share on other sites More sharing options...
papich Posted June 3, 2013 Share Posted June 3, 2013 Bonjour, Sympa la mise à jour mais encore quelques améliorations à faire: * Comment gérer le sitemap en multiboutique et multilangue? * J'ai du texte de présentation, mes produits sont donc caché et pourtant mes pages produits (réservé aux groupes de client) sont référencé... je n'ai que l'anglais d'installer et le module me donne comme lien http://monsite.co.uk/en_0_sitemap.xml et quand je copie ce lien et ca m'emmene vers le bon sitemap... Il faudrait donc peut etre rajouter plus d'options dans la configuration du sitemap: Par catégories, groupe client, images, contenu destiné au public distingué de celui pour le client... Merci Link to comment Share on other sites More sharing options...
boostervente Posted June 17, 2013 Share Posted June 17, 2013 Bonjour, Pour la page blanche, il faut vérifier que la racine du site a les droits en écritures suffisants. Patrice Link to comment Share on other sites More sharing options...
NicoVibrato Posted June 19, 2013 Share Posted June 19, 2013 Bonjour, Quelqu'un a des News pour le google sitemap en multiboutique ? Link to comment Share on other sites More sharing options...
WebDesign-Entreprise Posted June 28, 2013 Share Posted June 28, 2013 Salut à tous, Je viens de voir un nouveau souci dans ce module. Les paramètres SEO@URLs ne sont pas pris en compte. Par exemple sur mes liens CMS j'ai remplacé /content par /page mais dans le sitemap il y a toujours /content. Quelqu'un a t-il une solution? Merci. Olivier. Link to comment Share on other sites More sharing options...
Maher Shop Posted July 2, 2013 Share Posted July 2, 2013 Bonjour , je viens de mettre à jour gsitmap , et du coup j ai tout perdu , QUAND je fais la génération du sitmap , j ai ce message : Vos fichiers sitemap ont été créés avec succès. N'oubliez pas de configurer l'URL http://maher-shop.com/1_index_sitemap.xmldans votre interface Google Webmaster. quand on donne à google ce lien http://maher-shop.com/1_index_sitemap.xml Erreurs Sitemap vide Votre sitemap ne contient pas d'URL. Vérifiez et renvoyez votre sitemap. Link to comment Share on other sites More sharing options...
webcdj Posted July 3, 2013 Share Posted July 3, 2013 Bonjour Je viens de faire la MAJ de gsitemap sur ma boutique http://www.comptoirdesjardins.fr/ en version 1.5.3.1 mais aprés lecture de vos avis j'hésite à régénérer le sitemap. Est ce que vous pouvez m'aider à configurer ce module: Fréquence ? Cocher ou non la case Check this box if you wish to check the presence of the image files on the server ? Pages à exclure du site map? Merci infiniment pour votre aide. Link to comment Share on other sites More sharing options...
boostervente Posted July 3, 2013 Share Posted July 3, 2013 (edited) Bonjour, Je viens de tester sur un site d'un client http://www.hydroponie-facile.fr avec la dernière version du module en version 2.2.3. Je suis en Prestashop 1.5.4.1. Le fichier sitemamp semble être bien généré. Voir http://www.hydroponi...r_0_sitemap.xml Par contre je note seux points : 1/ Le nom du fichier indiqué dans le Back-office n'est pas le bon : 1_index_sitemap.xml au lieu de 1_fr_0_sitemap.xml. A noter que je n'ai qu'une seul langue. Pas bien important, à condition de bien fournir le bon fichier à Google Webmaster. 2/ Quand je fourni le fichier à Google Webmaster, ce dernier me donne une erreur de format xml (Balise XML manquante, Balise parent url, balise loc). Hors toutes les balises <loc> sont bien présentes. J'ai comparé le fichier avec ceux d'autres clients, et je ne vois rien de particulier qui explique ce rejet. Bien cordialement Patrice Edited July 3, 2013 by boostervente (see edit history) Link to comment Share on other sites More sharing options...
Szed Posted July 5, 2013 Share Posted July 5, 2013 1/ Le nom du fichier indiqué dans le Back-office n'est pas le bon : 1_index_sitemap.xml au lieu de 1_fr_0_sitemap.xml. A noter que je n'ai qu'une seul langue. Pas bien important, à condition de bien fournir le bon fichier à Google Webmaster. 2/ Quand je fourni le fichier à Google Webmaster, ce dernier me donne une erreur de format xml (Balise XML manquante, Balise parent url, balise loc). Hors toutes les balises <loc> sont bien présentes. J'ai comparé le fichier avec ceux d'autres clients, et je ne vois rien de particulier qui explique ce rejet. Même souci ! Concernant l'erreur 1, en base de donnée, votre table gsitemap ne doit pas avoir la colonne shop. C'était mon cas. Je l'ai rajouté, et ce problème d'URL de sitemap incorrect a disparu. Concernant l'erreur 2, j'ai exactement la même (cf mon post http://www.prestashop.com/forums/topic/259407-google-sitemap-1541-plusieurs-erreurs-balise-xml-introuvable/ ). Apres test, il s'avère que les erreurs ne concernent que les entrée images du XML... ...pas de réponse pour le moment :/ Seb Link to comment Share on other sites More sharing options...
boostervente Posted July 5, 2013 Share Posted July 5, 2013 Bonjour, @szed Merci pour votre retour. Je vais vérifier si cela concerne que les images. Si c'est le cas, c'est moins grave. Je reviens une fois vérifié ces éléments. Cordialement Patrice Link to comment Share on other sites More sharing options...
boostervente Posted July 5, 2013 Share Posted July 5, 2013 Bonjour, Effectivement cela vient bien des images. Voici un lien où il est indiqué la structure d'un fichier sitemap d'image https://support.goog...er/178636?hl=fr on note que les balises <image:image> sont incluses dans la balise <url> mais avec une balise <loc> Dans le fichier généré par le sitemap 2.2.3, une balise <url> a été créée pour les images sans l'url du produit dans la balise <loc> Voir ci-dessous une partie de code <url> <loc>http://www.hydroponie-facile.fr/plan-du-site</loc> <priority>0.4</priority> <lastmod>2013-07-03T15:39:51+02:00</lastmod> <changefreq>weekly</changefreq> </url> <url> <image:image> <image:loc> http://hydroponie-facile.fr/182/250w-mh-agrolite-croissance-24-000-lumens.jpg </image:loc> <image:caption> 250W MH Agrolite - Croissance - 24 000 Lumens agrolite </image:caption> <image:title>250W MH Agrolite - Croissance - 24 000 Lumens</image:title> </image:image> </url> J'espère que cela peut être résolu prochainement par l'équipe Prestashop. Cordlalement Patrice Link to comment Share on other sites More sharing options...
asg Posted July 5, 2013 Share Posted July 5, 2013 Et on ne peut pas bricoler quelque chose en attendant contre ces erreurs ? Sont-elles critiques pour Google ? Est-ce qu'ils explore quand même le site ? Link to comment Share on other sites More sharing options...
boostervente Posted July 5, 2013 Share Posted July 5, 2013 Bonjour, Je vais regarder avec les développeurs avec lesquels je travaille pour voir s'ils peuvent me faire quelque chose. Patrice Link to comment Share on other sites More sharing options...
fmservices Posted July 5, 2013 Share Posted July 5, 2013 bonjour je viens de faire la mise à jour du module en version 2.2.3et prestashop 1.5.4.1 et voila le message obtenu à la création du site map : "An error occured while trying to check your file permissions. Please adjust your permissions to allow PrestaShop to write a file in your root directory." Le version précédente fonctionnait correctement. Merci Link to comment Share on other sites More sharing options...
boostervente Posted July 5, 2013 Share Posted July 5, 2013 Bonjour, @fmservices Mettre les droits suffisants pour que le fichier sitemap puisse se créé. Patrice Link to comment Share on other sites More sharing options...
kevin78 Posted July 6, 2013 Share Posted July 6, 2013 Mon sitemap avec le dernier PS et le dernier module fonctionne mais génère le message "balise XML manquante" sur le Webmaster Tools. Avez vous une solution ? C'est bizarre, car le sitemap a l'air d'être correct Link to comment Share on other sites More sharing options...
boostervente Posted July 6, 2013 Share Posted July 6, 2013 Bonjour, @kevin78 Le pb a été identifié dans le post;, comme provenant des images. Je viens de repasser sur le module en version 1.9 qui fonctionnait correctement sur un autre site d'un client. J'ai juste changé une ligne pour ajouter 'http://' pour l'url de l'image. C'est du bricolage mais cela me permet d'avoir un sitemap opérationnel en attendant une correction du module officiel. Patrice Link to comment Share on other sites More sharing options...
kevin78 Posted July 6, 2013 Share Posted July 6, 2013 Merci Excuse moi mais peut être pourrais m'envoyer le fichier ou me dire les modifications à réaliser ou un lien pour le télécharger stp ? Link to comment Share on other sites More sharing options...
boostervente Posted July 6, 2013 Share Posted July 6, 2013 Voici le fichier de la version gsitemap en version 1.9 avec une modification pour l'url de l'image. Patrice gsitemap_v1.9_modifie.zip Link to comment Share on other sites More sharing options...
kevin78 Posted July 6, 2013 Share Posted July 6, 2013 (edited) Merci malheureusement, il ne fonctionne pas Warning: SimpleXMLElement::addChild(): unterminated entity reference controller=product in /var/www/clients/client0/web12/web/modules/gsitemap/gsitemap.php on line 230 Je vais essayer de retrouver un lien de l'ancien prestashop c'était sur quelle version ? Edit : j'ai retrouvé le 1.8 mais il ne fonctionne pas (version 1.4.8) Edited July 6, 2013 by kevin78 (see edit history) Link to comment Share on other sites More sharing options...
boostervente Posted July 6, 2013 Share Posted July 6, 2013 (edited) @Kevin78 Mon client était en 1.4.9. Le second sur lequel je l'ai mis est une 1.5.4.1. En quelle version êtes vous ? Si en 1.5x, est-ce en multi-boutiques ? Patrice Edited July 6, 2013 by boostervente (see edit history) Link to comment Share on other sites More sharing options...
asg Posted July 8, 2013 Share Posted July 8, 2013 Voici le fichier de la version gsitemap en version 1.9 avec une modification pour l'url de l'image. Patrice Je viens d'essayer cette version du module avec la dernière version de prestashop. Après avoir régénéré le sitemap, je l'ai soumis à Google qui a trouvé de nombreuses erreurs également. C'est sans fin ! Link to comment Share on other sites More sharing options...
boostervente Posted July 8, 2013 Share Posted July 8, 2013 Bonjour, Sans garantie, voici une mise à jour du fichier gsitemap.php de gsitemap en version 2.2.3, à n'utiliser qu'en attendant une mise à jour de la version natuve de Prestashop. Patrice gsitemap.php Link to comment Share on other sites More sharing options...
l-goodwin Posted July 8, 2013 Share Posted July 8, 2013 (edited) Hello Patrice, I've just tried the php file and the gsitemap module gives a 500 timeout error...I've just tried it again and it worked! Submitted to google and indexed 2900 pages Edited July 8, 2013 by l-goodwin (see edit history) Link to comment Share on other sites More sharing options...
boostervente Posted July 8, 2013 Share Posted July 8, 2013 Bonjour, @I-goodwin Combien avez-vous de produits ? Quelle est l'url de votre site ? Patrice 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