Khanh Hoang - Kenn
Kenn is a user experience designer and front end developer who enjoys creating beautiful and usable web and mobile experiences.
Khi bạn cài syntaxhighterlighter cùng với ckeditor thì khi chuyển server hoặc khi cài kèm một số module có liên kết bên ngoài như Facebook comment,Facebook like thì thường sẽ khiến tro bài viết không hiện lỗi và báo "Can't find brush for: [Tên ngôn ngữ]".
Khi để ý trong phần report status thì ta sẽ thấy thông báo
You are using a feature that requires $cookie_domain to be set, but it is not set in your settings.php file (CKFinder is enabled in the Full profile).
Đó là do CKFinder được chạy khởi động trong phần Full profile (Full HTML) và nó yêu cầu (không bắt buộc) lưu lại tên domain của bạn để sử dụng cho các plugin khác của CKeditor. Và syntaxhighlighter thì lại dùng giá trị đó để xử lý và tạo đường dẫn.Thông thường thì CKeditor sẽ hoạt động bình thường kể cả khi biến $cookie_domain không được set và chỉ đưa ra cảnh báo ở phần report status.Tuy nhiên,nếu dùng chung với các module mà có dùng js để truy cập đến các server ngoài như Facebook comment hay Facebook like thì lúc này nó sẽ gọi đến biến $cookie_domain.Và do nó không được set nên nó sẽ có giá trị rỗng.Tình trạng lỗi không tìm thấy ngôn ngữ cũng là do đường dẫn đến file brush[ngôn ngữ] bị sai bị chuyển từ
www.abc.com/subfolder/sites/files/xyz.js thành www.abc.com/sites/files/xyz.js (Trên firebug bạn sẽ
thấy báo là không tìm thấy file).
Rất đơn giản bạn chỉ việc vào file settings.php và kéo đến phần $cookie_domain và thêm đường dẫn host.Ví dụ nếu host bạn là localhost/drupal thì ta sửa :
$cookie_domain = 'localhost';
Còn với domain thì ta thay vì dùng www.abc.com thì ta phải đặt là :
$cookie_domain = '.abc.com'
Tuy nhiên cách trên sẽ rất khó khăn cho việc khi chuyển host ta sẽ phải sửa lại dòng này.Vì vậy.Ta chỉ cần thay domain cần đánh bằng biến $SERVER của php :
$cookie_domain = $_SERVER['HTTP_HOST'];
Bình luận (0)
Add Comment