0
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

laravel + CKEditorが便利すぎた件

Last updated at Posted at 2021-11-18

仕事でブログ記事を書く時のエディタを導入することになったので色々調べて実装してみました!

参考にしたサイト
ブログ記事等のエディタを実装する際はCKEditor!さらに便利でカッコよく使い易く!サンプルソースあり

解説

ckeditorとJqueryのCDNをscriptタグに定義してください

   <textarea id="ckeditor" name="pageBody"></textarea>

    {{-- CKEditor --}}
    <script src="//cdn.ckeditor.com/4.15.0/full/ckeditor.js"></script>
    <script src="//cdnjs.cloudflare.com/ajax/libs/jquery/1.11.2/jquery.min.js"></script>
    <script src="js/ckeditor.js"></script>

CKEDITOR.replace("ckeditor",{}) 内に設定を行うことで、ブログの記事を書くエディタが表示されます!! すごい!!

設定内容は以下のドキュメントで設定したい対象を指定してください
CKEditor Ecosystem Documentation

スクリーンショット 2021-11-19 3.58.52.png

// js/ckeditor.js

$(function () {

    // エディタへの設定を適用します
    CKEDITOR.replace("ckeditor", {
        uiColor: "#EEEEEE", // UIの色を指定します
        height: 400, // エディタの高さを指定します

        // スペルチェック機能OFF
        scayt_autoStartup: false,

        // Enterを押した際に改行タグを挿入
        enterMode: CKEDITOR.ENTER_BR,

        // Shift+Enterを押した際に段落タグを挿入
        shiftEnterMode: CKEDITOR.ENTER_P,

        // idやclassを指定可能にする
        allowedContent: true,

        // ファイルマネージャー関連
        filebrowserImageBrowseUrl: "/laravel-filemanager?type=Images",
        filebrowserImageUploadUrl:
            "/laravel-filemanager/upload?type=Images&_token=",
        filebrowserBrowseUrl: "/laravel-filemanager?type=Files",
        filebrowserUploadUrl: "/laravel-filemanager/upload?type=Files&_token=",

        // preコード挿入時
        format_pre: {
            element: "pre",
            attributes: {
                class: "code",
            },
        },
        // タグのパンくずリストを削除
        removePlugins: "elementspath",

        // webからコピペした際でもプレーンテキストを貼り付けるようにする
        forcePasteAsPlainText: true,

        // 自動で空白を挿入しないようにする
        fillEmptyBlocks: false,

        // タブの入力を無効にする
        tabSpaces: 0,
    });
};

画像もアップロードできるようにしてみた

以下を参考にしました(基本的にこちらの記事が凄いのでこの通りにやれば大丈夫です)
Laravelのファイル管理ライブラリ Laravel File Manager

筆者の環境ではエラーが頻発したので対処方法を紹介します

composer require unisharp/laravel-filemanager

Your requirements could not be resolved to an installable set of packages.

  Problem 1
    - Installation request for unisharp/laravel-filemanager ^2.2 -> satisfiable by unisharp/laravel-filemanager[v2.2.0].
    - unisharp/laravel-filemanager v2.2.0 requires ext-exif * -> the requested PHP extension exif is missing from your system.

解決方法

PHPで画像からEXIF情報を取得するためにEXIFモジュールが必要らしい

参考サイト
docker上のPHPでEXIFを使えるようにする

DockerFileに以下を追加し再度ビルドする

RUN docker-php-ext-install exif
RUN docker-php-ext-configure exif \
            --enable-exif

ビルド成功後、composer require unisharp/laravel-filemanagerを実行するとエラーが解消しました!

composer require unisharp/laravel-filemanager

最後に

読んでいただきありがとうございます。
今回の記事はいかがでしたか?
・こういう記事が読みたい
・こういうところが良かった
・こうした方が良いのではないか
などなど、率直なご意見を募集しております。

0
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?