flipflipM Posted March 7, 2023 Share Posted March 7, 2023 (edited) Bonjour à tous, J'ai besoin d'afficher plus de 255 caractères dans les caractérisques produits. En cherchant je suis tombé sur ce post : J'ai modifié le champ dans la base (de varchar à text) et j'ai créé un override de la class FeatureValue.php <?php /** Override perso des class standard Prestashop */ /** * Class FeatureValueCore. */ // Augmente le nombre de caractères autorisé pour les champs Caractéristique (Feature Value) class FeatureValueCore extends ObjectModel { /** @var int Group id which attribute belongs */ public $id_feature; /** @var string|array Name */ public $value; /** @var bool Custom */ public $custom = 0; /** * @see ObjectModel::$definition */ public static $definition = [ 'table' => 'feature_value', 'primary' => 'id_feature_value', 'multilang' => true, 'fields' => [ 'id_feature' => ['type' => self::TYPE_INT, 'validate' => 'isUnsignedId', 'required' => true], 'custom' => ['type' => self::TYPE_BOOL, 'validate' => 'isBool'], /* Lang fields */ 'value' => ['type' => self::TYPE_STRING, 'lang' => true, 'validate' => 'isGenericName', 'required' => true, 'size' => 1024], ], ]; } J'ai purgé le cache et activé l'override dans PS. Maintenant lorsque je veux éditer une fichier produit j'ai l'erreur : Quote Attempted to call an undefined method named "getFeatureValueLang" of class "FeatureValue". [Symfony\Component\Debug\Exception\UndefinedMethodException 0] Si je supprime mon override tout revient à la normale. J'ai beau retourné le problème dans tout les sens je ne comprends pas le problème. Avez-vous une idée ? Je suis en PS 1.7.8.7 Merci d'avance. Edited March 7, 2023 by flipflipM (see edit history) Link to comment Share on other sites More sharing options...
flipflipM Posted March 7, 2023 Author Share Posted March 7, 2023 Je me répond à moi même ou pour une autre personne avec le même problème. Il faut override la class complète. Link to comment Share on other sites More sharing options...
Mediacom87 Posted March 7, 2023 Share Posted March 7, 2023 Bonjour, Je ne sais pas dans quel cas on peut avoir besoin de plus de 255 caractères pour une caractéristique, mais à mon avis c'est un choix d'usage qui ne doit pas être bon et pourrait certainement être géré différemment. Link to comment Share on other sites More sharing options...
Eolia Posted March 7, 2023 Share Posted March 7, 2023 Il y a 1 heure, flipflipM a dit : Je me répond à moi même ou pour une autre personne avec le même problème. Il faut override la class complète. Non, il suffit d'overrider le constructeur^^ class FeatureValueCore extends ObjectModel { public function __construct($id = null, $id_lang = null, $id_shop = null) { //Définition des nouveaux champs self::$definition['fields']['value'] = [ 'type' => self::TYPE_STRING, 'lang' => true, 'validate' => 'isGenericName', 'required' => true, 'size' => 1024 ]; return::parent::__construct(($id, $id_lang, $id_shop); } } Link to comment Share on other sites More sharing options...
flipflipM Posted April 19, 2023 Author Share Posted April 19, 2023 @Eolia j'ai essayé de le faire uniquement sur le constructeur mais ça n'a pas marché, à chaque fois j'obtenais une page blanche :( Link to comment Share on other sites More sharing options...
Eolia Posted April 19, 2023 Share Posted April 19, 2023 Il faudrait voir comment vous l'avez écrit et si votre table est configurée en mode TEXT pour ce champ. Link to comment Share on other sites More sharing options...
Recommended Posts
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 accountSign in
Already have an account? Sign in here.
Sign In Now