2012-09-04 15 views
6

CKEditor'da nasıl özel sınıflar veya metin paragraflarına bir kimlik eklerim? Olası sınıfları DB'den yüklemek ve CKE yüklenirken hangi listeye gireceklerine yazmak istiyorum. Kimlikler sadece yerinde oluşturulacaktı. Sınıflar ve kimlikler, bir metin parçasını dipnot veya başlık olarak işaretlemek gibi şeyler için kullanılacaktır.CKEditor'da CSS sınıfları ve paragraflara bir ID nasıl eklenir?


, ben -depending kaydedildikten sonra eleman stil kullanılabilir CSS sınıfları eklemek, istediğim kutuları kullanarak görünür stile metni değiştirmek istemiyorsanız Daha açıkçası kullanıldığı yerde.

cevap

3

İşte başlıyorsunuz. Bu kod, paragraflarınızı sonraki kimliklerle birlikte numaralandırır ve ayrıca, henüz atanmamış olan her paragrafa özel bir sınıf ekleyecektir.

var idCounter = 0, 
    pClass = 'myCustomClass', 
    pClassRegexp = new RegExp(pClass, 'g'); 

CKEDITOR.replace('editor1', { 
    on: { 
     instanceReady: function() { 
      this.dataProcessor.htmlFilter.addRules({ 
       elements: { 
        p: function(element) { 
         // If there's no class, assing the custom one: 
         if (!element.attributes.class) 
          element.attributes.class = pClass; 

         // It there's some other class, append the custom one: 
         else if (!element.attributes.class.match(pClassRegexp)) 
          element.attributes.class += ' ' + pClass; 

         // Add the subsequent id: 
         if (!element.attributes.id) 
          element.attributes.id = 'paragraph_' + ++idCounter; 
        } 
       } 
      }); 
     } 
    } 
}); 
+0

'class' JS ayrılmış bir kelime tırnak içinde yerleştirilmeli, olduğu : 'element.attributes ['class']' – fncomp

+0

Sorularımı yanlış anladım: PI, editörün hangi kullanıcısına belirli bir öğeye hangi ID ve hangi sınıfı vereceğine karar vermesini istedi. Neyse, giriş için teşekkürler. Bu konuya dikkat çekmek için lütuflarım oldu, bu yüzden ona sahip olduğum tek dikkati verdim :) – Nenotlep

+0

Tam olarak aradığım şey buydu :) Birkaç değişiklikle (bazı SHA1 kimliğine ihtiyacım vardı) kusursuz çalışması gerekiyordu. Çok teşekkürler! :) –

0

Etrafa gitmiş ve böyle bir şey (Ben CKEditor 4.4.7 kullanıyorum) yaptık:

editor.addCommand('colSm1', { 
    exec: function (editor) { 
    var $element = editor.elementPath().block; 

    if ($element.getAttribute('class') == null) { 
     $element.addClass('col-sm-1'); 
    } 
}); 
İlgili konular