Bu yazı CKEditor kullanımı sırasında oluşan sorunları ve ayrıntılı çözüm yöntemlerini içermektedir. Bu konuyu CKEditor kullanımı ve kurulumu adlı yazı içerisinde anlatmayı düşünüyordum ama ayrı bir yazı içerisinde yazmayı daha uygun buldum. Faydalı olması dileğiyle…
CKEditor HTML Etiket Silme
Sorunu
CKEditor kullanırken kod tarafından arayüz kısmına geçiş yapıldığı sırada oluşturduğumuz içerik, editörün filtresi tarafından html etiketlerinin class, style gibi özellikleri silinebiliyor yada div etiketi, özel olarak adlandırdığımız yeni html etiketler kullanıyorsak, bu html etiketler silinebiliyor.
Bu sorunu engellemek için ckeditor klasörü içerisinde bulunan config.js dosyası içerisine aşağıdaki kod satırını eklemeliyiz.
config.allowedContent = true;
Örnek kullanım aşağıdaki gibidir.
CKEDITOR.editorConfig = function( config ) {
config.allowedContent = true;
};
CKEditor Türkçe Karakter
Sorunu
CKEditor’de Türkçe karakter sorunu yaşıyorsanız web sayfasının karakter kodlamasını UTF-8 olarak değiştirin.
Yada PHP tarafında içerik tipini ve karakter kodlamasını bu şekilde ayarlayabilirsiniz.
header("Content-Type: text/html; charset=utf-8");
Veya Türkçe karakter sorunu PHP’de mysql veritabanı işlemlerinden kaynaklanıyor ise phpmyadmin içerisinde kurduğunuz veritabanını UTF formatında (utf8_general_ci, utf8_turkish_ci) değiştirin.
Ayrıca PHP tarafında veritabanına bağlanma işlemi gerçekleştirilirken aşağıdaki kodları da Türkçe karakter sorununu çözmek için ekleyebilirsiniz.
$baglan = mysqli_connect($host, $user, $pass, $db) or die (mysqli_Error()); //veritabanına bağlanma
mysqli_query($baglan,"SET CHARACTER SET 'utf8'");
mysqli_query($baglan,"SET NAMES 'utf8'");
CKEditor Türkçe karakter sorunu hala devam eder ise ckeditor klasörü içerisindeki config.js dosyası içerisine aşağıdaki kodu ekleyin.
CKEDITOR.editorConfig = function( config ) {
config.entities = false; config.entities_latin = false;
};
CKEditor Enter Modu
Ayarlama
Bu işlem aslında tam olarak sorun sayılmaz. CKEditor kullanırken enter tuşuna basıldığı sırada bir alt satıra inmek için
etiketi içerisine boşluk ifadesi girilmekte. P etiketi yerine
etiketi girilmesini istiyor isek ckeditor klasöründe bulunan config.js dosyası içerisine aşağıdaki kodu eklemeliyiz.
CKEDITOR.editorConfig = function( config ) {
config.enterMode = 2;
};
CKEditor Otomatik Boşluk
Sorunu
CKEditor kullanılırken boş olsa bile otomatik
etiketi atayabiliyor. Eğer böyle bir sorun var ise ckeditor klasöründe bulunan config.js dosyası içerisine aşağıdaki kodu yazarak deneyin.
CKEDITOR.editorConfig = function( config ) {
config.newpage_html = '';
};
CKEditor Code Snippet
Eklentisi Karakter Sorunu
CKEditor code snippet eklentisi kurdunuz, her şey güzelce çalışıyor. Bir şeyler ekliyoruz, veritabanına kaydediyoruz ve sayfayı yeniliyoruz. Görüyoruz ki veritabanına eklediğimiz veriyi sitede yazdırdığımızda sorun yok ama CKEditor içerisinde yazdırdığımızda bir sıkıntı var. Veriyi kaydedip, sayfayı yenilemeden önce ki gibi durmuyor. Halbuki veri kaydetme ve veriyi veritabanından getirme işlemlerinde sıkıntı yok. Çünkü bu sorun bizden kaynaklanmıyor. CKEditor’un yeni sürümlerinden itibaren ortaya çıkan bir sorun bu.
CKEditor code snippet karakter sorunu çözümü, CKEditor içerisine veriyi PHP htmlspecialchars fonksiyonu kullanarak yazdırmak. Kodunuzu aşağıdaki örnekteki gibi düzenleyin.