Rediriger plutôt que error 404 ?

  • Posts: 246
  • Thank you received: 5
11 months 7 hours ago #351355

Bonjour,

Nous commercialisons des cours via HikaShop+Moodle+Joomdle. Les cours sont redifinis tous les ans (ils changent). Un nouveau cours est créé dans Moodle ce qui entraîne la création d'un produit dans HikaShop via Joomdle. Tout fonctionne très bien.
Pendant un certain temps on a deux fois le même cours. Celui du cours X de l'année en cours et celui du même cours X pour l'année suivante. Ils ont des codes produits différents, ce n'est pas gênant et cela fonctionne bien.
En effet un étudiant peut vouloir s'inscrire au cours de l'année en cours pour suivre quand même une partie du cursus et une autre étudiant vouloir s'inscrire à ce même cours pour l'année suivante.
Au bout d'un certain temps, on désactive le produit du cours X de l'année en cours car cela n'a plus de sens de s'inscrire. Il faut s'inscrire à celui de l'année suivante.
Néanmoins les urls d'accès au produit désactivé restent présentes partout sur la toile (google, annuaires, mails marketing, stockées par les clients, etc..). Si une personne clique sur le lien amenant vers le produit dépublié elle tombe sur une erreur 404.
Il est toujours possible d'installer une redirection manuelle de cette url vers celle du produit actif mais c'est laborieux et long.
Existe-t-il un moyen de rediriger automatiquement l'url d'un produit désactivé vers son remplaçant (comment le définir ?)... ou plus simplement d'afficher le catalogue des formations plutôt que la page 404 générique du site ?

Merci

Laurent

Please Log in or Create an account to join the conversation.

  • Posts: 81361
  • Thank you received: 13036
  • MODERATOR
11 months 4 hours ago #351356

Bonjour,

Editez le fichier product / show via le menu Affichage>Vues.
Là, vous avez la ligne:

throw new Exception(JText::_('PRODUCT_NOT_FOUND'), 404);
qui fait l'affichage de l'erreur 404 lorsqu'un produit est dépublié.
Donc changez cette ligne en:
$app->redirect('XXX');
où XXX est l'URL du catalogue des formations, et le tour sera joué.

Last edit: 11 months 7 hours ago by nicolas.

Please Log in or Create an account to join the conversation.

  • Posts: 246
  • Thank you received: 5
11 months 3 hours ago #351362

Simple. Je pensais que c'était fait au niveau du controler ou du modèle.. Je n'ai même pas vérifié !
Je teste cela.
Merci

The following user(s) said Thank You: Philip

Please Log in or Create an account to join the conversation.

  • Posts: 246
  • Thank you received: 5
10 months 1 week ago #351841

Parfait. ça marche effectivement impec.
Juste pour ma gouverne, je n'ai pas été capable de trouver le paramètre de config "404_when_product_not_found"..
Merci

Please Log in or Create an account to join the conversation.

  • Posts: 4486
  • Thank you received: 609
  • MODERATOR
10 months 1 week ago #351843

bonjour,

voyez ma screenshot pour trouver la partie du code pointé par Nicolas autour de la ligne 23



Que vous trouverez dans le dossier product/tmpl & la vue show.php
=> YourWebsite\components\com_hikashop\views\product\tmpl

Cordialement

Last edit: 10 months 1 week ago by Philip.

Please Log in or Create an account to join the conversation.

  • Posts: 246
  • Thank you received: 5
10 months 6 days ago #351881

Merci mais ce n'était pas la question !
J'avais bien fait la modif de la redirection. Simple.
Ma question portait sur le test de la ligne 19 et l'origine de la constante dans la config.

Please Log in or Create an account to join the conversation.

  • Posts: 81361
  • Thank you received: 13036
  • MODERATOR
10 months 6 days ago #351882

C'est une option cachée. Vous pouvez ouvrir la table hikashop_config via votre PHPMyAdmin et ajoutez une nouvelle ligne avec le namekey 404_when_product_not_found et la valeur 0 et cela affichera une page vide avec un message d'erreur normal plutôt qu'une erreur 404.
Nous ne recommendons pas cela car cela évite le gestionnaire de redirection d'URLs 404 de Joomla, et empêche également d'utiliser la page 404 du template.

The following user(s) said Thank You: laurent

Please Log in or Create an account to join the conversation.

Time to create page: 0.045 seconds
Powered by Kunena Forum