{"id":27761,"date":"2021-05-14T12:10:00","date_gmt":"2021-05-14T09:10:00","guid":{"rendered":"https:\/\/themewp.inform.click\/?p=27761"},"modified":"2021-10-17T17:08:47","modified_gmt":"2021-10-17T14:08:47","slug":"trix-un-editor-wysiwyg-de-codigo-abierto-para-sitios-web","status":"publish","type":"post","link":"https:\/\/themewp.inform.click\/es\/trix-un-editor-wysiwyg-de-codigo-abierto-para-sitios-web\/","title":{"rendered":"Trix: un editor WYSIWYG de c\u00f3digo abierto para sitios web"},"content":{"rendered":"<p>Un editor de texto enriquecido o un editor WYSIWYG es \u00fatil para escribir contenido descriptivo que incluye elementos e im\u00e1genes HTML. En la etiqueta HTML textarea, no se puede escribir contenido con etiquetas HTML. Esta es la raz\u00f3n por la que la mayor\u00eda de los sitios web utilizan el editor HTML WYSIWYG.<\/p>\n<p><a href=\"https:\/\/trix-editor.org\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">Trix<\/a> es un editor de texto enriquecido de c\u00f3digo abierto de Basecamp. Como se usa en Basecamp, millones de personas ya lo usan para escribir su contenido. En este art\u00edculo, estudiamos c\u00f3mo agregar el editor Trix en sus aplicaciones web.<\/p>\n<h3>Instalaci\u00f3n<\/h3>\n<p>Trix aloj\u00f3 su paquete en <a href=\"https:\/\/github.com\/basecamp\/trix\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">GitHub<\/a> para que los usuarios puedan usar f\u00e1cilmente este agradable editor en sus aplicaciones web. Para comenzar, primero debe incluir archivos JS y CSS de Trix. Puede obtener estos archivos directamente dentro de la carpeta dist desde su p\u00e1gina de <a href=\"https:\/\/github.com\/basecamp\/trix\/tree\/master\/dist\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">GitHub<\/a>. O bien, descargue su paquete y copie <code>trix.js<\/code>y <code>trix.css<\/code>archivos.<\/p>\n<p>Tambi\u00e9n necesita crear 2 archivos PHP y un archivo JS m\u00e1s. Veremos por qu\u00e9 y c\u00f3mo usar estos archivos en la parte posterior. La estructura de su carpeta debe ser la siguiente:<\/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 de c\u00f3digo abierto para sitios web\" ><\/a><\/p>\n<p>Junto a agregar el editor Trix en su p\u00e1gina web, escriba el c\u00f3digo a continuaci\u00f3n.<\/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>En el c\u00f3digo anterior, agregamos archivos CSS y JS directamente. Por supuesto, debe seguir las pautas de su marco \/ CMS para incluir estos archivos.<\/p>\n<p>El editor de Trix agrega todo el contenido escrito al campo oculto que hemos agregado anteriormente. Y cuando env\u00ede el formulario, debe continuar con el campo oculto para obtener el contenido del editor. B\u00e1sicamente, obtendr\u00e1 el contenido del editor de Trix en el lado del servidor usando:<\/p>\n<pre><code>&lt;?php\necho $_POST['content']; \/\/here 'content' is the name given to hidden field<\/code><\/pre>\n<p>De la misma manera, desea completar previamente el editor con el contenido y luego pasar el contenido en los atributos de valor del campo oculto. El editor de Trix rellena autom\u00e1ticamente el contenido de un elemento oculto.<\/p>\n<p>A continuaci\u00f3n, ejecute este archivo en su navegador y deber\u00eda ver su editor WYSIWYG en la p\u00e1gina.<\/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 de c\u00f3digo abierto para sitios web\" ><\/a><\/p>\n<h3>Cargar imagen en Trix WYSIWYG Editor<\/h3>\n<p>En la documentaci\u00f3n de GitHub, mencionaron el almacenamiento de archivos adjuntos.<\/p>\n<p>Trix acepta autom\u00e1ticamente archivos arrastrados o pegados en un editor y los inserta como archivos adjuntos en el documento. Cada archivo adjunto se considera pendiente hasta que lo almacene de forma remota y proporcione a Trix una URL permanente.<\/p>\n<p>Significa que debe tomar una imagen del editor, enviarla al servidor, cargar im\u00e1genes en el servidor y devolver la URL de la imagen. Para realizar este proceso vamos a escribir c\u00f3digo JS y PHP en los siguientes pasos.<\/p>\n<p>Primero, comencemos con el c\u00f3digo JS. Ha creado un <code>attachments.js<\/code>archivo dentro del directorio &#8216;js&#8217;. Este archivo JS tendr\u00e1 el siguiente c\u00f3digo.<\/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>Reemplaza el marcador de posici\u00f3n &quot;YOUR_DOMAIN_URL&quot; con tu URL real. Lo que hace este c\u00f3digo es escuchar <code>trix-attachment-add<\/code>eventos y enviar un archivo adjunto <code>upload.php<\/code>. Al devolver la respuesta del servidor, establece la URL de la imagen permanente en los atributos del editor.<\/p>\n<p>Finalmente, escriba el c\u00f3digo de la imagen de carga en el <code>upload.php<\/code>archivo.<\/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>Esperamos que comprenda c\u00f3mo agregar el editor Trix WYSIWYG usando PHP en su sitio web. Nos gustar\u00eda conocer su opini\u00f3n en la secci\u00f3n de comentarios a continuaci\u00f3n.<\/p>\n<ul>\n<li><a href=\"https:\/\/themewp.inform.click\/es\/como-instalar-y-usar-ckeditor-en-laravel\/\" title=\"C\u00f3mo instalar y usar CKEditor en Laravel\">C\u00f3mo instalar y usar CKEditor en Laravel<\/a><\/li>\n<li><a href=\"https:\/\/themewp.inform.click\/es\/como-instalar-y-usar-tinymce-editor-en-laravel\/\" title=\"C\u00f3mo instalar y usar TinyMCE - WYSIWYG HTML Editor en Laravel\">C\u00f3mo instalar y usar TinyMCE &#8211; WYSIWYG HTML Editor en Laravel<\/a><\/li>\n<\/ul>\n<p><div id=\"PostUnique_PostSource\" style=\"padding-top: 50px\">Fuente de grabaci\u00f3n:  <a target=\"_blank\" rel=\"noopener nofollow\" href=\"\/\/artisansweb.net\" class=\"external external_icon\">artisansweb.net<\/a><\/div><\/p>\n","protected":false},"excerpt":{"rendered":"<p>El editor Trix WYSIWYG es un proyecto de c\u00f3digo abierto creado por Basecamp. Es un editor ampliamente utilizado y en este art\u00edculo le mostramos c\u00f3mo agregar este editor en<\/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":[410],"tags":[849],"class_list":["post-27761","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-diverso","tag-affiai-es"],"_links":{"self":[{"href":"https:\/\/themewp.inform.click\/es\/wp-json\/wp\/v2\/posts\/27761","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/themewp.inform.click\/es\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/themewp.inform.click\/es\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/themewp.inform.click\/es\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/themewp.inform.click\/es\/wp-json\/wp\/v2\/comments?post=27761"}],"version-history":[{"count":0,"href":"https:\/\/themewp.inform.click\/es\/wp-json\/wp\/v2\/posts\/27761\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/themewp.inform.click\/es\/wp-json\/wp\/v2\/media\/20612"}],"wp:attachment":[{"href":"https:\/\/themewp.inform.click\/es\/wp-json\/wp\/v2\/media?parent=27761"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/themewp.inform.click\/es\/wp-json\/wp\/v2\/categories?post=27761"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/themewp.inform.click\/es\/wp-json\/wp\/v2\/tags?post=27761"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}