Jump to content

MODULE GOOGLE SITEMAP


jcmht

Recommended Posts

Bonjour,

en prenant en compte une modif que la team à fait ds gsitemap.php concernant le non-affiche du id_lang = ... dans le sitemap, j'ai modifier très légèrement en rajoutant une "requête" et qq petites conditions, rien d'énorme mais çà fonctionne super bien pour moi .

alors, dans gsitemap.php j'ai rajouter ce qui est entre les lignes de commantaires

   private function _postProcess()
   {
       $id_default_lang = intval(Configuration::get('PS_LANG_DEFAULT')); // rajouter pour pouvoir éviter le id_lang si y en a qu'une !!
       $link = new Link();
       $fp = fopen($this->_filename, 'w');

/******************************************************************************************************************************************/    
       $more_lang = Language::loadLanguages(); 
/******************************************************************************************************************************************/        



Ensuite j'ai modifier tous les " loc "comme ceci :

POUR CMS :

       /*****************************************************************************************************************************************/
       foreach($cmss AS $cms)
         {
           $sitemap = $xml->addChild('url');
                 if ($more_lang >=2 AND ($more_lang != $id_default_lang))
               $sitemap->addChild('loc', htmlspecialchars($this->getUrlWith($link->getCMSLink($cms['id_cms'], $cms['link_rewrite']), 'id_lang', intval($cms['id_lang']))));
               else
                $sitemap->addChild('loc', htmlspecialchars($this->getUrlWith($link->getCMSLink($cms['id_cms'], $cms['link_rewrite']), 'id_lang', (intval($cms['id_lang']) != $id_default_lang ? intval($cms['id_lang']) : ''))));
           $sitemap->addChild('priority', '0.9');
           $sitemap->addChild('changefreq', 'monthly');
       }
       /*****************************************************************************************************************************************/



POUR CATEGORIES :

        /*****************************************************************************************************************************************/
       foreach($categories as $category)
       {
           if (($priority = 0.9 - ($category['level_depth'] / 10)) < 0.1)
               $priority = 0.1;
           $sitemap = $xml->addChild('url');
                 if ($more_lang >=2 AND ($more_lang != $id_default_lang))
               $sitemap->addChild('loc', htmlspecialchars($this->getUrlWith($link->getCategoryLink($category['id_category'], $category['link_rewrite']), 'id_lang', intval($category['id_lang']))));
               else
               $sitemap->addChild('loc', htmlspecialchars($this->getUrlWith($link->getCategoryLink($category['id_category'], $category['link_rewrite']), 'id_lang', (intval($category['id_lang']) != $id_default_lang ? intval($category['id_lang']) : ''))));
           $sitemap->addChild('priority', $priority);
           $sitemap->addChild('lastmod', $category['date_upd']);
           $sitemap->addChild('changefreq', 'daily');
         }
       /*****************************************************************************************************************************************/



POUR LES PRODUITS:

        /*****************************************************************************************************************************************/
       foreach($products as $product)
       {
           if (($priority = 0.7 - ($product['level_depth'] / 10)) < 0.1)
               $priority = 0.1;
           $sitemap = $xml->addChild('url');
               if ($more_lang >=2 AND ($more_lang != $id_default_lang))
               $sitemap->addChild('loc', htmlspecialchars($this->getUrlWith($link->getProductLink($product['id_product'], $product['link_rewrite'], $product['category'], $product['ean13']), 'id_lang', intval($product['id_lang']))));
               else
               $sitemap->addChild('loc', htmlspecialchars($this->getUrlWith($link->getProductLink($product['id_product'], $product['link_rewrite'], $product['category'], $product['ean13']), 'id_lang', (intval($product['id_lang']) != $id_default_lang ? intval($product['id_lang']) : ''))));
           $sitemap->addChild('priority', $priority);
           $sitemap->addChild('lastmod', $product['date_upd']);
           $sitemap->addChild('changefreq', 'daily');
       }
       /*****************************************************************************************************************************************/



voilà donc en fait comme vous vous en doutez çà fonctionne comme çà :

si une seule langue est activé dans le BO, on aura aucun : "?id_lang=3" (par exemple le 3)

Si au moin deux langues sont activées, on aura ds le sitemap le " ?id_lang=3" (ou 5 ou 15 , etc...) pour toutes les langues (sauf celle par défault)

Voilà, petite participation ...;-)

Link to comment
Share on other sites

il te suffit de les commenter ou bien de les supprimer, je pense que la 1.2 stable devrait pas tarder alors commente les comme çà tu n'auras plus qu'à décom... quand tu auras fais ta mise à jour.

Link to comment
Share on other sites

quand tu le transfert sur ton serveur, essayes simplement de générer ton sitemap et vérifie le, ensuite si t'as pas d'erreurs, vas simplement dans le BO > Outils > Langues , et rajoute (ou active n'importe quelle langue), retourne ds la module sitemap, et regenère ton sitemap, tu devrait avoir tes URL normales (sans le id_lang à la fin pour ta langue par défault) et + le id_lang pour les autres URL disponibles dans d'autres langues

Si çà fonctionne pour toi sur ta V1.1, fait le savoir pour les autres ;-)

Link to comment
Share on other sites

bonjour,
Mon site est en francais et je traduis petit a petit en anglais itoo.
J'ai la V1.1 et j'ai essayer le gsitemap.php ci dessus
Google me mets une croix rouge...alors que le xml est bien accessible.
vous avez une idée du pourquoi?

Merci.

Link to comment
Share on other sites

bonjour Filo,

je ne sais pas quel sitemap tu as aujourd'hui, mais il est corrompu, ton domaine n'apparait pas dans le sitemap ( le "http://www.aureart.com/......")

Normal que google t'affiche une croix.

récupère le gsitemap.php de mon post #6, et transfert le sur ton serveur. Ensuite tu vérifies bien les droits sur le fichier sitemap.xml à la racine de ton serveur - 755 ou 777) ensuite régénère ton sitemap via le module dans le BO.

Après tu retournes sur ton compte outils google, tu renvoies le sitemap.xml, tu attends un peu et çà devrait être bon.

Link to comment
Share on other sites

Bonjour jmcht,

merci pour ta reponse.

Alors j'ai bien copié le gsitemap du com#6,
le sitemap est regenere et les droits sont bons... mais toujours la petite croix rouge.

En attendant j'ai mis un autre 'sitemap' generé par yooda.

je me demande bien ou se trouve le 'mais oui bien sur!'...

Link to comment
Share on other sites

je copie le début des erreurs que trouvent mossieur Google: une idée?

Erreurs et avertissements relatifs au sitemap
Ligne État Détails
2
URL incorrecte
Cette URL est incorrecte. Corrigez-la et réessayez.
URL :
http:///category.php?id_category=1&id_lang=1'>http:///category.php?id_category=1&id_lang=1
2
URL incorrecte
Cette URL est incorrecte. Corrigez-la et réessayez.
URL :
http:///category.php?id_category=1
2
URL incorrecte
Cette URL est incorrecte. Corrigez-la et réessayez.
URL :
http:///26-sales?id_lang=1
2
URL incorrecte
Cette URL est incorrecte. Corrigez-la et réessayez.
URL :
http:///26-soldes

Merci

Link to comment
Share on other sites

  • 2 months later...

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 account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...