{"id":24374,"date":"2021-05-14T12:32:00","date_gmt":"2021-05-14T09:32:00","guid":{"rendered":"https:\/\/themewp.inform.click\/?p=24374"},"modified":"2021-10-18T03:15:52","modified_gmt":"2021-10-18T00:15:52","slug":"trix-un-editor-wysiwyg-open-source-per-siti-web","status":"publish","type":"post","link":"https:\/\/themewp.inform.click\/it\/trix-un-editor-wysiwyg-open-source-per-siti-web\/","title":{"rendered":"Trix &#8211; Un editor WYSIWYG open source per siti web"},"content":{"rendered":"<p>Un editor di testo RTF o un editor WYSIWYG \u00e8 utile per scrivere contenuti descrittivi che includano elementi HTML e immagini. Nel tag textarea HTML, non \u00e8 possibile scrivere contenuto con tag HTML. Questo \u00e8 il motivo per cui la maggior parte dei siti Web utilizza l&#8217;editor HTML WYSIWYG.<\/p>\n<p><a href=\"https:\/\/trix-editor.org\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">Trix<\/a> \u00e8 un editor di testo RTF open source di Basecamp. Poich\u00e9 viene utilizzato in Basecamp, milioni di persone lo utilizzano gi\u00e0 per scrivere i propri contenuti. In questo articolo, studiamo come aggiungere l&#8217;editor Trix nelle tue applicazioni web.<\/p>\n<h3>Installazione<\/h3>\n<p>Trix ha ospitato il proprio pacchetto su <a href=\"https:\/\/github.com\/basecamp\/trix\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">GitHub in<\/a> modo che gli utenti possano utilizzare facilmente questo simpatico editor nelle loro applicazioni web. Per iniziare, devi prima includere i file JS e CSS di Trix. Puoi ottenere questi file direttamente nella cartella dist dalla loro pagina <a href=\"https:\/\/github.com\/basecamp\/trix\/tree\/master\/dist\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">GitHub<\/a>. Oppure, scarica il loro pacchetto e copia <code>trix.js<\/code>e <code>trix.css<\/code>file.<\/p>\n<p>Devi anche creare 2 file PHP e un altro file JS. Vedremo perch\u00e9 e come utilizzare questi file nella parte successiva. La struttura delle tue cartelle dovrebbe essere la seguente:<\/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 editor WYSIWYG open source per siti web\" ><\/a><\/p>\n<p>Successivamente per aggiungere l&#8217;editor Trix alla tua pagina web, scrivi il codice qui sotto.<\/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>Nel codice sopra, abbiamo aggiunto direttamente i file CSS e JS. Ovviamente, dovresti seguire le linee guida del tuo framework\/CMS per includere questi file.<\/p>\n<p>L&#8217;editor Trix aggiunge tutto il contenuto scritto al campo nascosto che abbiamo aggiunto sopra. E quando invii il modulo dovresti procedere con il campo nascosto per ottenere il contenuto dall&#8217;editor. Fondamentalmente otterrai il contenuto dell&#8217;editor Trix sul lato server usando:<\/p>\n<pre><code>&lt;?php\necho $_POST['content']; \/\/here 'content' is the name given to hidden field<\/code><\/pre>\n<p>Allo stesso modo, si desidera precompilare l&#8217;editor con il contenuto, quindi passare il contenuto negli attributi del valore del campo nascosto. L&#8217;editor Trix popola automaticamente il contenuto da un elemento nascosto.<\/p>\n<p>Quindi, esegui questo file nel tuo browser e dovresti vedere il tuo editor WYSIWYG sulla pagina.<\/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 editor WYSIWYG open source per siti web\" ><\/a><\/p>\n<h3>Carica immagine nell&#8217;editor WYSIWYG di Trix<\/h3>\n<p>Nella documentazione di GitHub hanno menzionato l&#8217;archiviazione dei file allegati.<\/p>\n<p>Trix accetta automaticamente i file trascinati o incollati in un editor e li inserisce come allegati nel documento. Ogni allegato \u00e8 considerato in sospeso finch\u00e9 non lo memorizzi in remoto e fornisci a Trix un URL permanente.<\/p>\n<p>Significa che devi prendere un&#8217;immagine dall&#8217;editor, inviarla al lato server, caricare le immagini sul server e restituire l&#8217;URL dell&#8217;immagine. Per eseguire questo processo scriveremo codice JS e PHP nei passaggi successivi.<\/p>\n<p>Innanzitutto, iniziamo con il codice JS. Hai creato il <code>attachments.js<\/code>file all&#8217;interno della directory &#8216;js&#8217;. Questo file JS avr\u00e0 il seguente codice.<\/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>Sostituisci il segnaposto &quot;YOUR_DOMAIN_URL&quot; con il tuo URL effettivo. Ci\u00f2 che fa questo codice \u00e8 ascoltare l&#8217; <code>trix-attachment-add<\/code>evento, inviare un allegato al <code>upload.php<\/code>file. Quando restituisce la risposta dal server, imposta l&#8217;URL dell&#8217;immagine permanente negli attributi dell&#8217;editor.<\/p>\n<p>Infine, scrivi il codice dell&#8217;immagine di caricamento nel <code>upload.php<\/code>file.<\/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>Ci auguriamo che tu capisca come aggiungere l&#8217;editor WYSIWYG di Trix utilizzando PHP sul tuo sito web. Ci piacerebbe sentire i tuoi pensieri nella sezione commenti qui sotto.<\/p>\n<ul>\n<li><a href=\"https:\/\/themewp.inform.click\/it\/come-installare-e-utilizzare-ckeditor-in-laravel\/\" title=\"Come installare e utilizzare CKEditor in Laravel\">Come installare e utilizzare CKEditor in Laravel<\/a><\/li>\n<li><a href=\"https:\/\/themewp.inform.click\/it\/come-installare-e-utilizzare-tinymce-editor-in-laravel\/\" title=\"Come installare e utilizzare TinyMCE - Editor HTML WYSIWYG in Laravel\">Come installare e utilizzare TinyMCE &#8211; Editor HTML WYSIWYG in Laravel<\/a><\/li>\n<\/ul>\n<p><div id=\"PostUnique_PostSource\" style=\"padding-top: 50px\">Fonte di registrazione:  <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&#8217;editor Trix WYSIWYG \u00e8 un progetto open source creato da Basecamp. \u00c8 un editor ampiamente utilizzato e in questo articolo ti mostriamo come aggiungere questo editor in<\/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":[415],"tags":[846],"class_list":["post-24374","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-varie","tag-affiai-it"],"_links":{"self":[{"href":"https:\/\/themewp.inform.click\/it\/wp-json\/wp\/v2\/posts\/24374","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/themewp.inform.click\/it\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/themewp.inform.click\/it\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/themewp.inform.click\/it\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/themewp.inform.click\/it\/wp-json\/wp\/v2\/comments?post=24374"}],"version-history":[{"count":0,"href":"https:\/\/themewp.inform.click\/it\/wp-json\/wp\/v2\/posts\/24374\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/themewp.inform.click\/it\/wp-json\/wp\/v2\/media\/20612"}],"wp:attachment":[{"href":"https:\/\/themewp.inform.click\/it\/wp-json\/wp\/v2\/media?parent=24374"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/themewp.inform.click\/it\/wp-json\/wp\/v2\/categories?post=24374"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/themewp.inform.click\/it\/wp-json\/wp\/v2\/tags?post=24374"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}