Thumbnail
Category: Lập trình

CKEditor đơn giản nhưng mạnh mẽ

Date: May 24, 2020
20 views


ckeditor 4 skin

CKEditor là một trình soạn thảo văn bản HTML hỗ trợ người dùng trong việc soạn thảo văn bản HTML trong việc thiết kế website

Điểm nổi bật của CKEditor là đơn gian, nhẹ gọn mà đầy đủ chức năng, cài đặt dễ dàng, miễn phí.

Phiên bản hiện tại là 4.5.x các bạn có thể tải về từ website của nhà phát triển tại địa chỉ: http://ckeditor.com/download . CKEditor có 3 gói cài đặt do nhà phát tiển đưa ra là BasicStandard và Full tương ứng với 17 plugins, 48 plugins và 72 plugins. Ngoài ra các bạn cũng có thể tự chọn các plugin theo ý của mình.

1. Sử dụng CKEditor

Để chèn CKEditor vào website mà cụ thể là mã HTML chúng ta làm như sau:

Bước 1: Tải gói cài đặt CKEditor

Để tải CKEditor chúng ta truy cập địa chỉ http://ckeditor.com/download

download ckeditor

Ở đây tôi dùng gói Standard. Nhưng tôi khuyên các bạn nên tự chọn cho mình các plugins bằng cách chọn vào “Or let me custimize CKEditor” để có được các chức năng tốt nhất.

Bước 2: Giải nén file vừa tải về

Sau khi giải nén chúng ta được cấu trúc các thư mục của CKEditor như sau:

Bước 3: Chèn CKEditor vào mã HTML

Trình soạn thảo CKEditor sẽ được chèn vào thẻ textarea.

Ví dụ: Các bạn tạo file html với nội dung sau.


<html>
<head>
   <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
   <title>Demo CKEditor</title>
   <script src="ckeditor/ckeditor.js"></script>
</head>
<body>
   <h1>Demo CKEditor</h1>
   <form >
      <textarea name="ten" id="ten"></textarea>
      <script>CKEDITOR.replace('ten');</script>
   </form>
</body>
</html>

Chú ý:

  • Chèn script Ckeditor: <script src=”ckeditor/ckeditor.js“></script>
  • Khai báo CKEditor: <script>CKEDITOR.replace(‘ten‘);</script>. Trong dó “ten” là id của textarea

Kết quả hiển thị như sau:

demo ckeditor

Nguồn: http://laptrinhphp.info/PHP-Nang-cao/Bai-17-Tich-hop-editor-vao-trang-Web-(FCK-Editor).html

2. Upload Image CMS OpenCart

code giao diện


<fieldset>
  <legend>Introduce yourself</legend>
  <textarea class="form-control" rows="5" name="info-customer"><?php echo $infoCustomer; ?></textarea>
    </fieldset>
    <script src="https://cdn.ckeditor.com/4.15.0/standard/ckeditor.js"></script>
​
    <script>
    CKEDITOR.replace( 'info-customer' , {
      filebrowserUploadUrl: '<?php echo HTTP_SERVER.'index.php?route=account/uploadimage'; ?>',
      filebrowserUploadMethod: 'form',
    });
</script>
​
  <style>
  .ck-editor__editable_inline {
  min-height: 300px;
  max-height: 300px;
}
</style>

Code xử lý upload, Ở đây là controller uploadimage trong thư mục account


<?php
class ControllerAccountUploadimage extends Controller {
    public function index() {
        if(isset($_FILES['upload']['name']))
        {
             $file = $_FILES['upload']['tmp_name'];
             $file_name = $_FILES['upload']['name'];
             $file_name_array = explode(".", $file_name);
             $extension = end($file_name_array);
             $new_image_name = rand() . $file_name_array[0] . '.' . $extension;
​
             $allowed_extension = array("jpg", "gif", "png");
             if(in_array($extension, $allowed_extension))
             {
              move_uploaded_file($file, DIR_UPLOAD . $new_image_name);
              $function_number = $_GET['CKEditorFuncNum'];
              $url = HTTP_SERVER. "system/upload/" . $new_image_name;
              $message = '';
              echo "<script type='text/javascript'>window.parent.CKEDITOR.tools.callFunction($function_number, '$url', '$message');</script>";
             }
        }
    }
}
​

4. Set and get data từ ckeditor


var editor = CKEDITOR.replace('<%=txtNoiDungCauHoi.ClientID%>');
editor.on('change', function (evt) {
  // getData() returns CKEditor's HTML content.
  document.getElementById('content_txtNoiDungCauHoi').value = evt.editor.getData();
});
​
CKEDITOR.instances.<%=txtNoiDungCauHoi.ClientID%>.setData(document.getElementById('content_txtNoiDungCauHoi').value);

Kết Luận

Trên đây là phần mình học về CKEditor tại trang web laptrinhphp.info. Cảm ơn các bạn đã xem bài viết!


Copyright © 2025 All Right Reserved