FRB Posted July 4, 2023 Share Posted July 4, 2023 Bonjour, - j'ai ajouté un champ texte à la table address : fac, VARCHAR 3. - j'ai overridé la classe Address comme suit : -------------------------------- <?php class Address extends AddressCore { /** @var fac*/ public $fac; public static $definition = array( 'table' => 'address', 'primary' => 'id_address', 'fields' => array( 'id_customer' => array('type' => self::TYPE_INT, 'validate' => 'isNullOrUnsignedId', 'copy_post' => false), 'id_manufacturer' => array('type' => self::TYPE_INT, 'validate' => 'isNullOrUnsignedId', 'copy_post' => false), 'id_supplier' => array('type' => self::TYPE_INT, 'validate' => 'isNullOrUnsignedId', 'copy_post' => false), 'id_warehouse' => array('type' => self::TYPE_INT, 'validate' => 'isNullOrUnsignedId', 'copy_post' => false), 'id_country' => array('type' => self::TYPE_INT, 'validate' => 'isUnsignedId', 'required' => true), 'id_state' => array('type' => self::TYPE_INT, 'validate' => 'isNullOrUnsignedId'), 'alias' => array('type' => self::TYPE_STRING, 'validate' => 'isGenericName', 'required' => true, 'size' => 32), 'company' => array('type' => self::TYPE_STRING, 'validate' => 'isGenericName', 'size' => 255), 'lastname' => array('type' => self::TYPE_STRING, 'validate' => 'isName', 'required' => true, 'size' => 255), 'firstname' => array('type' => self::TYPE_STRING, 'validate' => 'isName', 'required' => true, 'size' => 255), 'vat_number' => array('type' => self::TYPE_STRING, 'validate' => 'isGenericName'), 'address1' => array('type' => self::TYPE_STRING, 'validate' => 'isAddress', 'required' => true, 'size' => 128), 'address2' => array('type' => self::TYPE_STRING, 'validate' => 'isAddress', 'size' => 128), 'postcode' => array('type' => self::TYPE_STRING, 'validate' => 'isPostCode', 'size' => 12), 'city' => array('type' => self::TYPE_STRING, 'validate' => 'isCityName', 'required' => true, 'size' => 64), 'other' => array('type' => self::TYPE_STRING, 'validate' => 'isMessage', 'size' => 300), 'phone' => array('type' => self::TYPE_STRING, 'validate' => 'isPhoneNumber', 'size' => 32), 'phone_mobile' => array('type' => self::TYPE_STRING, 'validate' => 'isPhoneNumber', 'size' => 32), 'dni' => array('type' => self::TYPE_STRING, 'validate' => 'isDniLite', 'size' => 16), 'deleted' => array('type' => self::TYPE_BOOL, 'validate' => 'isBool', 'copy_post' => false), 'date_add' => array('type' => self::TYPE_DATE, 'validate' => 'isDate', 'copy_post' => false), 'date_upd' => array('type' => self::TYPE_DATE, 'validate' => 'isDate', 'copy_post' => false), ), ); public function __construct($id = null, $full = false, Context $context = null) { self::$definition['fields']['fac'] = array('type' => self::TYPE_STRING, 'validate' => 'isName'); parent::__construct($id, $full, $context); } } -------------------------------------- Je veux utiliser ce champ dans un .tpl (address-selector-block.tpl) : {$customer.addresses[$address.id].fac } et rien ne s'affiche. D'autres variables Smarty s'affichent sans problème, par ex : {$customer.addresses[$address.id].postcode } mais pas ma variable fac... Quelqu'un aurait-il une lumière à m'apporter ? Merci Link to comment Share on other sites More sharing options...
Eolia Posted July 4, 2023 Share Posted July 4, 2023 Avez-vous vidé le cache Prestashop ? Autrement votre override n'est pas lu. Link to comment Share on other sites More sharing options...
FRB Posted July 4, 2023 Author Share Posted July 4, 2023 J'ai supprimé /var/cache/prod/class_index.php. Et j'ai vidé le cache via le back office... Link to comment Share on other sites More sharing options...
Mediacom87 Posted July 7, 2023 Share Posted July 7, 2023 Bonjour, Il ne faut pas modifier la structure des tables natives. Il est préférable de passer par une nouvelle table pour faire le lien entre la donnée native et cette nouvelle donnée. Link to comment Share on other sites More sharing options...
FRB Posted July 7, 2023 Author Share Posted July 7, 2023 Cela ne répond pas à mon problème ... J'ai déjà modifié des tables avec override pour utiliser les données, et ça fonctionnait. Link to comment Share on other sites More sharing options...
Mediacom87 Posted July 7, 2023 Share Posted July 7, 2023 Il y a 5 heures, FRB a dit : Cela ne répond pas à mon problème ... J'ai déjà modifié des tables avec override pour utiliser les données, et ça fonctionnait. Même si vous l'avez déjà fait, cela reste une mauvaise pratique. Après, si vous préférez continuer dans la mauvaise direction, pas de souci à mon niveau, je n'intervenais que pour vous informer et informer les personnes qui pourraient lire votre topic. 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