Jump to content

Module "Feature buddy"


alexper

Recommended Posts

Attention : je ne suis pas développeur. Sans citer les risques évidents de sécurité, ce plugin nécessitera de votre part un peu d'adaptation car il a été développé selon mes besoins et je n'ai pas la prétention d'ouvrir une solution clé en main. Quelques points à connaître que vous pourrez adapter vous même (et partager le code ici même si vous le souhaitez) : 

- il n'est pas développé pour du multilingue

- le multi-boutique n'est pas prévu

- le prix des produits est certainement à remplacer.

- il y a quelques infos à supprimer (c'est commenté dans le php, pas dans le tpl. Mais facilement identifiable).

 

Ce module permet d'afficher sur la page produit d'autres produits partageant la même caractéristique.

Par exemple si le produit a pour caractéristique "Matière : jean", le bloc peut afficher d'autres produits en jean, etc.

 

Exemple de configuration du module : 

De la même collection ([feature_value]),Collection//Produits de la même dimension,Dimensions

 

Nombre de blocs illimités.

Prestashop 1.6.

 

 

 

EDIT 28/07/2016

Faille pointée par coeos.pro corrigée. 

 

EDIT 27/07/16 :

Module totalement refait (et renommé). Plus de problème de lenteur. 

 

EDIT 25/07/16 :

le module est lent à cause de la longue requête SQL.
 
 

 

featurebuddy.zip

post-1248856-0-86611500-1469726419_thumb.jpg

post-1248856-0-39952500-1469726467_thumb.jpg

Edited by alexper (see edit history)
  • Like 1
Link to comment
Share on other sites

  • 1 month later...

Attention : il y a des failles de sécurité dans ce module, comme par exemple:

 

$idProduct = $_GET['id_product'];

...

$sql = "

...

p.id_product = '".$idProduct."'

 

 

Avec prestashop préfère utiliser Tools::getValue que $_GET et $_POST

Pour éviter/limiter les failles met (int) devant, exemple:

 

$id_product = (int)Tools::getValue('id_product');

 

 

Pour les valeurs non-numériques utilise pSQL, exemple :

 

fvl1.value = '".$feature_value."'

devient

fvl1.value = '.pSQL($feature_value).'

 

 

 

Pour le prix, tu le récupères dans la table product, le problème c'est que ce prix ne tiens pas compte des taxes, ni de la devise, ni de remises, ni du groupe de clients... pour avoir le prix exact il faut utiliser la fonction Product::getPriceStatic

 

 

 

Comme ton module n'utilise pas _DB_PREFIX_ (par défaut ps_ ) pour les préfixes des tables, mais directement pojs_ ,  ce module est inutilisable.

Link to comment
Share on other sites

Bonsoir messieurs

 

Je viens de refaire ce module à 100%. Le lien est updaté ainsi que mon premier message.

Je vous avoue que je n'ai pas encore eu le temps de me pencher sur les points de sécurité dont vous parlez. Ce serait top si vous pourriez regarder la nouvelle version et me dire si c'est toujours autant vulnérable.

Link to comment
Share on other sites

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...