Volkrog Posted October 23, 2013 Share Posted October 23, 2013 Bonjour, Pour la création de ma boutique PrestaShop, je veux ajouter du code HTML dans les valeurs des caractéristiques (par exemple <ul>, <li>, <strong>). Le problèeme que je rencontre, c'est que les caractères "< > ; = { }" sont interdit dans les valeurs des caractéristiques produits. Savez-vous ou se trouve le fichier.php ou autre me permettant de modifier cette restriction ? Merci de votre aide Link to comment Share on other sites More sharing options...
herve25 Posted October 23, 2013 Share Posted October 23, 2013 Bonjour, Il faut que vous surchargiez la classe FeatureValue et la règle de validation du champ "value" /** * @see ObjectModel::$definition */ 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' => 255), ), ); Dans la définition, on peut voir que la valeur de la caractéristique est validée par la fonction "isGenericName", vous pouvez par example le remplacer par "isCleanHtml" ou tout autre fonction de la classe "Validate" ( si nécessaire même un créer une particulière) Link to comment Share on other sites More sharing options...
Éminéraux Posted May 8, 2014 Share Posted May 8, 2014 Bonjour, Ce topic m'intéresse car j'ai besoin d'ajouter un texte long en html (avec titres, différents paragraphes...) pour les valeurs d'une de mes caractéristiques. J'ai donc suivi la méthode d'Hervé : cela fonctionne car sur la page d'ajout de valeurs du back office, je ne suis plus limitée dans le nombre de caractères et il reconnait mes balises html. Mais ce n'est pas un réel éditeur html, donc une fois la valeur enregistrée, elle est retranscrite en texte simple et je ne peux rien mettre en forme. Quelqu'un a t-il une solution pour cela? Est-ce possible d'intégrer dans le backoffice un éditeur html, comme pour le descriptif produit? D'avance, merci! Link to comment Share on other sites More sharing options...
NicolasV Posted May 20, 2015 Share Posted May 20, 2015 Bonjour, J'en suis au même point, Après chaque enregistrement, les caractère HTML disparaisse même avec un controle isCleanHtml. J'ai même etnté avec isAnything (aucun controle). J'ai l'impression au'il faut modifier autre chose ... Une idée ? Merci Link to comment Share on other sites More sharing options...
prestasafe Posted July 29, 2015 Share Posted July 29, 2015 Je déterre tout ça, car de mon côté j'ai trouvé la solution. Il faut overrider la classe Product.php également. AU niveau de la méthode addFeaturesCustomToDB. remplacez public function addFeaturesCustomToDB($id_value, $lang, $cust) { $row = array('id_feature_value' => (int)$id_value, 'id_lang' => (int)$lang, 'value' => pSQL($cust)); return Db::getInstance()->insert('feature_value_lang', $row); } PAR public function addFeaturesCustomToDB($id_value, $lang, $cust) { $row = array('id_feature_value' => (int)$id_value, 'id_lang' => (int)$lang, 'value' => $cust); return Db::getInstance()->insert('feature_value_lang', $row); } en gros il faut dégager le pSQL() il faut aussi override la classe featureValue comme vu dans le précédent post. Enjoy Link to comment Share on other sites More sharing options...
prestasafe Posted July 29, 2015 Share Posted July 29, 2015 J'ai fait un petit tuto pour l'occasion: http://web-batier.com/ajouter-du-html-dans-les-carateristiques-produit-de-prestashop/ Link to comment Share on other sites More sharing options...
herve25 Posted July 30, 2015 Share Posted July 30, 2015 Bonjour, Merci pour ton tuto, qui explique bien comment faire.Par contre de mon point de vue ta méthodologie peut être améliorée.Tu copies/colles les classes de base dans ton dossier override/classes/ du coup c'est difficile d'isoler ce que tu as changé.Dans l'exemple de la surcharge produit je ferais plutôt comme ça : <?php /** * Surcharge de la classe Product */ class Product extends ProductCore { /** * Surcharge de la méthode pour permettre l'ajout de caractértiques HTML */ public function addFeaturesCustomToDB($id_value, $lang, $cust) { $row = array('id_feature_value' => (int)$id_value, 'id_lang' => (int)$lang, 'value' => $cust); return Db::getInstance()->insert('feature_value_lang', $row); } } Seul le code qui a changé est présent, ce qui permet de l'identifier très facilement :-) Link to comment Share on other sites More sharing options...
prestasafe Posted July 30, 2015 Share Posted July 30, 2015 Oui il est vrai que c'est plus simple, mais est ce que Prestashop va quand même prendre en compte les autre methodes de l'autre classe dans le dossier classes/ ? Car j'ai déjà essayé d'overrider juste la méthode, sans succès... Cordialement Link to comment Share on other sites More sharing options...
herve25 Posted July 30, 2015 Share Posted July 30, 2015 mais est ce que Prestashop va quand même prendre en compte les autre methodes de l'autre classe dans le dossier classes/ ? Car j'ai déjà essayé d'overrider juste la méthode, sans succès... Oui c'est le principe de l'héritage de classes Tu redéfinis uniquement les méthodes à modifier, les autres sont appelées dans la classe parente. Link to comment Share on other sites More sharing options...
quadricolore Posted January 24, 2018 Share Posted January 24, 2018 Bonjour à tous, je suis sur la version 1.6 et pour moi ca ne fonctionne pas. Je peux enregistrer le html mais une fois la page enregistrer la case est vide et pas de trace de mes caractéristiques en front. Auriez vous des pistes à me donner ? merci beaucoup ! 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