Jump to content

Autoriser le html dans la description des catégories de CMS


-Johan-
 Share

Recommended Posts

Bonjour,

 

Une catégorie CMS dispose d'une zone de texte pour de la description.

Bizarrement ce champs texte n'est pas affiché sur le tpl, mais bons c'est pas un problème.

 

Mon soucis est que je souhaiterai placer l'éditeur de texte pour y insérer du html.

Comment procéder à cette modification ?

 

Des idées ?

 

 

Merci

Share this post


Link to post
Share on other sites

Bonjour,

 

Ouvrez

controllers/admin/AdminCms/CategoriesController.php

Cherchez

array(
'type' => 'textarea',
'label' => $this->l('Description:'),
'name' => 'description',
'autoload_rte' => true,
'lang' => true,
'rows' => 5,
'cols' => 40,
Ajoutez après
'autoload_rte' => true,

Désormais vous avez un éditeur de texte.

 

Cordialement,

  • Like 1

Share this post


Link to post
Share on other sites

Bonsoir,

 

Ouvrez

classes/CMSCategory.php

Cherchez

'description' =>  array('type' => self::TYPE_STRING

Remplacez par

'description' =>  array('type' => self::TYPE_HTML

Désormais le html est sauvegardé.

 

Cordialement,

  • Like 1

Share this post


Link to post
Share on other sites

  • 11 months later...

Bonjour,

 

Sous prestashop 1.6.11, j'essai également d'inclure du html dans la description de catégories CMS.

 

 

 

 

Pour cela, j'ai modifié le fichier controllers/admin/AdminCmsCategoriesController.php (ligne 260)

				array(
					'type' => 'textarea',
					'label' => $this->l('Description'),
					'name' => 'description',
					'lang' => true,
					'rows' => 5,
					'cols' => 40,
					'hint' => $this->l('Invalid characters:').' <>;=#{}'

par

				array(
					'type' => 'textarea',
					'label' => $this->l('Description'),
					'name' => 'description',
					'lang' => true,
					'rows' => 5,
					'cols' => 40,
					'autoload_rte' => true,
				),

ensuite dans classes/CMScategory.php j'ai modifié la ligne :

			'description' => 		array('type' => self::TYPE_STRING, 'lang' => true, 'validate' => 'isCleanHtml'),

par

			'description' => 		array('type' => self::TYPE_HTML, 'lang' => true),

En faisant ces modifs, je n'y arrive pas non plus.  Le code html inséré dans l'éditeur tinymce s'affiche sur la page des catégories mais il n'est pas interprété. Est-ce que quelqu'un sait comment on peut remédier à cela et pourquoi cette fonctionnalité n'est pas proposée en natif?

Merci d'avance.

Edited by jm64500 (see edit history)

Share this post


Link to post
Share on other sites

  • 2 weeks later...

Bonjour

 

Pour interpréter le code, dans la version de Prestashop 1.6, il suffit dans votre dossier themes/bootstrap-defaut et dans le fichier cms.tpl de modifier la ligne 37

supprimer 'html': après escape:, j'ai également supprimé les balises de paragraphe comme ci-dessous pour inclure mes propres balises dans la description HTML (en l’occurrence h2)

{$cms_category->description|escape:'html':'UTF-8'}
Edited by [email protected] (see edit history)
  • Like 1

Share this post


Link to post
Share on other sites

Bonjour,

 

excusez moi mais c'est quoi le soucis en 1.6 ?????

 

Pour rentrer du code html il suffit de modifier le code html produit par l'éditeur TinyMCE comme sur toutes les pages de Prestashop.

Voici une capture d’écran pour aider à retrouver l'accès au code source (donc html) du votre description.

 

zFdeuhS.jpg

 

Après, la 1.6 apporte aussi un classe nettoyant le code html de tinyMCE que l'on peut désactiver das les Préférences de Prestashop.

 

zaQxuSp.jpg

Share this post


Link to post
Share on other sites

Pour mediacom87, par défaut, il n'est pas possible d'inclure du html, l'éditeur tinymce n'étant pas présent (voir la capture d'écran ci-jointe). Pour cela il te faudra modifier le fichier AdminCmsCategoriesController.php situé dans le répertoire controllers/admin, puis CMSCategory.php (dans le répertoire classes) comme précisé plus haut.

 

Pour james.roudier, pour moi c'est à la ligne 47 sur le fichier cms.tpl et non 37. J'ai testé et ça marche!

 

Donc un grand merci!

 

post-446375-0-43952500-1425233928_thumb.png

Share this post


Link to post
Share on other sites

A grand MEA CULPA j'ai parlé des Catégories et non des Catégories de CMS, Veuillez m'en excuser.

 

Par contre rappelez vous qu'il faut toujours faire des surcharges (override) et non pas modifier les fichiers du coeur.

Share this post


Link to post
Share on other sites

  • 5 years later...

Bonjour tout le monde !

Nous sommes fin 2020 et à la version 1.7 de prestashop...

Je réouvre ce sujet car je suis coincé !!!

J'aimerai également mettre  un éditeur de texte sur mes catégories CMS de presta, mais je n'arrive à rien...

d'autant plus que le fichier categoriescontrollers.php n'existe plus...

Est ce que quelqu'un pourrait m'aider à me dire comment remettre cet éditeur dans la version 1.7.7 de presta pour avoir des catégories CMS plus évoluées svp ?

D'ailleurs je ne comprends pas pourquoi il n'y a aucune description sur ma catégorie alors que j'en ai rentré une petite de quelques lignes... y a t'il un truc à activer que je n'ai pas fait ?

Merci pour vos retours !

 

JL

 

 

 

Edited by carcy (see edit history)

Share this post


Link to post
Share on other sites

  • 5 months later...

Bonjour, sur la version 1.7.4.2 j'ai réussi à m'en sortir pour pouvoir faire apparaitre l'éditeur de texte et avoir de l'html dans les catégories CMS.

 

Ce que j'ai effectué :

 

  • Ouvrir le fichier category.tpl dans /themes/#NOMTHEME/templates/cms  

Mettre  

<p>{$cms_category.description nofilter}</p> 

à la place de

<p>{$cms_category.description|strip_tags}</p>

Strip tags supprimant les balises.

 

 

 

  • Ouvrir AdminCmsCategoriesController.php dans /controllers/admin

Mettre 

                array(
                    'type' => 'textarea',
                    'label' => $this->trans('Description', array(), 'Admin.Global'),
                    'name' => 'description',
                    'lang' => true,
					'autoload_rte' => true
                ),

à la place de 

                array(
                    'type' => 'textarea',
                    'label' => $this->trans('Description', array(), 'Admin.Global'),
                    'name' => 'description',
                    'lang' => true,
                    'rows' => 5,
                    'cols' => 40,
                    'hint' => $this->trans('Invalid characters:', array(), 'Admin.Notifications.Info').' &lt;&gt;;=#{}'
                ),

pour faire apparaitre l'éditeur de texte dans le backoffice

 

 

  • Ouvrir le fichier CMSCategory.php dans /classes

Mettre TYPE_HTML

'description' =>        array('type' => self::TYPE_HTML, 'lang' => true, 'validate' => 'isCleanHtml'),

à la place de 

'description' =>        array('type' => self::TYPE_STRING, 'lang' => true, 'validate' => 'isCleanHtml'),

 

En espérant que ça puisse en aider quelques un.

Dans les recherche que j'avais lu en revanche il se pourrait que cela soit pour palier à une faille de sécurité que Prestashop aurait ces restrictions mais je ne suis pas spécialiste.

 

Share this post


Link to post
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
 Share

×
×
  • Create New...

Important Information

Cookies ensure the smooth running of our services. Using these, you accept the use of cookies. Learn More