Jump to content

[Résolu] HTML dans le champs description de catégorie


Recommended Posts

Bonjour,

J'ai changer le champs textarea de description des catégories par un champs avec tinymce.

Lors de l'enregistrement de ce champs Prestahop me supprime les balises HTML.

Je cherche où je peux modifier ce comportement mais je ne trouve pas.

Quelqu'un a une idée?

Merci

Yannick

Link to comment
Share on other sites

Bonjour,

Apparemment c'est donc la fonction psql() qui vire les tags HTML appelé par la méthode getTranslationsFields() de la classe objectmodel. Ce que je ne comprend pas c'est pourquoi la fonction psql n'est pas appelé avec le paramètre html.
Ce que je comprend encore moins c'est pourquoi ca marche bien avec les produits...

Toujours pas d'idée de votre côté?

Merci

Yannick

Link to comment
Share on other sites

Bon j'ai trouvé une solution,

Il doit surement y avoir plus simple mais je vais vous expliquer mes modifications.

Fichier Category.php (classe)
Remplacer :

protected     $fieldsValidateLang = array('name' => 'isCatalogName', 'link_rewrite' => 'isLinkRewrite', 'description' => 'isCleanHtml',


par :

protected     $fieldsValidateLang = array('name' => 'isCatalogName', 'link_rewrite' => 'isLinkRewrite', 'description' => 'isHtml',



Fichier Validate.php (Classe)
Ajouter la méthode

static public function isHtml($html)
   {
       return true;
   }



Fichier Objectmodel.php (Classe)
remplacer :

if (isset($this->{$field}[$language['id_lang']]) AND !empty($this->{$field}[$language['id_lang']]))
                   $fields[$language['id_lang']][$field] = pSQL($this->{$field}[$language['id_lang']]);


par :

if (isset($this->{$field}[$language['id_lang']]) AND !empty($this->{$field}[$language['id_lang']])){
                   if(isset($this->fieldsValidateLang[$field]) && $this->fieldsValidateLang[$field]=='isHtml'){
                       $fields[$language['id_lang']][$field] = pSQL($this->{$field}[$language['id_lang']],'true');
                   }else{
                       $fields[$language['id_lang']][$field] = pSQL($this->{$field}[$language['id_lang']]);
                   }

               }



A priori ca marche, je vais vérifier que ca ne créé pas de bug ailleurs mais je ne pense pas vu que j'ai créé une nouvelle méthode dans la classe validate.

Yannick

Link to comment
Share on other sites

  • 1 month later...
  • 3 months later...

Bonsoir,

je cherche à faire la même chose pour inclure du html sur qqs traductions des champs des modules qui se trouve dans le BO (la langue française à besoin de tellement de mots par rapport à l'anglais qu'un simple


me serait très utile) :

outils->Traductions->Modifier les traductions->Traductions des modules

merci d'avance

sur ce je file au lit

bonne nuit à ceux qui sont encore là

Link to comment
Share on other sites

J'ai essayé cette astuce, mais cela ne fonctionne pas.

Quand je veux éditer mes catégories, le champ description reste identique. Pas d'éditeur de texte pour insérer du HTML.


Cette méthode ne permet pas d'avoir un éditeur de texte, mais permet d'inclure du code html dans la description des catégories sans que ce soit enlevé quand on valide, il faut avoir quelques connaissances en langage html, mais c'est super simple et bien pratique pour inclure des liens.

sur ce, je vous dis à la semaine prochaine, je laisse de côté mon projet pour ce WE, je pars sur un salon tt le WE.

bon WE
Link to comment
Share on other sites

par exemple tu veux écrire : télécharger le super logiciel e-commerce Prestashop en cliquant ici
avec le lien sur en cliquant ici

et bien tu écris ds le champ de description de ta catégorie :

télécharger le super logiciel e-commerce Prestashop en cliquant ici



et côté FO en cliquant ici sera de la couleur d'un lien sans le code html

allez bonne nuit et à mardi

Link to comment
Share on other sites

  • 1 month later...

Bonjour tout le monde,

Avec la version 1.2.5

il faut modifier le fichier ObjectModel.php différemment.

cherchez la ligne 295 env

if (isset($this->{$field}[$language['id_lang']]) AND !Tools::isEmpty($this->{$field}[$language['id_lang']]))


et non pas

if (isset($this->{$field}[$language['id_lang']]) AND !empty($this->{$field}



puis faire la meme modification.

Pour ce qui sont un peu stréssé dans les manips.
Voila la fonction complete avec le code bien clair et espacé:

    
protected function getTranslationsFields($fieldsArray)
   {
       /* WARNING : Product do not use this function, so do not forget to report any modification if necessary */
        if (!Validate::isTableOrIdentifier($this->identifier))
            die(Tools::displayError());

       $fields = array();
       $languages = Language::getLanguages();
       $defaultLanguage = Configuration::get('PS_LANG_DEFAULT');
       foreach ($languages as $language)
       {
           $fields[$language['id_lang']]['id_lang'] = $language['id_lang'];
           $fields[$language['id_lang']][$this->identifier] = intval($this->id);
           foreach ($fieldsArray as $field)
           {
                /* Check fields validity */
                if (!Validate::isTableOrIdentifier($field))
                    die(Tools::displayError());

               /* Copy the field, or the default language field if it's both required and empty */
               if (isset($this->{$field}[$language['id_lang']]) AND !Tools::isEmpty($this->{$field}[$language['id_lang']]))
                               {
                                   if(isset($this->fieldsValidateLang[$field]) && $this->fieldsValidateLang[$field]=='isHtml')
                                   {
                                       $fields[$language['id_lang']][$field] = pSQL($this->{$field}[$language['id_lang']],'true');
                                   }
                                   else
                                   {
                                       $fields[$language['id_lang']][$field] = pSQL($this->{$field}[$language['id_lang']]);
                                   }
                               }
                               elseif (in_array($field, $this->fieldsRequiredLang))
               {
                                       $fields[$language['id_lang']][$field] = pSQL($this->{$field}[$defaultLanguage]);
                               }
                               else
                               {
                                   $fields[$language['id_lang']][$field] = '';
                               }
           }
       }

       return $fields;
   }



CA MARCHE O B L I G A T O I R E M E N T.
Si il y a un pb.
relisez votre code.

Au pire j'ai mis les 3 fichiers déjà patché en pièce jointe.

Fichiers: Category.php (classe)
Validate.php (Classe)
Objectmodel.php (Classe)

Voili voila.. ;-)

Category.php

Validate.php

ObjectModel.php

Link to comment
Share on other sites

  • 1 month later...
  • 2 weeks later...

Salut à tous,

La solution proposée marche parfaitement à un détail prêt : Quand on passe la souris au dessus du nom des catégories (dans le menu à gauche des catégories) alors l'info bulle qui est affichée contient le code HTML...

Savez vous ce qu'il faut toucher pour se débarrasser de ce prb ?

Link to comment
Share on other sites

  • 2 weeks later...

de la liste des catégories dans l'admin, pour les descriptions suivant ou le lien était mis il y avait un bug d'affichage car la cesure de 400 caractères arrivait au milieu du lien avant le

Pour corriger, j'ai modifier la ligne 1200 du AdminTab.php (PS 1.2.5) :

$echo = ($key == 'price' ? round($tr[$key], 2) : isset($params['maxlength']) ? Tools::substr($tr[$key], 0, $params['maxlength']).'...' : $tr[$key]);



en

$echo = ($key == 'price' ? round($tr[$key], 2) : isset($params['maxlength']) ? Tools::substr(strip_tags($tr[$key]), 0, $params['maxlength']).'...' : strip_tags($tr[$key]))

;

Ca supprime les liens et code html à l'affichage pour la liste de l'admin !

Link to comment
Share on other sites

  • 3 weeks later...

Pour ceux qui cherche encore comment faire pour ne plus avoir de html dans la description dans le block "blockcategories" il suffit de faire ceci dans category-tree-branch.tpl

Trouver

{$node.name|escape:htmlall:'UTF-8'}



Remplacer par

{$node.name|escape:htmlall:'UTF-8'}



En gros, j'ai remplacé ceci:

title="{$node.desc|escape:htmlall:'UTF-8'}"


par

title="{$node.desc|strip_tags}"



A+

Link to comment
Share on other sites

  • 2 weeks later...

Bonjour,

Est ce que les infos bulles (survol sur les catégories) c'est important pour le référencement ou pour autre chose ?
Sinon comment pourrait on afficher la description courte ou meta description dans l'info bulle à la place de la description langue.

merci d'avance pour vos réponses et votre temps.

Link to comment
Share on other sites

  • 2 weeks later...

Bonjour a tous,

Merci pour cette super modif...

Tout fonctionne parfaitement, il y a juste 1 point ou je sèche complet....

Je voudrai savoir comment faire pour changer ce qu'il y a d'écrit au survole de la sourie sur les sous-categorie...

J'ai suivi les conseils de Natsu pour les categorie ce qui fonctionne parfaitement,

mais j'aimerai faire pareil avec les sous- catégories.

Merci d'avance.

@++

Link to comment
Share on other sites

  • 3 weeks later...
  • 1 month later...

Bonjour,

En fait j'ai trouvé une solution plus simple pour permettre la conservation du code html.
En tous cas, une solution qui correspond plus à la logique de prestashop.
En fait je me suis basé sur le fonctionnement des Products.

Il n'y a qu'une seule modification a effectuer.
Dans classes/Category.php ligne 98 fonction "getTranslationsFieldsChild" :

remplacer :

public function getTranslationsFieldsChild()
   {
       parent::validateFieldsLang();
       return parent::getTranslationsFields(array('name', 'description', 'link_rewrite', 'meta_title', 'meta_keywords', 'meta_description'));
   }



par :

public function getTranslationsFieldsChild()
   {
       self::validateFieldsLang();

       $fieldsArray = array('name', 'link_rewrite', 'meta_title', 'meta_keywords', 'meta_description');
       $fields = array();
       $languages = Language::getLanguages();
       $defaultLanguage = Configuration::get('PS_LANG_DEFAULT');
       foreach ($languages as $language)
       {
           $fields[$language['id_lang']]['id_lang'] = $language['id_lang'];
           $fields[$language['id_lang']][$this->identifier] = intval($this->id);
           $fields[$language['id_lang']]['description'] = (isset($this->description[$language['id_lang']])) ? Tools::htmlentitiesDecodeUTF8(pSQL($this->description[$language['id_lang']], true)) : '';
           foreach ($fieldsArray as $field)
           {
               if (!Validate::isTableOrIdentifier($field))
                   die(Tools::displayError());

               /* Check fields validity */
               if (isset($this->{$field}[$language['id_lang']]) AND !empty($this->{$field}[$language['id_lang']]))
                   $fields[$language['id_lang']][$field] = pSQL($this->{$field}[$language['id_lang']]);
               elseif (in_array($field, $this->fieldsRequiredLang))
                   $fields[$language['id_lang']][$field] = pSQL($this->{$field}[$defaultLanguage]);
               else
                   $fields[$language['id_lang']][$field] = '';
           }
       }
       return $fields;
   }



J'ai testé et ça fonctionne bien pour moi sur un Prestashop 1.2.4

Pour d'autres version, s'il y a des soucis, le principe est simple, il suffit de reprendre le code de la même fonction dans le fichier classes/Product.php, ensuite il faut virer "description" de $fieldsArray, puis supprimer la ligne qui commence par :

$fields[$language['id_lang']]['description_short']...



En espérant avoir pu apporter une aide à certains.

  • Like 1
Link to comment
Share on other sites

  • 3 weeks later...

Merci ça marche aussi très bien avec la Version 1.3.1.1 :)

y aurait-il un moyen d'intégrer un éditeur de texte dans ce champs ? car vu que c mon client qui rempli sa boutique et qu'il n'y connais rien en HTML, ça serai bien pratique, non ?

Merci en tout cas :)

Link to comment
Share on other sites

  • 1 month later...

bonjour,

La description de l'infobulle est elle importante pour le référencement?

Si je sors totalement la description des catégories dans le menu "infobulle" quelle est l'incidence?

En gros à quoi sert l'infobulle? et est elle importante?


Merci d'avance pour vos réponses

Link to comment
Share on other sites

  • 3 weeks later...
  • 2 weeks later...

Ca marche effectivement, il faut que je me penche sur les infos bulles , par contre ca me rajoute des


, je pense que c'est du à la conversion de l'ancien textarea mais je ne sais pas ou ?

Edit :
Concernant les catégories ça fonctionne le striptag mais attention à ne pas copier/coller la ligne du post précédent,
il faut juste remplacer html.... par striptag dans title, (le if n’apparaît pas dans le poste précédent).
Et il faut modifier le tpl dans le répertoire du module blockcategorie :) et non du template (j'ai perdu 10 minutes à comprendre)


Par contre j'ai toujours trop de


dans mon description de catégorie, ou sont ils rajoutés ?

Link to comment
Share on other sites

  • 1 month later...

Merci pour ces astuces ! De mon côté la modification fonctionne dans les catégories mais pas dans les infos-bulles, qui persistent à me mettre les balises (ce qui ne fait vraiment pas joli...)
J'ai essayé la modification de Natsu et je comprends son idée mais chez moi ça ne fonctionne pas.
Quelqu'un a réussi à se débarrasser des balises dans les infos bulles ?

Link to comment
Share on other sites

  • 3 weeks later...
Bonjour,



J'ai testé et ça fonctionne bien pour moi sur un Prestashop 1.2.4

Pour d'autres version, s'il y a des soucis, le principe est simple, il suffit de reprendre le code de la même fonction dans le fichier classes/Product.php, ensuite il faut virer "description" de $fieldsArray, puis supprimer la ligne qui commence par :

$fields[$language['id_lang']]['description_short']...



En espérant avoir pu apporter une aide à certains.



Could you please translate me the last part. It was not very clear when i use Google Translate.
Maybe you could post your whole post in English and comment if this also works on 1.3.2.3.
(i implemented this and it works for me on 1.3.2.3)

I wonder how you can produce such a nice code. Do you work with the PS team? If not maybe you can add this to the Feature request list ?
Link to comment
Share on other sites

Je retire mon précédent post

En fait cela a très bien fonctionné sur la première page des catégories mais après page blanche et bug quand je veux aller dans les produits des sous catégories qui je le précise n'avaient pas de balise

J'ai supprimé produit et sous catégories mais erreur en création pour les réimplanter

j'utilise la dernière version de prestashop

Cordialement

Link to comment
Share on other sites

  • 2 months later...

ATTENTION ! Incompatible avec la version 1.3 ==> bug BO blanc.

Technique : Commencez par sauvegarder vos 3 fichiers (category.php ; Validate.php ; ObjectMoodel.php)
Puis accèdez à votre BO puis à la catégorie dans laquel vous souhaitez mettre du html.
modifier et uploader votre trois fichier. Intégrez le html dans le champ description de la catégorie. Sauvegardez, testez.
Puis remplacer les fichiers modifier par les fichiers sauvegardé !

Technique archaïque mais qui fonctionne.

Bonne chance.

Link to comment
Share on other sites

  • 2 weeks later...

Bonjour,

La technique du poste #32 fonctionne avec la version 1.3.6 par contre j'ai un problème quand j'insère un tableau en html j'ai plein de
qui s'ajoute au dessus sans raison !! et plus le tableau est grand plus il y a de
... bizarre

Link to comment
Share on other sites

  • 3 weeks later...

voici la solution pr prestashop 1.4 finale tester et approuver
j'ai rajouter en piece jointe les fichier deja modifier il vous suffit juste de les remplacer
classe/AdminTab.php
classe/Category.php
adm/tabs/AdminCategories.php
j'ai integrer le strip_tag dans la description des categorie mais rien a faire je me retrouve toujours avec une description en html.
si quelqu'un trouve la solution merci de la faire partager
en attendant je crois que je vais annuler la description au survol de la sourie.

AdminCategories.php

Category.php

AdminTab.php

Link to comment
Share on other sites

  • 2 weeks later...

AAAAAhh Merci pour la PS 1.4. Et oui pour le référencement aussi c'est mieux.. Il faudrait en parler aux créateurs de prestashop car c'est un point qui je suppose fera l'unanimité !

Merci pour votre travail.. Sa marche impeccable et en plus avec un éditeur de texte qu'elle bonheur :-)

Link to comment
Share on other sites

jai trouve la solution
remplacer dans category-tree-branch.tpl du modules categorie

{$node.name|escape:html:'UTF-8'}


par

{$node.name|escape:html:'UTF-8'}


en fait vous ne verrez pas apparaitre de suite le changement car dans votre BO
vous n'avez pas forcer la compilation et vous avez activer le cache
Attendez quelques jours et le changement se fera automatiquement

Link to comment
Share on other sites

Bonjour, moi j'ai un soucis avec le

Quoi que je fasse dès que je met un titre

une balise

s'incère sous le titre. Ca se passe dès qu'il y a un retour à la ligne ou qu'il y a une autre balise

,

, etc..
Pourtant à la base l'éditeur de texte ne fait sa..

Y à t'il une solution car j'ai essayé de toutes les manières possible et pas moyen de l'éviter se



Prestashop 1.4


Merci..

Link to comment
Share on other sites

  • 3 weeks later...
  • 4 weeks later...

Pour la version 1.4.1 les fichiers ci-dessus fonctionnent, les balises html sont autorisé. Seul différence avec la version 1.4.0.17 c'est qu'il n'y a plus d'éditeur de texte. Comme il y a eu une amélioration de l'éditeur de texte de prestashop, peut-être que le code pour l’appeler est différend..?! Et du coup il n'apparait plus ?!

Link to comment
Share on other sites

  • 3 weeks later...
voici la solution pr prestashop 1.4 finale tester et approuver
j'ai rajouter en piece jointe les fichier deja modifier il vous suffit juste de les remplacer
classe/AdminTab.php
classe/Category.php
adm/tabs/AdminCategories.php
j'ai integrer le strip_tag dans la description des categorie mais rien a faire je me retrouve toujours avec une description en html.
si quelqu'un trouve la solution merci de la faire partager
en attendant je crois que je vais annuler la description au survol de la sourie.


Thanks a lot, it works perfectly on 1.4.1.
Link to comment
Share on other sites

J'ai trouvé pour les BR :

fichier category.php
remplacer la ligne 52 par :
$category->description = $category->description;

Ce qui revient au meme de supprimer la ligne :)

Voila


Pourrais tu donner le code qu'il y a à cette fameuse ligne ? Parce que moi je n'ai rien et je ne vois pas trop ce qu'il faut remplacer autour de cette ligne qui pourrait correspondre à ce que je cherche...Et c'est bien /classes/Category.php ?

Merci !
Link to comment
Share on other sites

Bonjour,

Voici après recherche, ce qui me semble être la meilleure solution pour les versions 1.4 .
Il suffit de placer le fichier ci-joint dans override/classes/ . Cela devrait permettre la mise a jour de Presta sans soucis !

Explication :
Pour tous les objects de Prestashop (Category, Suppliers,...) , hors Product qui avait un traitement spécial, lorsque Prestashop récupère les traductions, la fonction pSQL est utilisé pour formater ces champs. Par défaut cette fonction supprime le formatage. J'ai simplement précisé a chaque appel de cette fonction, le second paramètre (HTML ou non) a "true".

J'espère que ça vous aidera ! :)

ObjectModel.php

Link to comment
Share on other sites

Bonjour,
j'ai essayé la solution de dadj2408 (post 46) j'ai changé les fichiers c'est ok ça fonctionne sur la 1.4.3, sauf que dans le BO Accueil est vide et Préférences> SEO vide aussi, le reste fonctionne.

J'ai du coup remis le fichier AdminTab.php ( de Prestashop 1.4.3) dans Classe et le BO re fonctionne normalement. et a priori le TyniMce fonctionne bien dans les catégories.

Le fichier de Mr Manchot est aussi ok.

Ce serait sympa que la team Prestashop, mette de base TyniMce dans les catégories, ça ferai en sorte que ce soit codé correctement sur la dernière versions des fichiers livrés avec chaque version de Prestashop et évitera les bugs et failles possibles, ( ben oui j'ai 2 pieds gauche pour programmer :-) )

Link to comment
Share on other sites

Bonjour à tous,

Notre boutique, est sous prestashop 1.3.3.0, nous avons installé prestacatégorie, qui permet de modifier le texte des catégorie en HTML + editeur de CSS, par contre nous avons cet effet tres genant pour le referencement du texte HTML qui apparait lors du passage de la souris sur les catégories.

Nous avons modifier le code de category-tree-branch.tpl selon la méthode de dadj2408.

Combien de temps faut il attendre avant d avoir un resultat ?

Est ce la bonne soluce pour la version 1.3.3.0 ?

Finalement la solution a été trouvée par un super developpeur je vous le conseille, au besoin ctc Kinghousse pour avoir son contact.
Voici son site : http://www.myphotorescue.com

Link to comment
Share on other sites

Bonsoir,

Voilà tout marche nikel sauf que j'ai fait une petite erreur car j'ai voulu centrer mon texte dans la description de la catégorie et j'ai mis <style text-align:center">Le texte</style>

et depuis je ne plus plus éditer la catégorie voilà ce que ça me donne (voir pièce-jointe)

Donc la première catégorie je peut l'éditer et pour la 2 ème je peut rien faire dessus :/

Merci de vos réponses !

48686_KiMLYXRXzw33BFij6Mtj_t

Link to comment
Share on other sites

voici la solution pr prestashop 1.4 finale tester et approuver
j'ai rajouter en piece jointe les fichier deja modifier il vous suffit juste de les remplacer
classe/AdminTab.php
classe/Category.php
adm/tabs/AdminCategories.php
j'ai integrer le strip_tag dans la description des categorie mais rien a faire je me retrouve toujours avec une description en html.
si quelqu'un trouve la solution merci de la faire partager
en attendant je crois que je vais annuler la description au survol de la sourie.



Hello,

Can i use this files for Prestashop 1.4.3 ? Thanks
Link to comment
Share on other sites

  • 3 weeks later...

Merci pour les infos, avec la solution de MrManchot et la modif du fichier admin/tabs/AdminCategories, cela fonctionne.

La solution d'override est effectivement meilleure car on ne touche pas aux classes du coeur de Prestashop (et on peut donc faire les mises à jour).

Link to comment
Share on other sites

Pour régler le problème des <br> qui viennent s'ajouter, voici une solution :

  • Créer un fichier override/controllers/CategoryController.php
  • Y étendre la classe CategoryControllerCore (voir fichier joint)
  • Commenter l'appel à la fonction "parent::process()" sinon la fonction nl2br sera appliquée par la classe du coeur
  • commenter aux environs de la ligne "40" la fonction $this->category->description = nl2br($this->category->description);

 

Je vous joins le fichier à placer dans override/controllers

 

En espérant que ca puisse aider..!

CategoryController.php

  • Like 1
Link to comment
Share on other sites

je ne comprend pas , j'ai modifié les 3 fichiers (admin)

+ objectmodel

et lorsque j'edite une categorie , j'ai bien la description enrichi mais je ne peux rien faire lorsque je clique sur html ou bien sur gras ect ...

j'ai prestashop 1.44

Link to comment
Share on other sites

  • 1 month later...

Bonjour,

 

Version 1.4.4.1 (la dernière à la date du 13/9/2011)

 

Pour synthétiser

J'ai donc mis en place le fichier objectmodel du post 61 dans ovveride/classes de MrManchot

Pour oter le code htlm au survol de la souris sur les catégories,

J'ai copié le module blockcategories dans themes/montheme/modules

 

puis j'ai appliqué la méthode de dajd2408 post 54 sur le fichier category-tree-branch.tpl

{$node.desc|escape:html:'UTF-8'}"

par

{$node.desc|strip_tags:'UTF8'|escape:html:'UTF-8'}"

 

Ce qui permet de ne pas toucher au module de base fourni par prestashop,

 

Corinne

Link to comment
Share on other sites

  • 3 weeks later...
  • 4 weeks later...

Bonjour,

Pour régler le problème des balises HTML dans la balise title :

 

Remplacer le title :

title="{$node.desc|escape:html:'UTF-8'}"

 

Par :

title="{$node.desc|strip_tags:'UTF-8'|escape:'htmlall':'UTF-8'}"

 

Marche bien sur prestashop 1.4.4.0, en espérant que ça aide, cheers :)

Link to comment
Share on other sites

  • 5 months later...
  • 3 weeks later...

Hello,

 

Je suis nouvelle sur Prestabox, comment je peux accéder au code source pour modifier les fichiers car je suis assez limitée coté développement... J'ai la version 1.4 et souhaite donc ajouter un lilen dans le texte description d'une catégorie.

 

Merci beaucoup pour votre aide.

Link to comment
Share on other sites

  • 1 month later...
  • 4 months later...
  • 2 months later...

Pour info aussi cela fonctionne sur ma 1.5.2

 

Cependant, j'ai le début de la description qui s'affiche en haut de la catégorie suivi de ...

Puis ensuite la description : donc la première phrase s’affiche en double !

 

merci

Link to comment
Share on other sites

  • 2 weeks later...

Bonjour,

 

En fait j'ai trouvé une solution plus simple pour permettre la conservation du code html.

En tous cas, une solution qui correspond plus à la logique de prestashop.

En fait je me suis basé sur le fonctionnement des Products.

 

Il n'y a qu'une seule modification a effectuer.

Dans classes/Category.php ligne 98 fonction "getTranslationsFieldsChild" :

 

remplacer :

public function getTranslationsFieldsChild()
{
	parent::validateFieldsLang();
	return parent::getTranslationsFields(array('name', 'description', 'link_rewrite', 'meta_title', 'meta_keywords', 'meta_description'));
}

 

par :

public function getTranslationsFieldsChild()
{
	self::validateFieldsLang();

	$fieldsArray = array('name', 'link_rewrite', 'meta_title', 'meta_keywords', 'meta_description');
	$fields = array();
	$languages = Language::getLanguages();
	$defaultLanguage = Configuration::get('PS_LANG_DEFAULT');
	foreach ($languages as $language)
	{
		$fields[$language['id_lang']]['id_lang'] = $language['id_lang'];
		$fields[$language['id_lang']][$this->identifier] = intval($this->id);
		$fields[$language['id_lang']]['description'] = (isset($this->description[$language['id_lang']])) ? Tools::htmlentitiesDecodeUTF8(pSQL($this->description[$language['id_lang']], true)) : '';
		foreach ($fieldsArray as $field)
		{
			if (!Validate::isTableOrIdentifier($field))
				die(Tools::displayError());

			/* Check fields validity */
			if (isset($this->{$field}[$language['id_lang']]) AND !empty($this->{$field}[$language['id_lang']]))
				$fields[$language['id_lang']][$field] = pSQL($this->{$field}[$language['id_lang']]);
			elseif (in_array($field, $this->fieldsRequiredLang))
				$fields[$language['id_lang']][$field] = pSQL($this->{$field}[$defaultLanguage]);
			else
				$fields[$language['id_lang']][$field] = '';
		}
	}
	return $fields;
}

 

J'ai testé et ça fonctionne bien pour moi sur un Prestashop 1.2.4

 

Pour d'autres version, s'il y a des soucis, le principe est simple, il suffit de reprendre le code de la même fonction dans le fichier classes/Product.php, ensuite il faut virer "description" de $fieldsArray, puis supprimer la ligne qui commence par :

 

$fields[$language['id_lang']]['description_short']...

 

En espérant avoir pu apporter une aide à certains.

 

Merci de ton aide super

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...