{"id":27637,"date":"2021-05-20T10:43:00","date_gmt":"2021-05-20T07:43:00","guid":{"rendered":"https:\/\/themewp.inform.click\/?p=27637"},"modified":"2021-10-18T04:10:53","modified_gmt":"2021-10-18T01:10:53","slug":"como-instalar-e-usar-o-ckeditor-no-laravel","status":"publish","type":"post","link":"https:\/\/themewp.inform.click\/pt-pt\/como-instalar-e-usar-o-ckeditor-no-laravel\/","title":{"rendered":"Como instalar e usar o CKEditor no Laravel"},"content":{"rendered":"<p>Voc\u00ea quer instalar o CKEditor no Laravel? CKEditor \u00e9 um editor HTML WYSIWYG (o que voc\u00ea v\u00ea \u00e9 o que voc\u00ea obt\u00e9m) que nos permite escrever formatos de texto rico. Neste artigo, mostro como <strong>instalar e usar o CKEditor no Laravel<\/strong>.<\/p>\n<h3>Por que usar o CKEditor?<\/h3>\n<p>O editor de rich text \u00e9 necess\u00e1rio para escrever um conte\u00fado rico para suas p\u00e1ginas ou artigos. Na p\u00e1gina da web, precisamos ter diferentes elementos como imagens, par\u00e1grafos, links, etc. Todos esses diferentes elementos podem ser adicionados usando o CKEditor.<\/p>\n<p>HTML fornece um elemento textarea para escrever a descri\u00e7\u00e3o. Mas, ele vem com limita\u00e7\u00f5es. Em textarea, n\u00e3o \u00e9 f\u00e1cil e amig\u00e1vel escrever outros elementos HTML como p, div, img, etc.<\/p>\n<p>Para superar essas limita\u00e7\u00f5es, voc\u00ea pode usar o CKEditor, que \u00e9 um editor de rich text. Nosso editor final ser\u00e1 semelhante \u00e0 imagem abaixo.<\/p>\n<p><a href=\"https:\/\/themewp.inform.click\/wp-content\/uploads\/2021\/04\/post-20535-608201a68736d.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-20535-608201a68736d.png\" alt=\"Como instalar e usar o CKEditor no Laravel\" ><\/a><\/p>\n<h3>Instale o CKEditor no Laravel<\/h3>\n<p>Existem 2 maneiras de instalar o CKEditor no pacote Laravel &#8211; CDN ou CKEditor. Voc\u00ea pode obter os dois recursos de sua p\u00e1gina de <a href=\"https:\/\/ckeditor.com\/ckeditor-4\/download\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">download<\/a>.<\/p>\n<p>O link CDN \u00e9 <code>\/\/cdn.ckeditor.com\/4.14.0\/standard\/ckeditor.js<\/code>. Se voc\u00ea for para o CDN, n\u00e3o precisar\u00e1 baixar nada do site do CKEditor.<\/p>\n<p>Se voc\u00ea pretende instal\u00e1-lo sem o CDN, baixe o pacote (pacote padr\u00e3o recomendado). A seguir, crie uma pasta &#8216;ckeditor&#8217; no diret\u00f3rio &#8216;public&#8217; do seu projeto Laravel. E dentro desta pasta &#8216;ckeditor&#8217; copie abaixo os arquivos e pastas do pacote baixado.<\/p>\n<p><a href=\"https:\/\/themewp.inform.click\/wp-content\/uploads\/2021\/04\/post-20535-608201a6ee9be.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-20535-608201a6ee9be.png\" alt=\"Como instalar e usar o CKEditor no Laravel\" ><\/a><\/p>\n<h3>Como usar o CKEditor<\/h3>\n<p>Neste est\u00e1gio, voc\u00ea concluiu as etapas de instala\u00e7\u00e3o do pacote CKEditor. Agora vamos ver como usar o CKEditor.<\/p>\n<p>Digamos que voc\u00ea tenha uma &#8216;textarea&#8217; que deve ser substitu\u00edda pelo CKEditor. Para fazer isso, estou adicionando id &#8216;summary-ckeditor&#8217; \u00e0 &#8216;textarea&#8217;.<\/p>\n<pre><code>&lt;textarea class=\"form-control\" id=\"summary-ckeditor\" name=\"summary-ckeditor\"&gt;&lt;\/textarea&gt;<\/code><\/pre>\n<p>Em seguida, voc\u00ea precisa incluir o <code>ckeditor.js<\/code>arquivo e escrever um c\u00f3digo JavaScript que substitua &#8216;textarea&#8217; pelo CKEditor.<\/p>\n<pre><code>&lt;script src=\"{{ asset('ckeditor\/ckeditor.js') }}\"&gt;&lt;\/script&gt;\n&lt;script&gt;\nCKEDITOR.replace( 'summary-ckeditor' );\n&lt;\/script&gt;<\/code><\/pre>\n<p>O c\u00f3digo JavaScript acima substitui textarea pelo CKEditor. Se voc\u00ea quiser usar o CDN, o c\u00f3digo acima seria o seguinte:<\/p>\n<pre><code>&lt;script src=\"\/\/cdn.ckeditor.com\/4.14.0\/standard\/ckeditor.js\"&gt;&lt;\/script&gt;\n&lt;script&gt;\nCKEDITOR.replace( 'summary-ckeditor' );\n&lt;\/script&gt;<\/code><\/pre>\n<p>Execute sua p\u00e1gina no navegador e agora voc\u00ea deve conseguir ver o CKeditor. Agora voc\u00ea pode adicionar seu conte\u00fado ao editor e us\u00e1-lo em seu site.<\/p>\n<h3>Carregar e inserir imagem no CKEditor<\/h3>\n<p>O CKEditor por padr\u00e3o n\u00e3o oferece a op\u00e7\u00e3o de fazer upload da imagem. Se algu\u00e9m est\u00e1 procurando dar esta op\u00e7\u00e3o, continue lendo este artigo. Ele precisa adicionar uma rota do Laravel, escrever um c\u00f3digo para o upload da imagem e algum JavaScript para o seu aplicativo. Primeiro, para habilitar a op\u00e7\u00e3o de upload de imagem, voc\u00ea precisa chamar o CKEditor da seguinte maneira.<\/p>\n<pre><code>&lt;script&gt;\nCKEDITOR.replace( 'summary-ckeditor', {\n\u00a0\u00a0\u00a0\u00a0filebrowserUploadUrl: \"{{route('upload', ['_token' =&gt; csrf_token() ])}}\",\n\u00a0\u00a0\u00a0\u00a0filebrowserUploadMethod: 'form'\n});\n&lt;\/script&gt;<\/code><\/pre>\n<p>Aqui, para a chave <code>filebrowserUploadUrl<\/code>, passei a URL da rota e o token csrf. Vamos definir a rota de &#8216;upload&#8217;.<\/p>\n<pre><code>Route::post('ckeditor\/image_upload', 'CKEditorController@upload')-&gt;name('upload');<\/code><\/pre>\n<p>Recarregue a p\u00e1gina. Agora, se voc\u00ea clicar no \u00edcone da imagem do CKEditor, ver\u00e1 a op\u00e7\u00e3o de upload de imagem conforme mostrado abaixo.<\/p>\n<p><a href=\"https:\/\/themewp.inform.click\/wp-content\/uploads\/2021\/04\/post-20535-608201a6ee9be.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-20535-608201a6ee9be.png\" alt=\"Como instalar e usar o CKEditor no Laravel\" ><\/a><\/p>\n<p>Para usar a imagem carregada no CKEditor, voc\u00ea precisa fazer upload da imagem na pasta do aplicativo e enviar de volta o URL da imagem. Para armazenar uma imagem em um servidor, usarei o recurso de armazenamento do Laravel. Portanto, primeiro preciso criar um link simb\u00f3lico para uma pasta de &#8216;armazenamento&#8217;. Execute o comando abaixo para criar um link simb\u00f3lico:<\/p>\n<pre><code>php artisan storage:link<\/code><\/pre>\n<p>Nosso mapa de rota &#8216;upload&#8217; com o m\u00e9todo de upload de <code>CKEditorController<\/code>. Portanto, crie um controlador <code>CKEditorController<\/code>e defina o <code>upload<\/code>m\u00e9todo nele da seguinte maneira:<\/p>\n<pre><code>&lt;?php\n\u00a0\nnamespace AppHttpControllers;\n\u00a0\nuse IlluminateHttpRequest;\n\u00a0\nclass CKEditorController extends Controller\n{\n\u00a0\u00a0\u00a0\u00a0public function upload(Request $request)\n\u00a0\u00a0\u00a0\u00a0{\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0if($request-&gt;hasFile('upload')) {\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\/\/get filename with extension\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0$filenamewithextension = $request-&gt;file('upload')-&gt;getClientOriginalName();\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\/\/get filename without extension\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0$filename = pathinfo($filenamewithextension, PATHINFO_FILENAME);\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\/\/get file extension\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0$extension = $request-&gt;file('upload')-&gt;getClientOriginalExtension();\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\/\/filename to store\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0$filenametostore = $filename.'_'.time().'.'.$extension;\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\/\/Upload File\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0$request-&gt;file('upload')-&gt;storeAs('public\/uploads', $filenametostore);\n\u00a0\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0$CKEditorFuncNum = $request-&gt;input('CKEditorFuncNum');\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0$url = asset('storage\/uploads\/'.$filenametostore);\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0$msg = 'Image successfully uploaded';\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0$re = \"&lt;script&gt;window.parent.CKEDITOR.tools.callFunction($CKEditorFuncNum, '$url', '$msg')&lt;\/script&gt;\";\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\/\/ Render HTML output\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0@header('Content-type: text\/html; charset=utf-8');\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0echo $re;\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0}\n\u00a0\u00a0\u00a0\u00a0}\n}<\/code><\/pre>\n<p>Agora tente fazer o upload da imagem da op\u00e7\u00e3o de imagem embutida do CKEditor e voc\u00ea obter\u00e1 a imagem adicionada em seu editor.<\/p>\n<p>Espero que voc\u00ea entenda como instalar e usar o CKEditor no Laravel. Por favor, compartilhe suas id\u00e9ias e sugest\u00f5es no coment\u00e1rio abaixo.<\/p>\n<h4>Artigos relacionados<\/h4>\n<ul>\n<li><a href=\"https:\/\/themewp.inform.click\/pt-pt\/como-usar-o-laravel-tinker\/\" title=\"Como usar o Laravel Tinker\">Como usar o Laravel Tinker<\/a><\/li>\n<li><a href=\"https:\/\/themewp.inform.click\/pt-pt\/como-executar-comandos-do-laravel-artisan-em-texto-sublime\/\" title=\"Como executar comandos do Laravel Artisan em texto sublime\">Como executar comandos do Laravel Artisan em texto sublime<\/a><\/li>\n<\/ul>\n<p><div id=\"PostUnique_PostSource\" style=\"padding-top: 50px\">Fonte de grava\u00e7\u00e3o:  <a target=\"_blank\" rel=\"noopener nofollow\" href=\"\/\/artisansweb.net\" class=\"external external_icon\">artisansweb.net<\/a><\/div><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Quer usar o CKEditor no Laravel? Neste artigo, mostramos como instalar e usar o CKEditor no Laravel. CKEditor \u00e9 um editor de texto da web que nos permite<\/p>\n","protected":false},"author":1,"featured_media":21749,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":"","_wp_rev_ctl_limit":""},"categories":[502],"tags":[848],"class_list":["post-27637","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-laravel","tag-affiai-pt-pt"],"_links":{"self":[{"href":"https:\/\/themewp.inform.click\/pt-pt\/wp-json\/wp\/v2\/posts\/27637","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/themewp.inform.click\/pt-pt\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/themewp.inform.click\/pt-pt\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/themewp.inform.click\/pt-pt\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/themewp.inform.click\/pt-pt\/wp-json\/wp\/v2\/comments?post=27637"}],"version-history":[{"count":0,"href":"https:\/\/themewp.inform.click\/pt-pt\/wp-json\/wp\/v2\/posts\/27637\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/themewp.inform.click\/pt-pt\/wp-json\/wp\/v2\/media\/21749"}],"wp:attachment":[{"href":"https:\/\/themewp.inform.click\/pt-pt\/wp-json\/wp\/v2\/media?parent=27637"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/themewp.inform.click\/pt-pt\/wp-json\/wp\/v2\/categories?post=27637"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/themewp.inform.click\/pt-pt\/wp-json\/wp\/v2\/tags?post=27637"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}