{"id":24549,"date":"2021-05-20T11:02:00","date_gmt":"2021-05-20T08:02:00","guid":{"rendered":"https:\/\/themewp.inform.click\/?p=24549"},"modified":"2021-10-18T02:15:12","modified_gmt":"2021-10-17T23:15:12","slug":"comment-installer-et-utiliser-ckeditor-dans-laravel","status":"publish","type":"post","link":"https:\/\/themewp.inform.click\/fr\/comment-installer-et-utiliser-ckeditor-dans-laravel\/","title":{"rendered":"Comment installer et utiliser CKEditor dans Laravel"},"content":{"rendered":"<p>Voulez-vous installer CKEditor dans Laravel\u00a0? CKEditor est un \u00e9diteur HTML WYSIWYG (ce que vous voyez est ce que vous obtenez) qui nous permet d&rsquo;\u00e9crire des formats de texte enrichi. Dans cet article, je vous montre comment <strong>installer et utiliser CKEditor dans Laravel<\/strong>.<\/p>\n<h3>Pourquoi utiliser CKEditor\u00a0?<\/h3>\n<p>L&rsquo;\u00e9diteur de texte enrichi est n\u00e9cessaire pour r\u00e9diger du contenu riche pour vos pages ou articles. Sur la page Web, nous devons avoir diff\u00e9rents \u00e9l\u00e9ments comme des images, des paragraphes, des liens, etc. Tous ces diff\u00e9rents \u00e9l\u00e9ments peuvent \u00eatre ajout\u00e9s \u00e0 l&rsquo;aide de CKEditor.<\/p>\n<p>HTML fournit un \u00e9l\u00e9ment textarea pour \u00e9crire la description. Mais, cela vient avec des limites. Dans textarea, il n&rsquo;est pas facile et convivial d&rsquo;\u00e9crire d&rsquo;autres \u00e9l\u00e9ments HTML comme p, div, img, etc.<\/p>\n<p>Pour surmonter ces limitations, vous pouvez utiliser CKEditor qui est lui-m\u00eame un \u00e9diteur de texte enrichi. Notre \u00e9diteur final ressemblera \u00e0 la capture d&rsquo;\u00e9cran ci-dessous.<\/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=\"Comment installer et utiliser CKEditor dans Laravel\" ><\/a><\/p>\n<h3>Installer CKEditor dans Laravel<\/h3>\n<p>Il existe 2 fa\u00e7ons d&rsquo;installer CKEditor dans Laravel &#8211; CDN ou CKEditor package. Vous pouvez obtenir les deux ressources \u00e0 partir de leur page de <a href=\"https:\/\/ckeditor.com\/ckeditor-4\/download\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">t\u00e9l\u00e9chargement<\/a>.<\/p>\n<p>Le lien CDN est <code>\/\/cdn.ckeditor.com\/4.14.0\/standard\/ckeditor.js<\/code>. Si vous optez pour le CDN, vous n&rsquo;avez pas besoin de t\u00e9l\u00e9charger quoi que ce soit sur le site Web de CKEditor.<\/p>\n<p>Si vous avez l&rsquo;intention de l&rsquo;installer sans CDN, t\u00e9l\u00e9chargez le package (package standard recommand\u00e9). Ensuite, cr\u00e9ez un dossier &lsquo;ckeditor&rsquo; dans le r\u00e9pertoire &lsquo;public&rsquo; de votre projet Laravel. Et \u00e0 l&rsquo;int\u00e9rieur de ce dossier &lsquo;ckeditor&rsquo;, copiez ci-dessous les fichiers et dossiers du package t\u00e9l\u00e9charg\u00e9.<\/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=\"Comment installer et utiliser CKEditor dans Laravel\" ><\/a><\/p>\n<h3>Comment utiliser CKEditor<\/h3>\n<p>A ce stade, vous avez termin\u00e9 les \u00e9tapes d&rsquo;installation du package CKEditor. Voyons maintenant comment utiliser CKEditor.<\/p>\n<p>Disons que vous avez une &lsquo;zone de texte&rsquo; qui devrait \u00eatre remplac\u00e9e par CKEditor. Pour ce faire, j&rsquo;ajoute l&rsquo;identifiant &lsquo;summary-ckeditor&rsquo; \u00e0 la &lsquo;textarea&rsquo;.<\/p>\n<pre><code>&lt;textarea class=\"form-control\" id=\"summary-ckeditor\" name=\"summary-ckeditor\"&gt;&lt;\/textarea&gt;<\/code><\/pre>\n<p>Ensuite, vous devez inclure un <code>ckeditor.js<\/code>fichier et \u00e9crire un code JavaScript qui remplace &lsquo;textarea&rsquo; par 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>Le code JavaScript ci-dessus remplace textarea par CKEditor. Si vous souhaitez utiliser CDN, le code ci-dessus serait le suivant\u00a0:<\/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>Ex\u00e9cutez votre page sur le navigateur et vous devriez maintenant pouvoir voir le CKeditor. Vous pouvez maintenant ajouter votre contenu \u00e0 l&rsquo;\u00e9diteur et l&rsquo;utiliser sur votre site Web.<\/p>\n<h3>T\u00e9l\u00e9charger et ins\u00e9rer une image dans CKEditor<\/h3>\n<p>CKEditor par d\u00e9faut ne donne pas la possibilit\u00e9 de t\u00e9l\u00e9charger l&rsquo;image. Si quelqu&rsquo;un cherche \u00e0 donner cette option, continuez \u00e0 lire cet article. Il doit ajouter une route Laravel, \u00e9crire un code pour le t\u00e9l\u00e9chargement d&rsquo;images et du JavaScript dans votre application. Tout d&rsquo;abord, pour activer l&rsquo;option de t\u00e9l\u00e9chargement d&rsquo;images, vous devez appeler CKEditor de la mani\u00e8re suivante.<\/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>Ici, pour la cl\u00e9, <code>filebrowserUploadUrl<\/code>j&rsquo;ai pass\u00e9 l&rsquo;URL de la route et le jeton csrf. D\u00e9finissons la route &lsquo;upload&rsquo;.<\/p>\n<pre><code>Route::post('ckeditor\/image_upload', 'CKEditorController@upload')-&gt;name('upload');<\/code><\/pre>\n<p>Recharge la page. Maintenant, si vous cliquez sur l&rsquo;ic\u00f4ne d&rsquo;image de CKEditor, vous verrez l&rsquo;option de t\u00e9l\u00e9chargement d&rsquo;image comme indiqu\u00e9 ci-dessous.<\/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=\"Comment installer et utiliser CKEditor dans Laravel\" ><\/a><\/p>\n<p>Afin d&rsquo;utiliser l&rsquo;image t\u00e9l\u00e9charg\u00e9e dans CKEditor, vous devez t\u00e9l\u00e9charger l&rsquo;image dans votre dossier d&rsquo;application et renvoyer une URL d&rsquo;image. Pour stocker une image sur un serveur, j&rsquo;utiliserai la fonction de stockage Laravel. Je dois donc d&rsquo;abord cr\u00e9er un lien symbolique d&rsquo;un dossier de &quot;stockage&quot;. Ex\u00e9cutez la commande ci-dessous pour cr\u00e9er un lien symbolique\u00a0:<\/p>\n<pre><code>php artisan storage:link<\/code><\/pre>\n<p>Notre carte de \u00ab\u00a0t\u00e9l\u00e9chargement\u00a0\u00bb d&rsquo;itin\u00e9raire avec la m\u00e9thode de t\u00e9l\u00e9chargement de <code>CKEditorController<\/code>. Cr\u00e9ez donc un contr\u00f4leur <code>CKEditorController<\/code>et d\u00e9finissez la <code>upload<\/code>m\u00e9thode comme suit\u00a0:<\/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>Voil\u00e0, essayez maintenant de t\u00e9l\u00e9charger l&rsquo;image \u00e0 partir de l&rsquo;option d&rsquo;image int\u00e9gr\u00e9e de CKEditor et vous obtiendrez l&rsquo;image ajout\u00e9e dans votre \u00e9diteur.<\/p>\n<p>J&rsquo;esp\u00e8re que vous comprenez comment installer et utiliser CKEditor dans Laravel. Veuillez partager vos pens\u00e9es et suggestions dans le commentaire ci-dessous.<\/p>\n<h4>Articles Li\u00e9s<\/h4>\n<ul>\n<li><a href=\"https:\/\/themewp.inform.click\/fr\/comment-utiliser-laravel-tinker\/\" title=\"Comment utiliser Laravel Tinker\">Comment utiliser Laravel Tinker<\/a><\/li>\n<li><a href=\"https:\/\/themewp.inform.click\/fr\/comment-executer-les-commandes-laravel-artisan-dans-un-texte-sublime\/\" title=\"Comment ex\u00e9cuter les commandes Laravel Artisan dans un texte sublime\">Comment ex\u00e9cuter les commandes Laravel Artisan dans un texte sublime<\/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>Vous voulez utiliser CKEditor dans Laravel ? Dans cet article, nous vous montrons comment installer et utiliser CKEditor dans Laravel. CKEditor est un \u00e9diteur de texte web qui nous permet de<\/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":[497],"tags":[844],"class_list":["post-24549","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-laravel2-4","tag-affiai-fr"],"_links":{"self":[{"href":"https:\/\/themewp.inform.click\/fr\/wp-json\/wp\/v2\/posts\/24549","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=24549"}],"version-history":[{"count":0,"href":"https:\/\/themewp.inform.click\/fr\/wp-json\/wp\/v2\/posts\/24549\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/themewp.inform.click\/fr\/wp-json\/wp\/v2\/media\/21749"}],"wp:attachment":[{"href":"https:\/\/themewp.inform.click\/fr\/wp-json\/wp\/v2\/media?parent=24549"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/themewp.inform.click\/fr\/wp-json\/wp\/v2\/categories?post=24549"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/themewp.inform.click\/fr\/wp-json\/wp\/v2\/tags?post=24549"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}