- Posts: 262
- Thank you received: 9
Rediriger plutôt que error 404 ?
3 years 5 months ago #351355
by laurent
Rediriger plutôt que error 404 ? was created by laurent
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
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.
3 years 5 months ago - 3 years 5 months ago #351356
by nicolas
Replied by nicolas on topic Rediriger plutôt que error 404 ?
Bonjour,
Editez le fichier product / show via le menu Affichage>Vues.
Là, vous avez la ligne:
qui fait l'affichage de l'erreur 404 lorsqu'un produit est dépublié.
Donc changez cette ligne en:
où XXX est l'URL du catalogue des formations, et le tour sera joué.
Editez le fichier product / show via le menu Affichage>Vues.
Là, vous avez la ligne:
Code:
throw new Exception(JText::_('PRODUCT_NOT_FOUND'), 404);
Donc changez cette ligne en:
Code:
$app->redirect('XXX');
Last edit: 3 years 5 months ago by nicolas.
Please Log in or Create an account to join the conversation.
3 years 5 months ago #351362
by laurent
Replied by laurent on topic Rediriger plutôt que error 404 ?
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
Je teste cela.
Merci
The following user(s) said Thank You: Philip
Please Log in or Create an account to join the conversation.
3 years 4 months ago #351841
by laurent
Replied by laurent on topic Rediriger plutôt que error 404 ?
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
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.
3 years 4 months ago - 3 years 4 months ago #351843
by Philip
Replied by Philip on topic Rediriger plutôt que error 404 ?
Last edit: 3 years 4 months ago by Philip.
Please Log in or Create an account to join the conversation.
3 years 4 months ago #351881
by laurent
Replied by laurent on topic Rediriger plutôt que error 404 ?
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.
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.
3 years 4 months ago #351882
by nicolas
Replied by nicolas on topic Rediriger plutôt que error 404 ?
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.
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.219 seconds