- Posts: 499
- Thank you received: 33
Table des URL SEF de sh404SEF submergée par des URLs Hikashop
8 years 3 months ago - 8 years 3 months ago #293826
by lesyeux
-- HikaShop version -- : 3.4.0
-- Joomla version -- : 3.8.6
-- PHP version -- : 7.1.17
Bonjour J'utilise sh404SEF, pour pouvoir personnaliser des URLs SEF, contrôler des paramètres SEO ou établir des redirections après analyse des erreurs 404.
Sur une petite boutique (une trentaine de produits) tournant avec des versions récentes des applications (Hikashop, Joomla, sh404SEF, PHP), je rencontre le problème suivant : la table des URLs SEF de sh404SEF est complètement submergée par des URLs d'Hikashop ; elle devient très lourde et il arrive un moment où je ne peux même plus afficher le lsiting des URLs dans sh404SEF et je dois purger la table via phpMyAdmin. Je me suis retrouvé avec plusieurs dizaines de milliers d'URLs similaires (plus de 90.000) !
Le problème ne vient pas des URLs des catégories ou des produits, mais vient essentiellement d'URLs de ce type : "type=cart&return_url=…" qui sont apparemment créées par le module de panier.
NON-SEF
index.php?option=com_hikashop&Itemid=400&ctrl=product&lang=fr&module_id=330&module_type=cart&return_url=aHR0cHM6Ly93d3cubGVzeWV1eGZlcnRpbGVzLmZyL2JvdXRpcXVlL2NhdGVnb3JpZS9zdGFnZXMtZGUtZGVzc2lu&task=cart&tmpl=component
SEF (sh404SEF)
boutique/product/cart/module_id-330/module_type-cart/return_url-aHR0cHM6Ly93d3cubGVzeWV1eGZlcnRpbGVzLmZyL2JvdXRpcXVlL2NhdGVnb3JpZS9zdGFnZXMtZGUtZGVzc2lu/tmpl-component
J'ai soumis le problème à l'éditeur de sh404SEF et j'attends sa réponse, mais je cherche aussi d'autres avis, venant par exemple de webmasters qui recontrent peut-être le même problème.
Est-il possible de ne pas réécrire ces URLs "return_url" ? Ou bien est-ce qu'un paramètre dans la configuration d'Hikashop (générale, module) pourrait permettre de ne plus les générer ?
NB : j'ai une solution temporaire, en excluant totalement Hikashop de la réécriture par sh404SEF, mais elle est insatisfaisante pour l'instant, car je perds au passage une fonctionnalité intéressante de sh404SEF, à savoir l'affichage d'une page de suggestions lorsque se produit une erreur 404.
-- Joomla version -- : 3.8.6
-- PHP version -- : 7.1.17
Bonjour J'utilise sh404SEF, pour pouvoir personnaliser des URLs SEF, contrôler des paramètres SEO ou établir des redirections après analyse des erreurs 404.
Sur une petite boutique (une trentaine de produits) tournant avec des versions récentes des applications (Hikashop, Joomla, sh404SEF, PHP), je rencontre le problème suivant : la table des URLs SEF de sh404SEF est complètement submergée par des URLs d'Hikashop ; elle devient très lourde et il arrive un moment où je ne peux même plus afficher le lsiting des URLs dans sh404SEF et je dois purger la table via phpMyAdmin. Je me suis retrouvé avec plusieurs dizaines de milliers d'URLs similaires (plus de 90.000) !
Le problème ne vient pas des URLs des catégories ou des produits, mais vient essentiellement d'URLs de ce type : "type=cart&return_url=…" qui sont apparemment créées par le module de panier.
NON-SEF
index.php?option=com_hikashop&Itemid=400&ctrl=product&lang=fr&module_id=330&module_type=cart&return_url=aHR0cHM6Ly93d3cubGVzeWV1eGZlcnRpbGVzLmZyL2JvdXRpcXVlL2NhdGVnb3JpZS9zdGFnZXMtZGUtZGVzc2lu&task=cart&tmpl=component
SEF (sh404SEF)
boutique/product/cart/module_id-330/module_type-cart/return_url-aHR0cHM6Ly93d3cubGVzeWV1eGZlcnRpbGVzLmZyL2JvdXRpcXVlL2NhdGVnb3JpZS9zdGFnZXMtZGUtZGVzc2lu/tmpl-component
J'ai soumis le problème à l'éditeur de sh404SEF et j'attends sa réponse, mais je cherche aussi d'autres avis, venant par exemple de webmasters qui recontrent peut-être le même problème.
Est-il possible de ne pas réécrire ces URLs "return_url" ? Ou bien est-ce qu'un paramètre dans la configuration d'Hikashop (générale, module) pourrait permettre de ne plus les générer ?
NB : j'ai une solution temporaire, en excluant totalement Hikashop de la réécriture par sh404SEF, mais elle est insatisfaisante pour l'instant, car je perds au passage une fonctionnalité intéressante de sh404SEF, à savoir l'affichage d'une page de suggestions lorsque se produit une erreur 404.
Last edit: 8 years 3 months ago by lesyeux. Reason: Résolu
Please Log in or Create an account to join the conversation.
8 years 3 months ago #293838
by Jerome
Jerome - Obsidev.com
HikaMarket & HikaSerial developer / HikaShop core dev team.
Also helping the HikaShop support team when having some time or couldn't sleep.
By the way, do not send me private message, use the "contact us" form instead.
Replied by Jerome on topic Table des URL SEF de sh404SEF submergée par des URLs Hikashop
Bonjour,
Solution 1 : configuration de SH404SEF pour ne pas s'occuper de ces URLs spécifiquement.
Solution 2 : Utiliser un override de vue pour "product / cart" et passer le "return_url" en tant que paramètre POST.
Cordialement,
Solution 1 : configuration de SH404SEF pour ne pas s'occuper de ces URLs spécifiquement.
Solution 2 : Utiliser un override de vue pour "product / cart" et passer le "return_url" en tant que paramètre POST.
Code:
o.xRequest("<?php echo hikashop_completeLink('product&task=cart&module_id='.$module_id . '&module_type='.$this->cart_type, true, false, true); ?>", {update: el, mode:'POST', data:'return_url=<?php echo urlencode(base64_encode(hikashop_currentURL('return_url'))); ?>'}, function(xhr){
Cordialement,
Jerome - Obsidev.com
HikaMarket & HikaSerial developer / HikaShop core dev team.
Also helping the HikaShop support team when having some time or couldn't sleep.
By the way, do not send me private message, use the "contact us" form instead.
The following user(s) said Thank You: lesyeux
Please Log in or Create an account to join the conversation.
8 years 3 months ago #293863
by lesyeux
Replied by lesyeux on topic Table des URL SEF de sh404SEF submergée par des URLs Hikashop
Bonjour,
Avec le code fourni, j'ai réglé une partie du problème. Mais j'ai encore des URLs excédentaires :
NON-SEF
index.php?option=com_hikashop&cart_id=4420&cart_product_id=7061&ctrl=product&lang=fr&quantity=0&return_url=aHR0cHM6Ly93d3cubGVzeWV1eGZlcnRpbGVzLmZyL2JvdXRpcXVlL3Byb2R1aXQvc3VyLWxlcy1yaXZlcy1kLXVuLXZpc2FnZS10aXJhZ2UtZC1hcnQtbm9pci1ldC1ibGFuYw%3D%3D&task=updatecart
SEF
boutique/product/updatecart/cart_id-4420/cart_product_id-7061/quantity-0/return_url-aHR0cHM6Ly93d3cubGVzeWV1eGZlcnRpbGVzLmZyL2JvdXRpcXVlL3Byb2R1aXQvc3VyLWxlcy1yaXZlcy1kLXVuLXZpc2FnZS10aXJhZ2UtZC1hcnQtbm9pci1ldC1ibGFuYw
Est-ce qu'il faut aussi modifier "checkout/tmpl/cart.php" ?
Par ailleurs, si je vide le panier, la page prévue pour s'afficher lorsque le panier est vide (configuration générale) ne s'affiche plus : on reste sur la page du checkout et la quantité semble ne pas avoir été actualisée (mais en fait, elle l'est, car le module de mini-panier affichera bien "panier vide" si on revient en page d'accueil). Peut-être que je peux simplement afficher un message, genre pop-up ?
Avec le code fourni, j'ai réglé une partie du problème. Mais j'ai encore des URLs excédentaires :
NON-SEF
index.php?option=com_hikashop&cart_id=4420&cart_product_id=7061&ctrl=product&lang=fr&quantity=0&return_url=aHR0cHM6Ly93d3cubGVzeWV1eGZlcnRpbGVzLmZyL2JvdXRpcXVlL3Byb2R1aXQvc3VyLWxlcy1yaXZlcy1kLXVuLXZpc2FnZS10aXJhZ2UtZC1hcnQtbm9pci1ldC1ibGFuYw%3D%3D&task=updatecart
SEF
boutique/product/updatecart/cart_id-4420/cart_product_id-7061/quantity-0/return_url-aHR0cHM6Ly93d3cubGVzeWV1eGZlcnRpbGVzLmZyL2JvdXRpcXVlL3Byb2R1aXQvc3VyLWxlcy1yaXZlcy1kLXVuLXZpc2FnZS10aXJhZ2UtZC1hcnQtbm9pci1ldC1ibGFuYw
Est-ce qu'il faut aussi modifier "checkout/tmpl/cart.php" ?
Par ailleurs, si je vide le panier, la page prévue pour s'afficher lorsque le panier est vide (configuration générale) ne s'affiche plus : on reste sur la page du checkout et la quantité semble ne pas avoir été actualisée (mais en fait, elle l'est, car le module de mini-panier affichera bien "panier vide" si on revient en page d'accueil). Peut-être que je peux simplement afficher un message, genre pop-up ?
Please Log in or Create an account to join the conversation.
8 years 3 months ago #293864
by lesyeux
Replied by lesyeux on topic Table des URL SEF de sh404SEF submergée par des URLs Hikashop
L'absence de retour vers la page "panier vide" ne vient pas de l'override. C'est un autre problème (peut-être le système de cache du serveur, je vais vérifier ça et créer un autre sujet si le problème persiste)
Please Log in or Create an account to join the conversation.
8 years 3 months ago #293872
by nicolas
Replied by nicolas on topic Table des URL SEF de sh404SEF submergée par des URLs Hikashop
Pour les autres URLs, c'est toujours dans la même vue mais cela vient de cette ligne:
Vous pouvez la changer en:
Code:
$delete_url = hikashop_completeLink('product&task=updatecart&cart_id='.(int)$this->element->cart_id.'&cart_product_id='.(int)$product->cart_product_id.'&quantity=0&return_url='.urlencode(base64_encode(urldecode($this->params->get('url')))));
Code:
$delete_url = hikashop_completeLink('product&task=updatecart&cart_id='.(int)$this->element->cart_id.'&cart_product_id='.(int)$product->cart_product_id.'&quantity=0').?return_url='.urlencode(base64_encode(urldecode($this->params->get('url'))));
Please Log in or Create an account to join the conversation.
8 years 3 months ago #293901
by lesyeux
Replied by lesyeux on topic Table des URL SEF de sh404SEF submergée par des URLs Hikashop
Avec ce code, j'ai une erreur 500
Erreur : 500 - ParseError: syntax error, unexpected '?' in /templates/rt_metropolis/html/joomla/3.8/com_hikashop/product/cart.php:526
Erreur : 500 - ParseError: syntax error, unexpected '?' in /templates/rt_metropolis/html/joomla/3.8/com_hikashop/product/cart.php:526
Please Log in or Create an account to join the conversation.
8 years 3 months ago #293902
by Jerome
Jerome - Obsidev.com
HikaMarket & HikaSerial developer / HikaShop core dev team.
Also helping the HikaShop support team when having some time or couldn't sleep.
By the way, do not send me private message, use the "contact us" form instead.
Replied by Jerome on topic Table des URL SEF de sh404SEF submergée par des URLs Hikashop
Bonjour,
Il y a une légère typo dans le message de Nicolas
Il y a une légère typo dans le message de Nicolas
Code:
$delete_url = hikashop_completeLink('product&task=updatecart&cart_id='.(int)$this->element->cart_id.'&cart_product_id='.(int)$product->cart_product_id.'&quantity=0').'?return_url='.urlencode(base64_encode(urldecode($this->params->get('url'))));
Jerome - Obsidev.com
HikaMarket & HikaSerial developer / HikaShop core dev team.
Also helping the HikaShop support team when having some time or couldn't sleep.
By the way, do not send me private message, use the "contact us" form instead.
Please Log in or Create an account to join the conversation.
8 years 3 months ago #293926
by lesyeux
Replied by lesyeux on topic Table des URL SEF de sh404SEF submergée par des URLs Hikashop
Bonjour,
Merci beaucoup. Plus d'erreur 500. J'ai testé différentes pages, tout à l'air de fonctionner correctement.
Il me reste encore un seul type d'URL contenant "return_url" suivi d'un long code, et ça vient de la page du checkout (menu "passer-en-caisse" sur ce site), sur la croix de suppression d'un produit.
SEF
passer-en-caisse/product/updatecart/product_id-40/quantity-0/return_url-aHR0cDovL2xvY2FsaG9zdC9sZXN5ZXV4ZmVydGlsZXMvd3d3L3Bhc3Nlci1lbi1jYWlzc2U
Non-SEF
index.php?option=com_hikashop&Itemid=104&ctrl=product&lang=fr&product_id=40&quantity=0&return_url=aHR0cDovL2xvY2FsaG9zdC9sZXN5ZXV4ZmVydGlsZXMvd3d3L3Bhc3Nlci1lbi1jYWlzc2U%3D&task=updatecart
Merci beaucoup. Plus d'erreur 500. J'ai testé différentes pages, tout à l'air de fonctionner correctement.
Il me reste encore un seul type d'URL contenant "return_url" suivi d'un long code, et ça vient de la page du checkout (menu "passer-en-caisse" sur ce site), sur la croix de suppression d'un produit.
SEF
passer-en-caisse/product/updatecart/product_id-40/quantity-0/return_url-aHR0cDovL2xvY2FsaG9zdC9sZXN5ZXV4ZmVydGlsZXMvd3d3L3Bhc3Nlci1lbi1jYWlzc2U
Non-SEF
index.php?option=com_hikashop&Itemid=104&ctrl=product&lang=fr&product_id=40&quantity=0&return_url=aHR0cDovL2xvY2FsaG9zdC9sZXN5ZXV4ZmVydGlsZXMvd3d3L3Bhc3Nlci1lbi1jYWlzc2U%3D&task=updatecart
Please Log in or Create an account to join the conversation.
8 years 3 months ago #293933
by nicolas
Replied by nicolas on topic Table des URL SEF de sh404SEF submergée par des URLs Hikashop
Bonjour,
Celle URL provient du fichier "show_block_cart". Il faut changer le code:
de cette vue par juste # pour éviter le soucis.
Celle URL provient du fichier "show_block_cart". Il faut changer le code:
Code:
<?php echo hikashop_completeLink('product&task=updatecart&product_id='.$product->product_id.'&quantity=0&return_url='.urlencode(base64_encode(urldecode($url)))); ?>
The following user(s) said Thank You: lesyeux
Please Log in or Create an account to join the conversation.
8 years 3 months ago #293975
by lesyeux
Replied by lesyeux on topic Table des URL SEF de sh404SEF submergée par des URLs Hikashop
Bonjour,
Merci. Pour l'instant, le problème est réglé. Je reviendrai ici si jamais des nouvelles URL de ce type ("return_url") font leur apparition.
Juste pour ne pas mourir idiot : quelle est leur fonction ? Dit autrement, pour la dernière modif suggérée (simple remplacement du code PHP par "#'), je perds quoi ?
Merci. Pour l'instant, le problème est réglé. Je reviendrai ici si jamais des nouvelles URL de ce type ("return_url") font leur apparition.
Juste pour ne pas mourir idiot : quelle est leur fonction ? Dit autrement, pour la dernière modif suggérée (simple remplacement du code PHP par "#'), je perds quoi ?
Please Log in or Create an account to join the conversation.
8 years 3 months ago #293995
by nicolas
Replied by nicolas on topic Table des URL SEF de sh404SEF submergée par des URLs Hikashop
Bonjour,
Le paramètre return_url permet de fournir l'URL de la page courante pour qu'après que l'action soit exécutée par le serveur, il puisse rediriger le client vers la page concernée.
Donc par exemple, sur le module panier, ce paramètre contient l'URL de la page où vous êtes. Ainsi, après la suppression d'un produit du panier, la page où vous étiez peut être réaffichée.
Sur la dernière URL, celle ci n'est utilisée que si le javascript est complètement désactivé. Donc c'est une fonction "de secours" qui n'est normalement pas utile. Le fait de mettre # désactive cette fonction de secours , mais elle ne sert à rien de toute façon pour le bon fonctionnement de votre passage en caisse.
C'est surtout utile lorsqu'il y a une erreur javascript sur la page dûe à une autre extension, qui empêche le javascript d'HikaShop de fonctionner (car le navigateur n'initialise pas le javascript HikaShop dans ce cas), mais ce n'est pas le cas sur votre site.
Le paramètre return_url permet de fournir l'URL de la page courante pour qu'après que l'action soit exécutée par le serveur, il puisse rediriger le client vers la page concernée.
Donc par exemple, sur le module panier, ce paramètre contient l'URL de la page où vous êtes. Ainsi, après la suppression d'un produit du panier, la page où vous étiez peut être réaffichée.
Sur la dernière URL, celle ci n'est utilisée que si le javascript est complètement désactivé. Donc c'est une fonction "de secours" qui n'est normalement pas utile. Le fait de mettre # désactive cette fonction de secours , mais elle ne sert à rien de toute façon pour le bon fonctionnement de votre passage en caisse.
C'est surtout utile lorsqu'il y a une erreur javascript sur la page dûe à une autre extension, qui empêche le javascript d'HikaShop de fonctionner (car le navigateur n'initialise pas le javascript HikaShop dans ce cas), mais ce n'est pas le cas sur votre site.
The following user(s) said Thank You: lesyeux
Please Log in or Create an account to join the conversation.
8 years 3 months ago #293997
by lesyeux
Replied by lesyeux on topic Table des URL SEF de sh404SEF submergée par des URLs Hikashop
Merci beaucoup pour ces précisions !
Please Log in or Create an account to join the conversation.
Time to create page: 0.276 seconds