2014-10-10 10 views
7

CKEditor cihazına StrInsert eklentisi ekliyorum. Temel olarak editörümde CRM Field etiketli bir düğme ekler. CKEditor4: HTML'den Farklı Metin Yap

Düğme ne yapar, editörüme bir değer ekler. Örneğin: açılır menüden $[FIRST_NAME]'u tıklattığımda, düzenleyicime ${__VCG__VAL__FIRST_NAME} metnini ekler.

${__VCG__VAL__FIRST_NAME} yerine $[FIRST_NAME] açılır menüsünü nasıl adlandırdım? editör gösterilen text$[FIRST_NAME](**Please see** [screenshot_2][2] **to better understand the problem**)

screenshot_2 görüldüğü gibi

, altında gösterilen HTML istediğim tam olarak ne olduğunu, ancak bunun yerine metnini ${__VCG__VAL__FIRST_NAME} gösteren iken ben <p>${__VCG__VAL__FIRST_NAME}</p> olmak HTML istiyorum Çünkü göstermek editör istiyorum metni $[FIRST_NAME]

Sorumu, bazı özel anahtar kelimeler için editörde HTMLtext'dan nasıl farklı yapabilirim?

+1

eklenti link [ile html akım düzenleyici içeriği alabilirsiniz https://github.com/activore/strinsert](https://github.com/ activore/strinsert) - Orijinal yayına 2'den fazla bağlantı ekleyemiyorum – Edwin

cevap

1

Bir geçici çözüm sorunlu mu? Verileri gönderebilir ve ön işleyebilirseniz, çözüm basittir. ${__VCG__VAL__FIRST_NAME}'u $[FIRST_NAME] ile değiştirerek ve kaydetmeden önce verileri ön işlemden geçirin, tersini yapın.

daha karmaşık cümledeki ile meraklısı bir yöntem için

ama daha güzel bir UX, böyle koduyla widget kullanmayı tercih ediyorum sahiptir:

<p data-real="${__VCG__VAL__FIRST_NAME}">$[FIRST_NAME]</p> 

Sen tanımlayan bir eklenti oluşturmak olman konusunda data-real özniteliği ile her P Bir widget olarak. Daha sonra, kaydetmeden önce bunları istediğiniz basit P'ye dönüştürdünüz ve yükleme yaparken basit P'yi widget'a dönüştürebilirsiniz. Buradaki faydalar, kullanıcının yanlışlıkla metni düzenleyememesi ve sürükle-bırak işleminin kolay olmasıdır. Örneğin jQuery ile yedekler oldukça kolay olmalıdır.

Neden blok seviyesine gelmelerini istediğinizi bilmiyorum, bunun gibi değişkenlerin inline olabileceğini hayal ediyorum - ama bu sizin gereksinimlerinize bağlı.

Araç belgeleri http://docs.ckeditor.com/#!/guide/dev_widgets

0

azından Nenotleps katılıyorum. Bir kullanıcı editör girişini onayladığında, 'u <p>${__VCG__VAL__FIRST_NAME}</p> ile değiştirin ve eğer editöre bazı veriler yüklüyse, bunu diğer şekilde yapın.

Sen editörü editor.getData(), senin ckeditor örneği