Jump to content

[RESOLU] Augmentation du nombre de caractères pour les caractéristiques


Recommended Posts

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 by flipflipM (see edit history)
Link to comment
Share on other sites

  • flipflipM changed the title to [RESOLU] Augmentation du nombre de caractères pour les caractéristiques
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

  • 1 month 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...