Mấy ngày này mình tìm hiểu về cách tích hợp ckeditor5 + ckfinder đến website của mình, cũng khó khăn vãi chưỡng, nhưng nay mình làm được rồi, cũng chia sẻ với mọi người cách tích hợp như sau:
Github: Ckeditor 5 + Ckfinder3
# Tạo project ckeditor 5 của bạn và cài đặt như sau:
npm init
npm install --save @ckeditor/ckeditor5-build-classic
# Tiếp theo hãy download ckfinder 3 về máy , nhớ chọn ckfinder đúng phiên bản php mà bạn đang dùng nhé:
Ví dụ : php bạn đang dùng là php 7, thì tải ckfinder 3.4.3, còn php 8=>ckfinder 3.5.3
Bạn có thể vào link dưới đây để tại : https://ckeditor.com/ckfinder/download/
Sau khi tải ckfinder về giải nén nó vào thư mục của bạn
# Tạo file index.html hay index.php cũng được trong thư mục project của bạn
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
<!-- <script src="https://cdn.ckeditor.com/ckeditor5/12.3.1/classic/ckeditor.js"></script> -->
<script src="./node_modules/@ckeditor/ckeditor5-build-classic/build/ckeditor.js"></script>
<script type="text/javascript" src="ckfinder/ckfinder.js"></script>
</head>
<body >
<div id="editor" ></div>
<script type="text/javascript">
ClassicEditor.create(document.querySelector('#editor'), {
ckfinder: {
// Upload the images to the server using the CKFinder QuickUpload command.
uploadUrl: 'ckfinder/core/connector/php/connector.php?command=QuickUpload&type=Files&responseType=json',
// Define the CKFinder configuration (if necessary).
options: {
resourceType: 'Images'
}
},
toolbar: {
items: [
'heading',
'|',
'bold',
'italic',
'underline',
'strikethrough',
'subscript',
'superscript',
'alignment',
'|',
'fontFamily',
'fontSize',
'fontColor',
'fontBackgroundColor',
'highlight',
'|',
'bulletedList',
'numberedList',
'|',
'outdent',
'indent',
'|',
'link',
'imageInsert',
'imageUpload',
'blockQuote',
'insertTable',
'mediaEmbed',
'code',
'specialCharacters',
'|',
'undo',
'redo',
'|',
'CKFinder'
],
shouldNotGroupWhenFull: true,
},
language: 'en',
image: {
toolbar: [
'imageTextAlternative',
'imageStyle:full',
'imageStyle:side',
'linkImage'
]
},
table: {
contentToolbar: [
'tableColumn',
'tableRow',
'mergeTableCells',
'tableCellProperties',
'tableProperties'
]
},
licenseKey: '',
})
.then(editor => {
window.editor = editor;
CKFinder.setupCKEditor(editor);
console.log( Array.from( editor.ui.componentFactory.names() ) );
})
.catch(error => {
console.error(error);
});
</script>
</body>
</html>
# Các bạn nhìn bên trên ta có thẻ <div id="editor"></div> dùng để load ckeditor của ta ra
Để show các thanh công cụ của toolbar ra thì các bạn có thể tìm hiểu thêm tại trang : https://ckeditor.com/docs/ckeditor5/latest/features/toolbar/toolbar.html
# Cấu hình ckfinder 3 của ta như sau
Nói chung thì ta chỉ cấu hình đường dẫn và bảo mật thôi, mở file config.php trong ckfinder của ta lên và chỉnh nhé,
$config['authentication'] = function () {
return true;
};
$config['backends'][] = array(
'name' => 'default',
'adapter' => 'local',
'baseUrl' => 'http://localhost/TestCkeditor/upload/',
// 'root' => '', // Can be used to explicitly set the CKFinder user files directory.
'chmodFiles' => 0777,
'chmodFolders' => 0755,
'filesystemEncoding' => 'UTF-8',
);
Bên trên mà ta thường hay cấu hình như vậy, tuy vào cách của mọi người nhé!