{"id":388,"date":"2013-04-18T13:21:49","date_gmt":"2013-04-18T11:21:49","guid":{"rendered":"http:\/\/www.h-hennes.fr\/blog\/?p=388"},"modified":"2018-11-22T18:20:39","modified_gmt":"2018-11-22T16:20:39","slug":"prestashop-ajouter-un-editeur-wysiwyg-sur-la-description-des-categories","status":"publish","type":"post","link":"https:\/\/www.h-hennes.fr\/blog\/2013\/04\/18\/prestashop-ajouter-un-editeur-wysiwyg-sur-la-description-des-categories\/","title":{"rendered":"Prestashop : Ajouter un editeur wysiwyg sur la description des cat\u00e9gories"},"content":{"rendered":"<p>Voici un code pratique et rapide \u00e0 mettre en place afin de pouvoir afficher du texte html dans la description des cat\u00e9gories sur la plateforme ecommerce Prestashop ( version 1.4.xx )<\/p>\n<p><strong>Edit : Si vous souhaitez r\u00e9aliser cette action sur prestashop 1.5 vous pouvez consulter l&rsquo;article suivant : <a title=\"Prestashop : Ajouter un \u00e9diteur wysiwyg sur la description des cat\u00e9gories  ( Prestashop 1.5 )\" href=\"https:\/\/www.h-hennes.fr\/blog\/2014\/02\/28\/ajouter-un-editeur-wysiwyg-sur-la-description-des-categories-prestashop-1-5\/\">Ajouter un editeur wysiwyg sur la description des cat\u00e9gories (prestashop 1.5 )<\/a><\/strong><\/p>\n<p>Comme nous allons toucher \u00e0 des fichiers de l&rsquo;administration cette modification n\u00e9cessite de toucher au code du coeur de prestashop.<br \/>\nEn effet l&rsquo;override de cette partie n&rsquo;est pas encore g\u00e9r\u00e9 dans cette version.<\/p>\n<p>Pour commencer nous allons afficher l&rsquo;\u00e9diteur TinyMce sur le block description de la cat\u00e9gorie<\/p>\n<p>Dans le fichier \/admin\/tabs\/AdminCategories.php\u00a0 (ligne 138 sur ma version ) rajouter la classe \u00ab\u00a0class=rte\u00a0\u00bb sur le textearea de la description.<\/p>\n<pre lang=\"php\" escaped=\"true\">foreach ($this-&gt;_languages AS $language)\r\necho '\r\n&lt;div style=\"display: '.($language['id_lang'] == $this-&gt;_defaultFormLanguage ? 'block' : 'none').'; float: left;\"&gt;\r\n&lt;textarea class=\"rte\" name=\"description_'.$language['id_lang'].'\" rows=\"10\" cols=\"100\"&gt;'.htmlentities(stripslashes($this-&gt;getFieldValue($obj, 'description', $language['id_lang'])), ENT_COMPAT, 'UTF-8').'&lt;\/textarea&gt;\r\n&lt;\/div&gt;';<\/pre>\n<p>Rajouter ensuite \u00e0 la fin de la fonction displaForm :<\/p>\n<pre lang=\"html\" escaped=\"true\">\/\/ TinyMCE\r\nglobal $cookie;\r\n$iso = Language::getIsoById((int)($cookie-&gt;id_lang));\r\n$isoTinyMCE = (file_exists(_PS_ROOT_DIR_.'\/js\/tiny_mce\/langs\/'.$iso.'.js') ? $iso : 'en');\r\n$ad = dirname($_SERVER[\"PHP_SELF\"]);\r\necho '\r\n&lt;script type=\"text\/javascript\"&gt;\r\nvar iso = \\''.$isoTinyMCE.'\\' ;\r\nvar pathCSS = \\''._THEME_CSS_DIR_.'\\' ;\r\nvar ad = \\''.$ad.'\\' ;\r\n&lt;\/script&gt;\r\n&lt;script type=\"text\/javascript\" src=\"'.__PS_BASE_URI__.'js\/tiny_mce\/tiny_mce.js\"&gt;&lt;\/script&gt;\r\n&lt;script type=\"text\/javascript\" src=\"'.__PS_BASE_URI__.'js\/tinymce.inc.js\"&gt;&lt;\/script&gt;';<\/pre>\n<p>Une fois ces modifications en place, nous pourrons \u00e9diter la description html des cat\u00e9gories Prestashop de mani\u00e8re intuitive :<\/p>\n<p><a href=\"https:\/\/www.h-hennes.fr\/blog\/wp-content\/uploads\/2013\/04\/prestashop-wysiywyg-categor.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"size-full wp-image-432 aligncenter\" src=\"https:\/\/www.h-hennes.fr\/blog\/wp-content\/uploads\/2013\/04\/prestashop-wysiywyg-categor.jpg\" alt=\"Texte Html cat\u00e9gorie prestashop\" width=\"600\" height=\"304\" srcset=\"https:\/\/www.h-hennes.fr\/blog\/wp-content\/uploads\/2013\/04\/prestashop-wysiywyg-categor.jpg 600w, https:\/\/www.h-hennes.fr\/blog\/wp-content\/uploads\/2013\/04\/prestashop-wysiywyg-categor-300x152.jpg 300w\" sizes=\"auto, (max-width: 600px) 100vw, 600px\" \/><\/a><\/p>\n<p>Nous allons \u00e0 pr\u00e9sent passer \u00e0 la surcharge de la cat\u00e9gorie.<\/p>\n<p>Pour cela cr\u00e9er un fichier \u00ab\u00a0Category.php\u00a0\u00bb dans le dossier \u00ab\u00a0override\/classes\u00a0\u00bb qui contiendra le texte suivante :<\/p>\n<pre lang=\"php\" line=\"1\" escaped=\"true\">\/**\r\n * Surcharge des Cat\u00e9gories\r\n *\r\n * @author Herv\u00e9 Hennes &lt;contact@h-hennes.fr--&gt;\r\n * @version 0.1 | $Revision$\r\n * Last-Modified : $Date$\r\n * Id : $Id$\r\n *\/\r\nclass Category extends CategoryCore {\r\n\r\n    public function __construct($id_category = NULL, $id_lang = NULL) {\r\n\r\n        parent::__construct($id_category, $id_lang);\r\n        $this-&gt;fieldsValidateLang['description'] = 'isString';\r\n    }\r\n\r\n    public function getTranslationsFieldsChild() {\r\n        self::validateFieldsLang();\r\n\r\n        $fields = array();\r\n        $languages = Language::getLanguages();\r\n        $defaultLanguage = Configuration::get('PS_LANG_DEFAULT');\r\n        foreach ($languages as $language) {\r\n            $fields[$language['id_lang']]['id_lang'] = $language['id_lang'];\r\n            $fields[$language['id_lang']][$this-&gt;identifier] = intval($this-&gt;id);\r\n            $fields[$language['id_lang']]['description'] = (isset($this-&gt;description[$language['id_lang']])) ? Tools::htmlentitiesDecodeUTF8(pSQL($this-&gt;description[$language['id_lang']], true)) : '';\r\n        }\r\n        return $fields + parent::getTranslationsFieldsChild();\r\n    }\r\n\r\n}<\/pre>\n<p>Et voila vous pouvez \u00e0 pr\u00e9sent mettre en forme la description de votre cat\u00e9gories \u00e0 l&rsquo;aide de balises html<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Voici un code pratique et rapide \u00e0 mettre en place afin de pouvoir afficher du texte html dans la description des cat\u00e9gories sur la plateforme ecommerce Prestashop ( version 1.4.xx ) Edit : Si vous souhaitez r\u00e9aliser cette action sur prestashop 1.5 vous pouvez consulter l&rsquo;article suivant : Ajouter un editeur wysiwyg sur la description [&hellip;]<\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"site-sidebar-layout":"default","site-content-layout":"","ast-site-content-layout":"default","site-content-style":"default","site-sidebar-style":"default","ast-global-header-display":"","ast-banner-title-visibility":"","ast-main-header-display":"","ast-hfb-above-header-display":"","ast-hfb-below-header-display":"","ast-hfb-mobile-header-display":"","site-post-title":"","ast-breadcrumbs-content":"","ast-featured-img":"","footer-sml-layout":"","ast-disable-related-posts":"","theme-transparent-header-meta":"","adv-header-id-meta":"","stick-header-meta":"","header-above-stick-meta":"","header-main-stick-meta":"","header-below-stick-meta":"","astra-migrate-meta-layouts":"default","ast-page-background-enabled":"default","ast-page-background-meta":{"desktop":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"ast-content-background-meta":{"desktop":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"footnotes":""},"categories":[245,6],"tags":[104,218],"class_list":["post-388","post","type-post","status-publish","format-standard","hentry","category-prestashop-2","category-trucs-et-astuces","tag-prestashop","tag-wysiwyg","prestashop-1-4","prestashop-1-6","prestashop-1-7-8","prestashop-8-0"],"aioseo_notices":[],"_links":{"self":[{"href":"https:\/\/www.h-hennes.fr\/blog\/wp-json\/wp\/v2\/posts\/388","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.h-hennes.fr\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.h-hennes.fr\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.h-hennes.fr\/blog\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/www.h-hennes.fr\/blog\/wp-json\/wp\/v2\/comments?post=388"}],"version-history":[{"count":14,"href":"https:\/\/www.h-hennes.fr\/blog\/wp-json\/wp\/v2\/posts\/388\/revisions"}],"predecessor-version":[{"id":723,"href":"https:\/\/www.h-hennes.fr\/blog\/wp-json\/wp\/v2\/posts\/388\/revisions\/723"}],"wp:attachment":[{"href":"https:\/\/www.h-hennes.fr\/blog\/wp-json\/wp\/v2\/media?parent=388"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.h-hennes.fr\/blog\/wp-json\/wp\/v2\/categories?post=388"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.h-hennes.fr\/blog\/wp-json\/wp\/v2\/tags?post=388"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}