Jump to content

Des URL avec paramètres GET dans les valeurs de caractéristique


Recommended Posts

Bonsoir,
Je viens d'installer Prestashop, que je trouve vraiment très bien conçu.
J'ai besoin de créer pour chaque produit un champ dans lequel je souhaite sauvegarder une URL que je ressortirai ensuite dans la fiche produit.

Pour attribuer une URL par produit, j'ai pensé à créer une "caractéristique" nommée "URL du produit".
Lorsque je saisis un produit, je l'enregistre d'abord à la fin de l'étape 1, puis dans l'onglet "Caract.", j'ai bien un champ "URL du produit" qui est proposé.

Si je saisis une URL du type http://www.google.com, ça fonctionne.
Si je saisis une URL contenant des paramètres GET, ça déconne (par ex. : http://www.google.com?var=123)

Voici le message d'erreur :

2 erreurs

1. le nom de la caractéristique n'est pas valide url_produit en Français (French)
2. Vous n'avez pas la permission d'éditer un objet ici.


J'ai tenté de forcer le paramètre htmlOK lors de l'appel à la fonction pSQL dans la méthode addFeatureCustomDB() de la classe "Product", mais en vain...

Je me demande si ce n'est pas un genre de protection contre les SQL Injections qui serait à l'origine de ça, mais il doit bien exister d'autres champs qui acceptent des URL dans l'interface de prestashop, non ?

Merci d'avance de votre aide.


Benoit
Link to comment
Share on other sites

Est-ce que quelqu'un peut tester simplement de saisir une URL avec des paramètres GET dans une de ses caractéristiques pour voir si c'est un porblème lors de la déclaration de caractéristiques ou un bug de la plateforme prestashop ?

Merci.

Link to comment
Share on other sites

Après quelques tests sur la démo du site prestashop, voici les résultats des tests de valeurs qui fonctionnent ou non pour une caractéristique :

- apple.fr => OK
- www.apple.fr => OK
- www.apple.fr?var => OK
- http://www.apple.fr => ECHEC : pas de message d'erreur, mais la valeur n'est pas enregistrée
- www.apple.fr?var=123 => ECHEC : message d'erreur décrit dans mon billet initial
- www.apple.fr?var\=123 => ECHEC : message d'erreur décrit dans mon billet initial
- http://www.apple.fr?var => ECHEC : pas de message d'erreur, mais la valeur n'est pas enregistrée
- http://www.apple.fr?var=123 => ECHEC : pas de message d'erreur, mais la valeur n'est pas enregistrée
- http://www.apple.fr?var=123&var2=456 => ECHEC : pas de message d'erreur, mais la valeur n'est pas enregistrée



Pour les 2 dernières versions, j'ai eu le message d'erreur une fois, mais je n'avais alors créé qu'une caractéristique en français, sans donner de nom anglais. Apparemment, maintenant que j'ai les 2 noms, je n'ai plus le message d'erreur mais la valeur s'efface après validation du formulaire.


Comment faire alors pour créer un champ texte permettant de saisir une URL pour un produit ? Est-ce que quelqu'un a déjà eu besoin de faire ça ?
Faut-il créer un module spécifique ??
Je précise que l'URL que je souhaite enregistrer sera affichée sous la forme d'un lien remplaçant le bouton "Ajouter au panier" : ma "boutique" ne fera à priori que de l'affiliation et je ne gère aucun paiement sur ma boutique.

Merci de m'éclairer.

Link to comment
Share on other sites

  • 1 month later...

un petit up sur ce sujet,

j'ai moi même besoin d'insérer des caractères spéciaux (balises html) dans les valeurs de caractéristiques (FeatureValue)

dans la class featurevalue j'ai donc inséré cette ligne

protected     $fieldsValidateLang = array('value' => 'isCleanHtml');



donc j'ai pas de message d'erreur mais mes balises ne sont pas enregistrées,
seules les modifs sur le texte sont prises en compte.

Avez-vous une idée ?

Link to comment
Share on other sites

Hmm, je n'ai toujours pas eu de réponses à cette question.
J'ai ajouté un champ manuellement à la classe produit pour faire ce que j'avais besoin, mais ce n'est qu'une rustine...
Dans le bug tracker, ils ont pas compris ma question : ils ont cru que je voulais mettre des caractères spéciaux dans le nom de la feature, or c'est dans sa valeur que l'on a besoin de pouvoir mettre des balises HTML. Ils ont considéré que ce n'était pas un bug... je suis deg.

Link to comment
Share on other sites

  • 2 weeks later...

Je ne sais pas si c'est grâce à la mise à jour vers la version 1.2.4, mais j'ai réussi à enregistrer une URL avec un point d'interrogation dans la valeur d'une caractéristique en remplaçant dans la classe FeatureValue le type de donnée du champ $fieldsValidateLang, comme tu l'as décris Kelcible :

protected     $fieldsValidateLang = array('value' => 'isCleanHtml');



C'est assez curieux, car je suis presque sûr que j'avais essayé avant et que ça ne marchait pas. Est-ce que tu peux tester ça Kelcible : mettre à jour vers 1.2.4 puis retenter de changer la propriété de la classe FeatureValue ?

Link to comment
Share on other sites

  • 2 years 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...