Danh sách Tutorial

Tích hợp công cụ soạn thảo TinyMCE vào Laravel


Hôm nay vinasupport.com sẽ hướng dẫn các bạn tích hợp một trong những công cụ soạn thảo phổ biến và nổi tiếng nhất TinyMCE cho website.

TinyMCE là gì?

TinyMCE là một trình soạn thảo HTML WYSIWYG tiên tiến nhất được thiết kế cho việc đơn giản hóa việc tạo nội dung trang web. Nó được sư dụng phổ biến trong WordPress, Medium, Evernote và trong nhiều công cụ khác. TinyMCE luôn là lựa chọn của nhóm phát triển chuyên nghiệp.

Tích hợp TinyMCE vào Laravel

Một trang web thiên về nội dung thì không thể thiếu 1 công cụ soạn thảo được. Nên vinasupport.com sẽ hướng dẫn các bạn tích hợp công cụ soạn thảo TinyMCE vào Laravel với Vite trong serial lập trình Laravel.

Bước 1: Thêm TinyMCE vào project bằng composer

composer require tinymce/tinymce

Bước 2: Tạo file tinymce-config.blade.php trong thư mục resources/views/admin/component/ của Laravel (Bạn có thể thay đổi theo đường dẫn project của bạn)

<script src="{{ Vite::asset('vendor/tinymce/tinymce/tinymce.min.js') }}" referrerpolicy="origin"></script>

<script>
    tinymce.init({
        selector: '.web-editor', // Replace this CSS selector to match the placeholder element for TinyMCE
        plugins: 'code table lists',
        toolbar: 'undo redo | blocks | bold italic | alignleft aligncenter alignright | indent outdent | bullist numlist | code | table'
    });
</script>

Bước 3: Đặt textarea có class là .web-editor ở bất kỳ chỗ nào trong project của bạn để hiển thị bộ soạn thảo.

<textarea class="form-control web-editor" id="input-content" rows="3"></textarea>

Bước 4: Chạy lệnh php artisan serve để khởi chạy web chúng ta sẽ có.

TinyMCE sử dụng Laravel Vite

Trường hợp bạn chạy server từ thư mục public thì bạn cài đặt plugin vite-plugin-static-copy để copy toàn bộ source tinymce ở thư mục vendor ra thư mục public

Cài đặt plugin vui lòng tham khảo hướng dẫn ở đây:

Sử file config vite.config.js với nội dung như sau:

import { defineConfig } from 'vite';
import laravel from 'laravel-vite-plugin';
import { viteStaticCopy } from 'vite-plugin-static-copy'

export default defineConfig({
    plugins: [
        laravel({
            input: [
                'resources/sass/app.scss',
                'resources/js/app.js',
            ],
            refresh: true,
        }),
        viteStaticCopy({
            targets: [
                {
                    src: 'vendor/tinymce/tinymce',
                    dest: '../js/'
                },
            ]
        })
    ],
});

 

Sau đó chạy lệnh vite build để copy file ra thư mục public

Trong file tinymce-config.blade.php sửa thành:

<script src="{{ asset('js/tinymce/tinymce.min.js') }}" referrerpolicy="origin"></script>
{{--<script src="{{ Vite::asset('vendor/tinymce/tinymce/tinymce.min.js') }}" referrerpolicy="origin"></script>--}}

<script>
    tinymce.init({
        selector: '.web-editor', // Replace this CSS selector to match the placeholder element for TinyMCE
        plugins: 'code table lists',
        toolbar: 'undo redo | blocks | bold italic | alignleft aligncenter alignright | indent outdent | bullist numlist | code | table'
    });
</script>

TinyMCE sử dụng Laravel Mix

Trường hợp sử dụng Laravel Mix với Webpack các bạn vui lòng tham khảo hướng dẫn chi tiết tại đây

Nguồn vinasupport.com

 

SHARE

mode_edit Bình luận của bạn

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *

account_circle
web