Ajouter du HTML dans les descriptions des catégories CMS

Sur Prestashop, le champ "Description" des pages "catégorie CMS" est un champ de texte simple qui n'accepte pas le contenu HTML.

Voici la procédure pour faire en sorte que ce champ accepte le HTML et pour ajouter l'éditeur de contenu HTML (Tinymce).

Toutes les modifications seront faites en créant des "surcharges" afin de ne pas modifier le code de Prestashop.

Créer la surcharge de la classe CMSCategory

Pour changer le type de ce champ, il faut commencer par créer la surcharge de la classe "CMSCategory".

Pour cela il faut créer un fichier CMSCategory.php dans le répertoire /override/classes/ puis y écrire le code suivant :

<?php
class CMSCategory extends CMSCategoryCore{

}
?>

Pour que ce fichier soit pris en compte, il faut aller vider le cache dans Paramètres avancés > Performances.

Changer le type du champ "Description"

Le type est défini dans le tableau "$definition" de l'objet.

Pour le modifier, il faut ré-écrire la ligne qui définit le type de la description. Nous allons donc modifier cette valeur dans le constructeur de la classe pour que la modification soit valable à chaque instanciation de l'objet :

<?php
class CMSCategory extends CMSCategoryCore
{

    public function __construct($id = null, $id_lang = null, $id_shop = null, $translator = null)
    {
        CMSCategory::$definition['fields']['description'] = array('type' => self::TYPE_HTML, 'lang' => true, 'validate' => 'isCleanHtml');
        parent::__construct($id, $id_lang, $id_shop, $translator);
    }

}
?>

Le champ "Description" des pages "Catégories CMS" permet maintenant l'enregistrement de HTML ce qui permet de faire des textes avec de la mise en forme.

Pour afficher la description sur la page de la "catégorie CMS", il faut placer le code suivant dans le fichier /themes/votre-theme/templates/cms/category.tpl

{$cms_category.description nofilter}

0 Commentaire

Il n'y a pas de commentaire pour le moment.

Ajouter un commentaire