{"id":28116,"date":"2021-05-20T10:53:00","date_gmt":"2021-05-20T07:53:00","guid":{"rendered":"https:\/\/themewp.inform.click\/?p=28116"},"modified":"2021-10-18T03:43:36","modified_gmt":"2021-10-18T00:43:36","slug":"jak-zainstalowac-i-uzywac-ckeditor-w-laravel","status":"publish","type":"post","link":"https:\/\/themewp.inform.click\/pl\/jak-zainstalowac-i-uzywac-ckeditor-w-laravel\/","title":{"rendered":"Jak zainstalowa\u0107 i u\u017cywa\u0107 CKEditor w Laravel?"},"content":{"rendered":"<p>Czy chcesz zainstalowa\u0107 CKEditor w Laravel? CKEditor to edytor HTML typu WYSIWYG (to, co widzisz, otrzymujesz), kt\u00f3ry pozwala nam pisa\u0107 formaty tekstu sformatowanego. W tym artykule poka\u017c\u0119 jak <strong>zainstalowa\u0107 i u\u017cywa\u0107 CKEditor w Laravelu<\/strong>.<\/p>\n<h3>Dlaczego warto korzysta\u0107 z CKEditora?<\/h3>\n<p>Edytor tekstu sformatowanego jest niezb\u0119dny do pisania bogatej zawarto\u015bci stron lub artyku\u0142\u00f3w. Na stronie internetowej musimy mie\u0107 r\u00f3\u017cne elementy, takie jak obrazy, akapity, linki itp. Wszystkie te r\u00f3\u017cne elementy mo\u017cna doda\u0107 za pomoc\u0105 CKEditor.<\/p>\n<p>HTML dostarcza element textarea do pisania opisu. Ale ma ograniczenia. W textarea pisanie innych element\u00f3w HTML, takich jak p, div, img itp., nie jest \u0142atwe i przyjazne dla u\u017cytkownika.<\/p>\n<p>Aby przezwyci\u0119\u017cy\u0107 takie ograniczenia, mo\u017cesz u\u017cy\u0107 CKEditor, kt\u00f3ry sam w sobie jest edytorem tekstu sformatowanego. Nasz ostateczny edytor b\u0119dzie wygl\u0105da\u0142 jak na poni\u017cszym zrzucie ekranu.<\/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=\"Jak zainstalowa\u0107 i u\u017cywa\u0107 CKEditor w Laravel?\" ><\/a><\/p>\n<h3>Zainstaluj CKEditor w Laravel<\/h3>\n<p>Istniej\u0105 2 sposoby instalacji CKEditor w Laravel \u2013 CDN lub pakiet CKEditor. Oba zasoby mo\u017cna pobra\u0107 z ich strony <a href=\"https:\/\/ckeditor.com\/ckeditor-4\/download\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">pobierania<\/a>.<\/p>\n<p>Link CDN to <code>\/\/cdn.ckeditor.com\/4.14.0\/standard\/ckeditor.js<\/code>. Je\u015bli wybierzesz CDN, nie musisz niczego pobiera\u0107 ze strony CKEditor.<\/p>\n<p>Je\u015bli zamierzasz zainstalowa\u0107 go bez CDN, pobierz pakiet (zalecany pakiet standardowy). Nast\u0119pnie utw\u00f3rz folder 'ckeditor&#8217; w katalogu 'public&#8217; swojego projektu Laravel. A wewn\u0105trz tego folderu 'ckeditor&#8217; skopiuj poni\u017cej pliki i foldery z pobranego pakietu.<\/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=\"Jak zainstalowa\u0107 i u\u017cywa\u0107 CKEditor w Laravel?\" ><\/a><\/p>\n<h3>Jak korzysta\u0107 z CKEditora<\/h3>\n<p>Na tym etapie zako\u0144czy\u0142e\u015b kroki instalacji pakietu CKEditor. Zobaczmy teraz, jak korzysta\u0107 z CKEditor.<\/p>\n<p>Powiedzmy, \u017ce masz obszar tekstowy, kt\u00f3ry powinien zosta\u0107 zast\u0105piony przez CKEditor. Aby to zrobi\u0107, dodaj\u0119 id \u201esummary-ckeditor&quot; do \u201etextarea&#8221;.<\/p>\n<pre><code>&lt;textarea class=\"form-control\" id=\"summary-ckeditor\" name=\"summary-ckeditor\"&gt;&lt;\/textarea&gt;<\/code><\/pre>\n<p>Nast\u0119pnie musisz do\u0142\u0105czy\u0107 <code>ckeditor.js<\/code>plik i napisa\u0107 kod JavaScript, kt\u00f3ry zamieni 'textarea&#8217; na 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>Powy\u017cszy kod JavaScript zast\u0119puje textarea CKEditorem. Je\u015bli chcesz korzysta\u0107 z CDN, powy\u017cszy kod b\u0119dzie wygl\u0105da\u0142 nast\u0119puj\u0105co:<\/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>Uruchom swoj\u0105 stron\u0119 w przegl\u0105darce i powiniene\u015b teraz widzie\u0107 CKeditor. Mo\u017cesz teraz dodawa\u0107 swoje tre\u015bci do edytora i u\u017cywa\u0107 ich na swojej stronie internetowej.<\/p>\n<h3>Prze\u015blij i wstaw obraz w CKEditor<\/h3>\n<p>CKEditor domy\u015blnie nie daje mo\u017cliwo\u015bci wgrania obrazu. Je\u015bli kto\u015b chce da\u0107 t\u0119 opcj\u0119, czytaj dalej ten artyku\u0142. Musi doda\u0107 tras\u0119 Laravel, napisa\u0107 kod do przes\u0142ania obrazu i troch\u0119 JavaScriptu do twojej aplikacji. Po pierwsze, aby w\u0142\u0105czy\u0107 opcj\u0119 przesy\u0142ania obrazu, musisz wywo\u0142a\u0107 CKEditor w nast\u0119puj\u0105cy spos\u00f3b.<\/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>Tutaj dla klucza <code>filebrowserUploadUrl<\/code>przekaza\u0142em adres URL trasy i token csrf. Zdefiniujmy tras\u0119 \u201eprze\u015blij&#8221;.<\/p>\n<pre><code>Route::post('ckeditor\/image_upload', 'CKEditorController@upload')-&gt;name('upload');<\/code><\/pre>\n<p>Od\u015bwie\u017c stron\u0119. Teraz, je\u015bli klikniesz na ikon\u0119 obrazu CKEditor, zobaczysz opcj\u0119 przesy\u0142ania obrazu, jak pokazano poni\u017cej.<\/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=\"Jak zainstalowa\u0107 i u\u017cywa\u0107 CKEditor w Laravel?\" ><\/a><\/p>\n<p>Aby u\u017cy\u0107 przes\u0142anego obrazu w CKEditor, musisz wgra\u0107 obraz do folderu aplikacji i odes\u0142a\u0107 adres URL obrazu. Do przechowywania obrazu na serwerze u\u017cyj\u0119 funkcji przechowywania Laravel. Wi\u0119c najpierw musz\u0119 utworzy\u0107 dowi\u0105zanie symboliczne folderu 'storage&#8217;. Uruchom poni\u017csze polecenie, aby utworzy\u0107 dowi\u0105zanie symboliczne:<\/p>\n<pre><code>php artisan storage:link<\/code><\/pre>\n<p>Nasza mapa trasy \u201eprze\u015blij&#8221; z metod\u0105 przesy\u0142ania <code>CKEditorController<\/code>. Stw\u00f3rz wi\u0119c kontroler <code>CKEditorController<\/code>i zdefiniuj <code>upload<\/code>w nim metod\u0119 w nast\u0119puj\u0105cy spos\u00f3b:<\/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>To wszystko, teraz spr\u00f3buj przes\u0142a\u0107 obraz z wbudowanej opcji obrazu w CKEditor, a obraz zostanie dodany do edytora.<\/p>\n<p>Mam nadziej\u0119, \u017ce rozumiesz, jak zainstalowa\u0107 i u\u017cywa\u0107 CKEditor w Laravel. Podziel si\u0119 swoimi przemy\u015bleniami i sugestiami w poni\u017cszym komentarzu.<\/p>\n<h4>Powi\u0105zane artyku\u0142y<\/h4>\n<ul>\n<li><a href=\"https:\/\/themewp.inform.click\/pl\/jak-korzystac-z-laravel-tinker\/\" title=\"Jak korzysta\u0107 z Laravel Tinker\">Jak korzysta\u0107 z Laravel Tinker<\/a><\/li>\n<li><a href=\"https:\/\/themewp.inform.click\/pl\/jak-uruchamiac-polecenia-laravel-artisan-w-wysublimowanym-tekscie\/\" title=\"Jak uruchamia\u0107 polecenia Laravel Artisan w wysublimowanym tek\u015bcie?\">Jak uruchamia\u0107 polecenia Laravel Artisan w wysublimowanym tek\u015bcie?<\/a><\/li>\n<\/ul>\n<p><div id=\"PostUnique_PostSource\" style=\"padding-top: 50px\">\u0179r\u00f3d\u0142o nagrywania:  <a target=\"_blank\" rel=\"noopener nofollow\" href=\"\/\/artisansweb.net\" class=\"external external_icon\">artisansweb.net<\/a><\/div><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Chcesz u\u017cywa\u0107 CKEditor w Laravel? W tym artykule pokazujemy, jak zainstalowa\u0107 i u\u017cywa\u0107 CKEditor w Laravel. CKEditor to internetowy edytor tekstu, kt\u00f3ry pozwala nam<\/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":[501],"tags":[847],"class_list":["post-28116","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-laravel","tag-affiai-pl"],"_links":{"self":[{"href":"https:\/\/themewp.inform.click\/pl\/wp-json\/wp\/v2\/posts\/28116","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/themewp.inform.click\/pl\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/themewp.inform.click\/pl\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/themewp.inform.click\/pl\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/themewp.inform.click\/pl\/wp-json\/wp\/v2\/comments?post=28116"}],"version-history":[{"count":0,"href":"https:\/\/themewp.inform.click\/pl\/wp-json\/wp\/v2\/posts\/28116\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/themewp.inform.click\/pl\/wp-json\/wp\/v2\/media\/21749"}],"wp:attachment":[{"href":"https:\/\/themewp.inform.click\/pl\/wp-json\/wp\/v2\/media?parent=28116"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/themewp.inform.click\/pl\/wp-json\/wp\/v2\/categories?post=28116"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/themewp.inform.click\/pl\/wp-json\/wp\/v2\/tags?post=28116"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}