couillaler Posted June 26, 2019 Share Posted June 26, 2019 (edited) Hello, J'aimerais que la liste de mes fournisseurs ne soit pas rendue publique. J'ai donc désactivé le module Liste des Fournisseurs, l'ai dégréffé de tous les hooks possibles, j'ai désactivé chacun de mes fournisseurs créés dans la rubrique Catalogue-Marques et Fournisseurs et ainsi mes clients n'ont plus accès à ces informations, dont je ne me sert qu'en BO, pour faciliter mes commandes et la gestion de mes produits. Par contre, sur la page Plan de site (Sitemap) apparaît dans la rubrique Nos Offres un lien vers mes Fournisseurs. Ce lien renvoie vers une page www.mondomaine.fr/fr/fournisseur Si cette page est bien vide, j'aimerais simplement qu'elle n'existe pas et faire disparaître le lien de ma page Sitemap. Ce n'est pas super grave, mais comme ce lien renvoie vers une page vide, cela ne sert à rien de l'afficher. J'ai fouiné un peu partout, et beaucoup sur ce forum, mais je ne trouve pas où faire cela. Il doit y avoir un truc simple, mais lequel ? Merci, Antoine Edited July 22, 2020 by couillaler Ai Enlevé temporairement le résolu (see edit history) Link to comment Share on other sites More sharing options...
Janett Posted June 26, 2019 Share Posted June 26, 2019 Paramètres de la boutique > Paramètres généraux > Afficher les marques et fournisseurs Link to comment Share on other sites More sharing options...
couillaler Posted June 26, 2019 Author Share Posted June 26, 2019 Merci @Janett j'avais déjà vu cette option, mais hélas, elle masque aussi les marques sur la page Nos Offres du sitemap! Je craignais d'ailleurs cette réponse, car elle sous-entend que ce n'est pas possible de masquer l'un sans masquer l'autre... Dommage que cette option ne soit pas scindée en deux d'ailleurs, un fournisseur et une marque n'étant pas forcément la même chose. On peut vouloir acheter un objet d'une marque, et donc il est pratique de pouvoir naviguer par marques, sans avoir à savoir de quel fournisseur (distributeur) il provient. Y a-t-il une bidouille que l'on peut faire quelque part pour arriver à résoudre mon dilemme ? Merci en tout cas, Antoine Link to comment Share on other sites More sharing options...
Janett Posted June 26, 2019 Share Posted June 26, 2019 Effectivement on ne peut pas les dissocier, je crois que ça déjà été remonté sur github, ça me dit quelque chose. Un override du SitemapController à priori, c’est géré ici : https://github.com/PrestaShop/PrestaShop/blob/430dd959e92c6adb0f77bdc65b846796b7789cfe/controllers/front/SitemapController.php#L166 Link to comment Share on other sites More sharing options...
Eolia Posted June 26, 2019 Share Posted June 26, 2019 sitemap.tpl commentez ce bloc {if $display_manufacturer_link OR $PS_DISPLAY_SUPPLIERS} <li> <a href="{$link->getPageLink('manufacturer')|escape:'html':'UTF-8'}" title="{l s='View a list of manufacturers'}"> {l s='Manufacturers'} </a> </li> {/if} et vérifiez qu'elle n'est pas dans votre sitemap.txt généré par le module gsitemap^^ Link to comment Share on other sites More sharing options...
couillaler Posted June 26, 2019 Author Share Posted June 26, 2019 Merci @Eolia , voici une bien belle piste. Par contre, dans le sitemap.tpl présent dans le dossier monthème/templates/cms je ne trouve rien de tel. J'ai regardé dans d'autres fichiers du même nom, mais n'ai rien vu de différent. {block name='page_title'} <h1 class="products-section-title text-center mb-4">{l s='Sitemap' d='Shop.Theme.Global'}</h1> {/block} {block name='page_content_container'} <div id="sitemap-tree" class="row sitemap"> <div class="col-12"> <h1 class="custom-toggle collapsed" data-toggle="collapse" data-target="#col_offers" aria-expanded="false">{$our_offers}</h1> <div class="collapse" id="col_offers">{include file='cms/_partials/sitemap-nested-list.tpl' links=$links.offers}</div> </div> <div class="col-12"> <h1 class="custom-toggle collapsed" data-toggle="collapse" data-target="#col_categories" aria-expanded="false">{$categories}</h1> <div class="collapse" id="col_categories">{include file='cms/_partials/sitemap-nested-list.tpl' links=$links.categories}</div> </div> <div class="col-12"> <h1 class="custom-toggle collapsed" data-toggle="collapse" data-target="#col_user_account" aria-expanded="false">{$your_account}</h1> <div class="collapse" id="col_user_account">{include file='cms/_partials/sitemap-nested-list.tpl' links=$links.user_account}</div> </div> <div class="col-12"> <h1 class="custom-toggle collapsed" data-toggle="collapse" data-target="#col_pages" aria-expanded="false">{$pages}</h1> <div class="collapse" id="col_pages">{include file='cms/_partials/sitemap-nested-list.tpl' links=$links.pages}</div> </div> </div> {/block} J'ai cherché par contre avec des bribes des extraits que tu as mis, et j'ai trouvé ceci dans le fichier SitemapController.php du dossier /controllers/front if (Configuration::get('PS_DISPLAY_SUPPLIERS')) { $manufacturers = Manufacturer::getLiteManufacturersList($this->context->language->id, 'sitemap'); $links[] = array( 'id' => 'manufacturer-page', 'label' => $this->trans('Brands', array(), 'Shop.Theme.Catalog'), 'url' => $this->context->link->getPageLink('manufacturer'), 'children' => $manufacturers, ); $suppliers = Supplier::getLiteSuppliersList($this->context->language->id, 'sitemap'); $links[] = array( 'id' => 'supplier-page', 'label' => $this->trans('Suppliers', array(), 'Shop.Theme.Catalog'), 'url' => $this->context->link->getPageLink('supplier'), 'children' => $suppliers, ); } Ça y ressemble, mais ce n'est pas exactement cela, et surtout, ce n'est pas le même fichier que celui dont tu parles ! Je n'ai touché à rien pour l'instant. Antoine. PS Et j'ai décoché la case Fournisseurs [supplier] de l'extension Google Sitemap, qui dégage un fichier XML, pas TXT. Parlons-nous de la même chose ? Link to comment Share on other sites More sharing options...
Janett Posted June 27, 2019 Share Posted June 27, 2019 L’astuce donnée par @Eolia ne fonctionne pas en 1.7 https://github.com/PrestaShop/PrestaShop/blob/develop/themes/classic/templates/cms/sitemap.tpl Link to comment Share on other sites More sharing options...
Eolia Posted June 27, 2019 Share Posted June 27, 2019 En 1.7 il vous suffit de commenter cette partie dans le sitemap.php Citation /*$manufacturers = Manufacturer::getLiteManufacturersList($this->context->language->id, 'sitemap'); $links[] = array( 'id' => 'manufacturer-page', 'label' => $this->trans('Brands', array(), 'Shop.Theme.Catalog'), 'url' => $this->context->link->getPageLink('manufacturer'), 'children' => $manufacturers, );*/ 1 Link to comment Share on other sites More sharing options...
Janett Posted June 27, 2019 Share Posted June 27, 2019 Attention à bien noter quelque part de refaire cette modification si vous faites une mise à jour car elle risque d’être écrasée par la prochaine mise à jour 👍 Link to comment Share on other sites More sharing options...
couillaler Posted June 27, 2019 Author Share Posted June 27, 2019 Hello, Super @Eolia, merci ! J'ai appliqué le commentaire sur le fichier SitemapController.php du dossier /controllers/front, sur le paragraphe concernant les fournisseurs, et pas les fabricants, mais c'est pareil, ça fonctionne très bien ! Le lien Fournisseurs a disparu de la page Plan du Site (Sitemap). /*$suppliers = Supplier::getLiteSuppliersList($this->context->language->id, 'sitemap'); $links[] = array( 'id' => 'supplier-page', 'label' => $this->trans('Suppliers', array(), 'Shop.Theme.Catalog'), 'url' => $this->context->link->getPageLink('supplier'), 'children' => $suppliers, );*/ La page mondomaine.fr/fr/fournisseur existe toujours, elle est vide, mais, comme j'ai décoché le champs fournisseurs [supplier] du module gsitemap, j'imagine que ce moteur de recherche là, au moins, ne la référence pas. Ça ira donc bien comme ça ! Merci encore. Antoine Link to comment Share on other sites More sharing options...
couillaler Posted July 20, 2020 Author Share Posted July 20, 2020 Hello, Ayant installé un nouveau PS 1.7.6.6, avec un nouveau thème, ma page fournisseur était, forcément, revenue dans mon Plan du site (Sitemap). J'ai appliqué la technique ci-dessus en modifiant le fichier SitemapController.php, et les fournisseurs ont disparu du sitemap, super, cela fonctionne donc aussi sur PS 1.7.6.6! Par contre, la page mondomaine.fr/fournisseurs, elle, apparaît, et elle n'est pas vide ! J'ai cherché sur le forum comment supprimer l'affichage de cette page, ou l'afficher vide, ou la supprimer tout court, peu importe, mais je ne trouve rien, ni sur les moteurs de recherche sur internet. J'imagine que je ne suis pas le seul à vouloir masquer mes fournisseurs, pourriez-vous me dire comment faire pour cela ? (je précise que j'ai besoin qu'ils restent actifs dans mon BO quand même! Si besoin, je peux ouvrir un nouveau sujet plutôt que d'exhumer ce vieux message, mais je trouvais que cela avait du sens de poser la question ici, c'est un peu la suite logique de ma demande initiale. Merci si vous avez une astuce !!! Antoine Link to comment Share on other sites More sharing options...
daddybelgium Posted July 25, 2020 Share Posted July 25, 2020 Bonjour Antoine, Depuis ton BO tu vas dans Paramètres de la boutique > Trafic & Seo et tu peux supprimer la page Fournisseurs/Suppliers. N'oublie de pas de vider ton cache pour voir le changement. Bien à toi, David 1 Link to comment Share on other sites More sharing options...
HeineFR Posted July 25, 2020 Share Posted July 25, 2020 Si google a mémorisé l'URL n"oubliez pas de rediriger en 301 ou 410 sur la page index Link to comment Share on other sites More sharing options...
couillaler Posted July 26, 2020 Author Share Posted July 26, 2020 Hello, Merci @daddybelgium en effet, c'est une solution assez radicale et efficace, alliée à celle au-dessus qui fait sortir les fournisseurs du sitemap, ça le fait bien. Mais cela ne suffit pas, je veux dire, la page des produits par fournisseurs reste accessible avec un lien direct du type : mondomaine.fr/fournisseurs/[id]-[nom-fournisseur] Alors c'est vrai que si un client aura du mal à trouver cette page directement en tapant l'adresse, ce n'est pas le cas des robots indexeurs des moteurs de recherche. J'ai vu par exemple que certaines pages de ce type recevaient des visites car les personnes tapaient comme mot-clef le nom du fournisseur (sûrement des personnes cherchant des infos sur ce dernier) dans le moteur de recherche, qui du coup affichait ma page à moi, entre autre, comme réponse : mondomaine.fr/fournisseurs/[id]-[nom-fournisseur] (en gras, le mot-clef saisi par les personnes dans le moteur de recherche). C'est défini dans PS par la fameuse "route vers les fournisseurs" : supplier/{id}-{rewrite} J'aimerais masquer ces pages-là aussi. Je n'ai pas forcément envie que la concurrence, ou simplement mes clients puissent voir où j'achète certaines produits. Je trouve important la fonction de masquer les fournisseurs aux clients ! Si dans certains cas, ce peut être utile de les afficher, dans la majorité, je pense, nous n'avons pas forcément envie que tout le monde voit chez qui on achète les produits que l'on vend. Avis aux développeurs de Prestashop.... Une petite case à cocher du type "Invisible en Front Office" pour chacun d'eux serait un plus certain ! Le problème reste donc encore non-résolu et je reste à l'écoute de toute bonne solution ! Merci. Antoine @HeineFR je ne suis pas certain de comprendre ton conseil, où appliquer cette modification ? Tu ne parles pas de l'option "Rediriger vers l'URL canonique" je pense... Link to comment Share on other sites More sharing options...
HeineFR Posted July 26, 2020 Share Posted July 26, 2020 Dans ton htaccess tu rediriges en 301 sur l'accueil supplier/(;*) et /fournisseurs Link to comment Share on other sites More sharing options...
couillaler Posted July 26, 2020 Author Share Posted July 26, 2020 Ah oui! C'est pas bête, bloquer le truc avec le htaccess... simple mais efficace sûrement... Par contre, c'est du du mandarin pour moi le contenu de ce fichier... tu pourrais indiquer ici la commande textuelle exacte à insérer dans ce fichier ? J'ai trouvé des ressources sur internet à ce sujet, mais je crains de faire plus de mal que de bien, comme on dit... Link to comment Share on other sites More sharing options...
Janett Posted July 26, 2020 Share Posted July 26, 2020 A priori ces pages peuvent être désactivées depuis la configuration de PrestaShop : Fournisseurs : https://github.com/PrestaShop/PrestaShop/blob/12c29b500a9266630d40eef6b0d078c09752e3f7/controllers/front/listing/SupplierController.php#L75 Marques : https://github.com/PrestaShop/PrestaShop/blob/12c29b500a9266630d40eef6b0d078c09752e3f7/controllers/front/listing/ManufacturerController.php#L74 Site map : https://github.com/PrestaShop/PrestaShop/blob/12c29b500a9266630d40eef6b0d078c09752e3f7/controllers/front/SitemapController.php#L167 Link to comment Share on other sites More sharing options...
HeineFR Posted July 26, 2020 Share Posted July 26, 2020 (edited) On 7/26/2020 at 1:40 PM, couillaler said: Ah oui! C'est pas bête, bloquer le truc avec le htaccess... simple mais efficace sûrement... Par contre, c'est du du mandarin pour moi le contenu de ce fichier... tu pourrais indiquer ici la commande textuelle exacte à insérer dans ce fichier ? J'ai trouvé des ressources sur internet à ce sujet, mais je crains de faire plus de mal que de bien, comme on dit... A la fin du fuchier .htaccess à la racine de ton shop tu rajoutes ces 2 lignes : RedirectMatch 301 ^/fournisseur https://www.tonurl.com RedirectMatch 301 ^/supplier(.*) https://www.tonurl.com Il faut tout de même éviter d'avoir des liens toujours présent car tu vas créer un lien vers une URL qui est redirigée sur la page d’accueil, ce qui est quand même à éviter. Edited July 28, 2020 by HeineFR Correction Redirectmatch (see edit history) Link to comment Share on other sites More sharing options...
couillaler Posted July 27, 2020 Author Share Posted July 27, 2020 Bonjour, @HeineFR merci beaucoup, c'est très clair indiqué comme cela... En effet, c'est vrai que renvoyer un lien vers une page qui existe vers une autre, c'est pas terrible en terme de SEO, mais en attendant une solution plus "physique" de masquer les fournisseurs sur le Front Office, je vois pas comment faire. Je vais voir comment adapter cela à mon site multilingue. @Janett Oui, merci, effectivement, j'avais déjà vu cette option, que tu m'avais déjà signalé auparavant (voir message ci-dessus du 26/06/19), le souci, et je l'avais déjà signalé par le passé, c'est que cette fonction devrait être scindée en deux ! Je ne veux pas masquer les marques, mais juste les fournisseurs ! Je trouve très bien que mes clients puissent choisir leur produit en fonction de la marque, et donc se rendre sur la page des marques. Mais en effet, c'est exactement la fonction qu'il faut, tu as raison, il faudrait juste deux boutons, un pour les marques, un pour les fournisseurs! Cela répondrait à beaucoup plus de besoins qu'un seul bouton qui fait les deux en bloc ! J'imagine que le lien Gthub vers les fournisseurs renvoie vers une page que l'on pourrait bidouiller pour rendre les fournisseurs invisibles en FO (c'est sûrement là que le bouton de l'option agit ?), mais je n'ai pas assez de connaissance pour me risquer à modifier cela. Le lien Sitemap renvoie effectivement vers la partie que j'avais déjà modifié sur le fichier SitemapController.php sur les conseils d'@Eolia. Ce qui m'étonne, c'est le peu de demandes à ce sujet, suis-je le seul à ne pas vouloir montrer mes founisseurs à mes clients ? Ou beaucoup de personnes les rendent publics sans le savoir ? Antoine Link to comment Share on other sites More sharing options...
HeineFR Posted July 27, 2020 Share Posted July 27, 2020 @couillaler Attention, on vient de me faire remarquer que sur notre site l'une de ces redirection est trop large et agit sur le back-office lorsque l'on veut sélectionner et attribuer les fournisseurs. En effet, la requête ajax https://www.ndd.fr/adminXXXXXXX/index.php/sell/catalog/products/suppliers/refresh-product-supplier-combination-form/533 se fait aussi redirect 😵 Je corrige ça à mon taf demain et je dirait ce qui n'allait pas Link to comment Share on other sites More sharing options...
HeineFR Posted July 28, 2020 Share Posted July 28, 2020 J'ai corrigé mon POST précédent, le code à insérer dans l'htaccess est: RedirectMatch 301 ^/fournisseur https://www.tonurl.com RedirectMatch 301 ^/supplier(.*) https://www.tonurl.com Link to comment Share on other sites More sharing options...
jemm971 Posted November 11, 2020 Share Posted November 11, 2020 (edited) Modification pour gérer indépendamment l'autorisation d'affichage des marques de celui des fournisseurs (autant sur les pages que sur le sitemap). Après cette modification : - l'option "Afficher les marques et les fournisseurs" (dans "Paramètres de la boutique / Paramètres généraux") décide de l'affichage ou non des fournisseurs - dans la table ps_configuration de la base de données, la valeur de la variable PS_DISPLAY_MANUFACTURERS décide de l'affichage ou non des marques (1=oui, 0=non) J'espère que cela vous sera utile, car si vous êtes comme moi, je trouvais qu'afficher mes fournisseurs n'était pas vraiment une bonne idée, mais je voulais garder l'affichage des marques. Dans mon paramétrage j'ai donc "Afficher les marques et les fournisseurs" à Non pour bloquer les fournisseurs, et PS_DISPLAY_MANUFACTURERS à 1 pour afficher les marques. A/ avec phpmyadmin, aller dans la table ps_configuration et créer une variable PS_DISPLAY_MANUFACTURERS. Si on lui met une valeur 1 les marques seront affichées, 0 sinon. (vous pouvez prendre modèle sur la variable PS_DISPLAY_SUPPLIERS) B/ dans le fichier controllers\front\listing\ManufacturerController.php : ligne 74 originale : if (Configuration::get('PS_DISPLAY_SUPPLIERS')) { remplacée par : if (Configuration::get('PS_DISPLAY_MANUFACTURERS')) { C/ dans le fichier /controllers/front/SitemapController.php bloc original (à partir de la ligne 166): if (Configuration::get('PS_DISPLAY_SUPPLIERS')) { $manufacturers = Manufacturer::getLiteManufacturersList($this->context->language->id, 'sitemap'); $links[] = array( 'id' => 'manufacturer-page', 'label' => $this->trans('Brands', array(), 'Shop.Theme.Catalog'), 'url' => $this->context->link->getPageLink('manufacturer'), 'children' => $manufacturers, ); $suppliers = Supplier::getLiteSuppliersList($this->context->language->id, 'sitemap'); $links[] = array( 'id' => 'supplier-page', 'label' => $this->trans('Suppliers', array(), 'Shop.Theme.Catalog'), 'url' => $this->context->link->getPageLink('supplier'), 'children' => $suppliers, ); } remplacé par le bloc suivant : if (Configuration::get('PS_DISPLAY_MANUFACTURERS')) { $manufacturers = Manufacturer::getLiteManufacturersList($this->context->language->id, 'sitemap'); $links[] = array( 'id' => 'manufacturer-page', 'label' => $this->trans('Brands', array(), 'Shop.Theme.Catalog'), 'url' => $this->context->link->getPageLink('manufacturer'), 'children' => $manufacturers, ); } if (Configuration::get('PS_DISPLAY_SUPPLIERS')) { $suppliers = Supplier::getLiteSuppliersList($this->context->language->id, 'sitemap'); $links[] = array( 'id' => 'supplier-page', 'label' => $this->trans('Suppliers', array(), 'Shop.Theme.Catalog'), 'url' => $this->context->link->getPageLink('supplier'), 'children' => $suppliers, ); } Edited November 11, 2020 by jemm971 (see edit history) Link to comment Share on other sites More sharing options...
jemm971 Posted November 11, 2020 Share Posted November 11, 2020 Et si l'on veut peaufiner, on peut aussi modifier le libellé du bouton "Afficher les marques et fournisseurs" pour qu'il ne soit plus ambigu : - aller dans le menu International / Traductions, choisir traduction du Back office, langue française. - Rechercher "Afficher les marques". - Dans la chaine qui est trouvée, mettre à la place "Afficher les fournisseurs (marques par PS_DISPLAY_MANUFACTURERS dans table ps_configuration)". Et voilà ! On a un nouveau libellé plus juste, avec un rappel sur comment afficher les marques. 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