chantane Posted August 18, 2011 Share Posted August 18, 2011 Bonjour, Il y a une erreur dans la génération du fichier sitemap pour PS 1.4.3 et 1.4.4 Les lignes produit sont duppliquées modules/gsitemap/gsitemap.php modification du code de la requête : /*MODIFIE requete SELECT ajout : AND pl.`id_lang` = il.id_lang LEFT JOIN '._DB_PREFIX_.'image_lang il ON (i.id_image = il.id_image AND pl.`id_lang` = il.id_lang) */ $products = Db::getInstance(_PS_USE_SQL_SLAVE_)->ExecuteS(' SELECT p.id_product, pl.link_rewrite, DATE_FORMAT(IF(date_upd,date_upd,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 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 p2.`active` = 1 AND c2.`active` = 1) AS level_depth FROM '._DB_PREFIX_.'product p LEFT JOIN '._DB_PREFIX_.'product_lang pl ON (p.id_product = pl.id_product) LEFT JOIN `'._DB_PREFIX_.'category_lang` cl ON (p.`id_category_default` = cl.`id_category` AND pl.`id_lang` = cl.`id_lang`) 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 AND pl.`id_lang` = il.id_lang) LEFT JOIN '._DB_PREFIX_.'lang l ON (pl.id_lang = l.id_lang) WHERE l.`active` = 1 AND p.`active` = 1 '.(Configuration::get('GSITEMAP_ALL_PRODUCTS') ? '' : 'HAVING level_depth IS NOT NULL').' ORDER BY pl.id_product, pl.id_lang ASC'); Link to comment Share on other sites More sharing options...
chantane Posted August 22, 2011 Author Share Posted August 22, 2011 Les urls des produits sont dupliquées pour chaque image. le sitemap contient : exemple du produit 10 avec deux images : <url> <loc>http://monsite.fr/fr/ma-categorie/10-article</loc> <priority>0.5</priority> <lastmod>2011-07-18</lastmod> <changefreq>weekly</changefreq> <image:image> <image:loc>http://monsite.fr/10-124/article1.jpg</image:loc> <image:caption>Housse de couette hiver</image:caption> <image:title>Housse de couette hiver</image:title> </image:image> </url> <url> <loc>http://monsite.fr/fr/ma-categorie/10-article</loc> <priority>0.5</priority> <lastmod>2011-07-18</lastmod> <changefreq>weekly</changefreq> <image:image> <image:loc>http://monsite.fr/10-123/article2.jpg</image:loc> <image:caption>Housse de couette hiver</image:caption> <image:title>Housse de couette hiver</image:title> </image:image> </url> Ne devrait-il pas plutôt contenir : <url> <loc>http://monsite.fr/fr/ma-categorie/10-article</loc> <priority>0.5</priority> <lastmod>2011-07-18</lastmod> <changefreq>weekly</changefreq> <image:image> <image:loc>http://monsite.fr/10-124/article1.jpg</image:loc> <image:caption>Housse de couette hiver</image:caption> <image:title>Housse de couette hiver</image:title> </image:image> <image:image> <image:loc>http://monsite.fr/10-123/article2.jpg</image:loc> <image:caption>Housse de couette hiver</image:caption> <image:title>Housse de couette hiver</image:title> </image:image> </url> En outre la classe link est instanciée dans la boucle produit, dans _addSitemapNodeImage, des petites choses qui font augmenter les temps de traitement. Les fonctions de la classe link devraient être statiques. Il n'y a pas vraiment de raison pour passer par des instances, lors de leur utilisation. L'attribut de cette classe est "allow" ( autorise url rewriting ), qui est une variable de configuration, qui pourrait être une constante ! 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