{"id":24247,"date":"2021-05-14T12:18:00","date_gmt":"2021-05-14T09:18:00","guid":{"rendered":"https:\/\/themewp.inform.click\/?p=24247"},"modified":"2021-10-18T02:18:47","modified_gmt":"2021-10-17T23:18:47","slug":"trix-un-editeur-wysiwyg-open-source-pour-les-sites-web","status":"publish","type":"post","link":"https:\/\/themewp.inform.click\/fr\/trix-un-editeur-wysiwyg-open-source-pour-les-sites-web\/","title":{"rendered":"Trix &#8211; Un \u00e9diteur WYSIWYG Open Source pour les sites Web"},"content":{"rendered":"<p>Un \u00e9diteur de texte enrichi ou un \u00e9diteur WYSIWYG est utile pour r\u00e9diger un contenu descriptif comprenant des \u00e9l\u00e9ments HTML et des images. Dans la balise HTML textarea, on ne peut pas \u00e9crire de contenu avec des balises HTML. C&rsquo;est pourquoi la plupart des sites Web utilisent l&rsquo;\u00e9diteur HTML WYSIWYG.<\/p>\n<p><a href=\"https:\/\/trix-editor.org\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">Trix<\/a> est un \u00e9diteur de texte riche open source de Basecamp. Comme il est utilis\u00e9 dans Basecamp, des millions de personnes l&rsquo;utilisent d\u00e9j\u00e0 pour r\u00e9diger leur contenu. Dans cet article, nous \u00e9tudions comment ajouter l&rsquo;\u00e9diteur Trix dans vos applications web.<\/p>\n<h3>Installation<\/h3>\n<p>Trix a h\u00e9berg\u00e9 son package sur <a href=\"https:\/\/github.com\/basecamp\/trix\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">GitHub<\/a> afin que les utilisateurs puissent facilement utiliser ce bel \u00e9diteur dans leurs applications Web. Pour commencer, vous devez d&rsquo;abord inclure les fichiers JS et CSS de Trix. Vous pouvez obtenir ces fichiers directement dans le dossier dist \u00e0 partir de leur page <a href=\"https:\/\/github.com\/basecamp\/trix\/tree\/master\/dist\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">GitHub<\/a>. Ou bien, t\u00e9l\u00e9chargez leur package et copiez <code>trix.js<\/code>et <code>trix.css<\/code>fichiers.<\/p>\n<p>Vous devez \u00e9galement cr\u00e9er 2 fichiers PHP et un autre fichier JS. Nous verrons pourquoi et comment utiliser ces fichiers dans la suite. La structure de votre dossier doit \u00eatre la suivante\u00a0:<\/p>\n<p><a href=\"https:\/\/themewp.inform.click\/wp-content\/uploads\/2021\/04\/post-20611-60820e5688ed8.png\" data-rel=\"lightbox\"><img decoding=\"async\" class=\"SDStudio-light-box-enable SDStudio-editor-tools-md-imp\" src=\"https:\/\/themewp.inform.click\/wp-content\/uploads\/2021\/04\/post-20611-60820e5688ed8.png\" alt=\"Trix - Un \u00e9diteur WYSIWYG Open Source pour les sites Web\" ><\/a><\/p>\n<p>Ensuite, pour ajouter l&rsquo;\u00e9diteur Trix sur votre page Web, \u00e9crivez le code ci-dessous.<\/p>\n<p><strong>index.php<\/strong><\/p>\n<pre><code>&lt;link rel=\"stylesheet\" href=\"css\/trix.css\"&gt;\n&lt;script src=\"js\/trix.js\"&gt;&lt;\/script&gt;\n&lt;script src=\"js\/attachments.js\"&gt;&lt;\/script&gt;\n&lt;form method=\"post\"&gt;\n\u00a0\u00a0\u00a0\u00a0&lt;input id=\"x\" type=\"hidden\" name=\"content\" value=\"\" \/&gt;\n\u00a0\u00a0\u00a0\u00a0&lt;trix-editor input=\"x\"&gt;&lt;\/trix-editor&gt;\n\u00a0\u00a0\u00a0\u00a0&lt;input type=\"submit\" name=\"submit\" value=\"Submit\" \/&gt;\n&lt;\/form&gt;<\/code><\/pre>\n<p>Dans le code ci-dessus, nous avons ajout\u00e9 directement les fichiers CSS et JS. Bien s\u00fbr, vous devez suivre les directives de votre framework\/CMS pour inclure ces fichiers.<\/p>\n<p>L&rsquo;\u00e9diteur Trix ajoute tout le contenu \u00e9crit au champ cach\u00e9 que nous avons ajout\u00e9 ci-dessus. Et lorsque vous soumettez le formulaire, vous devez continuer avec le champ masqu\u00e9 pour obtenir le contenu de l&rsquo;\u00e9diteur. Fondamentalement, vous obtiendrez le contenu de l&rsquo;\u00e9diteur Trix c\u00f4t\u00e9 serveur en utilisant\u00a0:<\/p>\n<pre><code>&lt;?php\necho $_POST['content']; \/\/here 'content' is the name given to hidden field<\/code><\/pre>\n<p>De la m\u00eame mani\u00e8re, vous souhaitez pr\u00e9-remplir l&rsquo;\u00e9diteur avec le contenu puis passer le contenu dans les attributs de valeur du champ masqu\u00e9. L&rsquo;\u00e9diteur Trix remplit automatiquement le contenu \u00e0 partir d&rsquo;un \u00e9l\u00e9ment masqu\u00e9.<\/p>\n<p>Ensuite, ex\u00e9cutez ce fichier dans votre navigateur et vous devriez voir votre \u00e9diteur WYSIWYG sur la page.<\/p>\n<p><a href=\"https:\/\/themewp.inform.click\/wp-content\/uploads\/2021\/04\/post-20611-60820e56c5c4f.png\" data-rel=\"lightbox\"><img decoding=\"async\" class=\"SDStudio-light-box-enable SDStudio-editor-tools-md-imp\" src=\"https:\/\/themewp.inform.click\/wp-content\/uploads\/2021\/04\/post-20611-60820e56c5c4f.png\" alt=\"Trix - Un \u00e9diteur WYSIWYG Open Source pour les sites Web\" ><\/a><\/p>\n<h3>T\u00e9l\u00e9charger l&rsquo;image dans l&rsquo;\u00e9diteur Trix WYSIWYG<\/h3>\n<p>Sur la documentation GitHub, ils ont mentionn\u00e9 le stockage des fichiers joints.<\/p>\n<p>Trix accepte automatiquement les fichiers gliss\u00e9s ou coll\u00e9s dans un \u00e9diteur et les ins\u00e8re en pi\u00e8ces jointes dans le document. Chaque pi\u00e8ce jointe est consid\u00e9r\u00e9e comme en attente jusqu&rsquo;\u00e0 ce que vous la stockiez \u00e0 distance et que vous fournissiez \u00e0 Trix une URL permanente.<\/p>\n<p>Cela signifie que vous devez prendre une image de l&rsquo;\u00e9diteur, l&rsquo;envoyer c\u00f4t\u00e9 serveur, t\u00e9l\u00e9charger des images sur le serveur et renvoyer l&rsquo;URL de l&rsquo;image. Pour effectuer ce processus, nous allons \u00e9crire du code JS et PHP dans les prochaines \u00e9tapes.<\/p>\n<p>Tout d&rsquo;abord, commen\u00e7ons par le code JS. Vous avez cr\u00e9\u00e9 un <code>attachments.js<\/code>fichier dans le r\u00e9pertoire &lsquo;js&rsquo;. Ce fichier JS aura le code suivant.<\/p>\n<pre><code>(function() {\n\u00a0\u00a0\u00a0\u00a0var HOST = \"YOUR_DOMAIN_URL\/upload.php\"\n\u00a0\n\u00a0\u00a0\u00a0\u00a0addEventListener(\"trix-attachment-add\", function(event) {\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0if (event.attachment.file) {\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0uploadFileAttachment(event.attachment)\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0}\n\u00a0\u00a0\u00a0\u00a0})\n\u00a0\n\u00a0\u00a0\u00a0\u00a0function uploadFileAttachment(attachment) {\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0uploadFile(attachment.file, setProgress, setAttributes)\n\u00a0\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0function setProgress(progress) {\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0attachment.setUploadProgress(progress)\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0}\n\u00a0\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0function setAttributes(attributes) {\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0attachment.setAttributes(attributes)\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0}\n\u00a0\u00a0\u00a0\u00a0}\n\u00a0\n\u00a0\u00a0\u00a0\u00a0function uploadFile(file, progressCallback, successCallback) {\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0var formData = createFormData(file)\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0var xhr = new XMLHttpRequest()\n\u00a0\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0xhr.open(\"POST\", HOST, true)\n\u00a0\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0xhr.upload.addEventListener(\"progress\", function(event) {\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0var progress = event.loaded \/ event.total * 100\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0progressCallback(progress)\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0})\n\u00a0\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0xhr.addEventListener(\"load\", function(event) {\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0var attributes = {\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0url: xhr.responseText,\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0href: xhr.responseText + \"?content-disposition=attachment\"\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0}\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0successCallback(attributes)\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0})\n\u00a0\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0xhr.send(formData)\n\u00a0\u00a0\u00a0\u00a0}\n\u00a0\n\u00a0\u00a0\u00a0\u00a0function createFormData(file) {\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0var data = new FormData()\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0data.append(\"Content-Type\", file.type)\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0data.append(\"file\", file)\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0return data\n\u00a0\u00a0\u00a0\u00a0}\n})();<\/code><\/pre>\n<p>Remplacez l&rsquo;espace r\u00e9serv\u00e9 &quot;YOUR_DOMAIN_URL&quot; par votre URL r\u00e9elle. Ce que fait ce code, c&rsquo;est qu&rsquo;il \u00e9coute l&rsquo; <code>trix-attachment-add<\/code>\u00e9v\u00e9nement, envoie une pi\u00e8ce jointe au <code>upload.php<\/code>fichier. Au retour de la r\u00e9ponse du serveur, il d\u00e9finit l&rsquo;URL de l&rsquo;image permanente dans les attributs de l&rsquo;\u00e9diteur.<\/p>\n<p>Enfin, \u00e9crivez le code de t\u00e9l\u00e9chargement de l&rsquo;image dans le <code>upload.php<\/code>fichier.<\/p>\n<pre><code>&lt;?php\nif (!file_exists('uploads')) {\n\u00a0\n\u00a0\u00a0\u00a0\u00a0mkdir('uploads', 0777);\n}\n\u00a0\nmove_uploaded_file($_FILES['file']['tmp_name'], 'uploads\/'.$_FILES['file']['name']);\n\u00a0\necho \"YOUR_DOMAIN_URL\/uploads\/\".$_FILES['file']['name'];<\/code><\/pre>\n<p>Nous esp\u00e9rons que vous comprendrez comment ajouter l&rsquo;\u00e9diteur Trix WYSIWYG en utilisant PHP sur votre site Web. Nous aimerions entendre vos pens\u00e9es dans la section des commentaires ci-dessous.<\/p>\n<ul>\n<li><a href=\"https:\/\/themewp.inform.click\/fr\/comment-installer-et-utiliser-ckeditor-dans-laravel\/\" title=\"Comment installer et utiliser CKEditor dans Laravel\">Comment installer et utiliser CKEditor dans Laravel<\/a><\/li>\n<li><a href=\"https:\/\/themewp.inform.click\/fr\/comment-installer-et-utiliser-tinymce-editor-dans-laravel\/\" title=\"Comment installer et utiliser TinyMCE - \u00c9diteur HTML WYSIWYG dans Laravel\">Comment installer et utiliser TinyMCE &#8211; \u00c9diteur HTML WYSIWYG dans Laravel<\/a><\/li>\n<\/ul>\n<p><div id=\"PostUnique_PostSource\" style=\"padding-top: 50px\">Source d&rsquo;enregistrement:  <a target=\"_blank\" rel=\"noopener nofollow\" href=\"\/\/artisansweb.net\" class=\"external external_icon\">artisansweb.net<\/a><\/div><\/p>\n","protected":false},"excerpt":{"rendered":"<p>L&rsquo;\u00e9diteur Trix WYSIWYG est un projet open source cr\u00e9\u00e9 par Basecamp. C&rsquo;est un \u00e9diteur largement utilis\u00e9 et dans cet article, nous vous montrons comment ajouter cet \u00e9diteur dans<\/p>\n","protected":false},"author":1,"featured_media":20612,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":"","_wp_rev_ctl_limit":""},"categories":[412],"tags":[844],"class_list":["post-24247","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-divers","tag-affiai-fr"],"_links":{"self":[{"href":"https:\/\/themewp.inform.click\/fr\/wp-json\/wp\/v2\/posts\/24247","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/themewp.inform.click\/fr\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/themewp.inform.click\/fr\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/themewp.inform.click\/fr\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/themewp.inform.click\/fr\/wp-json\/wp\/v2\/comments?post=24247"}],"version-history":[{"count":0,"href":"https:\/\/themewp.inform.click\/fr\/wp-json\/wp\/v2\/posts\/24247\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/themewp.inform.click\/fr\/wp-json\/wp\/v2\/media\/20612"}],"wp:attachment":[{"href":"https:\/\/themewp.inform.click\/fr\/wp-json\/wp\/v2\/media?parent=24247"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/themewp.inform.click\/fr\/wp-json\/wp\/v2\/categories?post=24247"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/themewp.inform.click\/fr\/wp-json\/wp\/v2\/tags?post=24247"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}