Jump to content

Augmenter la longueur des Valeurs Personnalisée dans Caractéristiques


Recommended Posts

Bonjour,
Je dois mettre en ligne des produits de phytothérapie et je souhait utiliser l'onglet caractéristiques pour y mettre leurs composition ainsi que leurs valeur nutritionnelle.
Cependant lorsque je veux rentrer en Valeur Personnalisée une composition un peu trop longue, j'ai les messages d'erreur suivants :
- le nom pour la caractéristique Largeur est trop long en Français (French)
- Vous n'avez pas la permission de changer quelque chose ici.

Le message me parait clair, il faudrait que je puisse augmenter la longueur maximum, le problème est que je ne sais pas sur que fichier intervenir. J'ai bien essayer d'aller voir dans les tables SQL mais je n'ai pas trouver.

Je vous remercie par avance pour votre réponse.

Cordialement

Link to comment
Share on other sites

Effectivement utiliser la description longue pour mettre ces informations serait une alternative, cependant j'aurais préférer que la description de mon produit apparaisse dans "Description" et que si l'acheteur le souhaite il puisse avoir plus d'informations dans l'onglet "Caractéristiques".
Je suis sur la version 1.4 de Prestashop, cependant si la modification s'avérait trop compliquée ou rendant l'ensemble du système instable, je me contenterais de la description longue, ou opterais pour un module permettant de rajouter des onglets.

En attendant si vous avez des réponses pour apporter les modifications, ça m'intéresse quand même!!!

Cordialement

Link to comment
Share on other sites

Vous pouvez essayer la chose suivante :

Copiez le fichier classes/FeatureValue.php dans override/classes/

Ensuite modifiez le pour changer la ligne

class FeatureValueCore extends ObjectModel



en

class FeatureValue extends FeatureValueCore 



Modifiez ensuite la ligne

     protected     $fieldsSizeLang = array('value' => 255);



en

     protected     $fieldsSizeLang = array('value' => 5000);



Ensuite, dans votre base de données, utilisez la requete suivante (faites un backup avant) :

ALTER TABLE `ps_feature_value_lang` CHANGE `value` `value` VARCHAR( 5000 )



Essayez ensuite d'enregistrer des caractéristiques plus longues.

Si vous constatez des problèmes de fonctionnement, il vous suffira de supprimer le fichier override/classes/FeatureValue.php

  • Like 1
Link to comment
Share on other sites

Merci pour cette réponse, je viens d'essayer ce matin mais malheureusement ça ne fonctionne pas, l'ajout de nouvelles valeur ne s'affiche pas !! J'ai donc supprimer le fichier override/classes/FeatureValue.php et ça refonctionne.
Je vais donc étudier d'autres possibilités et le cas échéant me rabattre sur la description longue !!
En tout cas merci pour la rapidité de cette réponde !!
Cordialement

Link to comment
Share on other sites

  • 5 months later...
  • 4 months later...
  • 10 months later...

Alors je me répond pour prestashop 1.5 :

il faut surcharger la classe FaetureValue.php juste avec la déclaration de definition (ici modifié à 5000 caractères au lieu des 255 )

public static $definition = array( 'table' => 'feature_value', 'primary' => 'id_feature_value', 'multilang' => true, 'fields' => array( 'id_feature' => array('type' => self::TYPE_INT, 'validate' => 'isUnsignedId', 'required' => true), 'custom' => array('type' => self::TYPE_BOOL, 'validate' => 'isBool'), // Lang fields 'value' => array('type' => self::TYPE_STRING, 'lang' => true, 'validate' => 'isGenericName', 'required' => true, 'size' => 5000), ), );

 

et modifier le type en "text" du champs "value" dans la table "feature_value_lang".

 

Voilà comment utiliser les caractéristiques en plein text !!

Edited by Airclic (see edit history)
Link to comment
Share on other sites

  • 1 month later...

EDIT :

En fait j'ai trouvé.

Il ne faut pas oublier de fermer la balise php en bas du fichier surcharge...

Alors que dans fichier original de la classe la balise n'est pas fermée en bas du fichier...

 

Bonjour ,

 

Merci pour ta méthode Airclic.

Ca marche si je modifie la classe featureValue.php dans le répertoire class\. Mais pas bien, c'est sûr.

 

Mais ça ne marche pas pour moi si je fais cela :

1- je copie class\featureValue.php dans override\classes\featureValue.php

2- je modifie la valeur 255-> 5000

3- je relance l'admin : j'ai le même message.

 

C'est bien comme cela que l'on surcharge cette classe ?

 

D'avance merci de ton aide.

 

Meilleures slts,

Jérôme.

Edited by perrauje (see edit history)
Link to comment
Share on other sites

  • 9 months later...

réponse un peu tardive, ...

 

en ps-1.5 j'ai réussi à surcharger la classe avec la méthode ci-dessus mais il faut aussi supprimer le fichier [PS_HOME]/cache/class_index.php (faire une sauvegrde, au cas où, ...)

 

ensuite faire F5 dans le navigateur et le fichier est regénéré avec la classe surchargée enregistrée

  'FeatureValue' => 'override/classes/FeatureValue.php',
  'FeatureValueCore' => 'classes/FeatureValue.php',

Edited by sylbal (see edit history)
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...