JCE / TinyMCE - Geçerli ve Geçersiz HTML'yi Düzeltmeye Çalışıyor


9

Kullandığımız tüm Joomla editörleri arasında JCE, amaçlarımıza ve müşterilerimize en uygun olanıdır. Ancak editörde bir şeyi kodladığımızda sorunlara neden olabilecek birkaç sorun var, o zaman wysiwyg'ye değiştirildi ve editör mükemmel geçerli html'yi 'düzeltmeye' çalışıyor.

Soru sormadan önce - evet, JCE'nin kısıtlamayı sevdiği tüm öğelere izin verecek şekilde ayarladık ve hayır, html'yi doğrulamak / temizlemek için ayarlanmadı. Sahip olduğumuz tek kısıtlama içeriği editöre yapıştırmaktır.

Sergi A:

<a href="#"></a>

Bu, geçiş düzenleyici ve geri kaybolacak. Şununla değiştirildi:

<p>&nbsp;</p>

Sergi B:

<a id="#nameofanchor"></a>

Değişiklikler:

<p>&nbsp;</p>

Sergi C:

<div><a id="#nameofanchor"></a></div>

Değişiklikler:

<div>&nbsp;</div>

Sergi D:

<a id="hello" class="link">Hello</a>

Değişiklikler:

<p><a id="hello" class="link"></a>Hello</p>

Sergi E:

<a href="#">
<div>
<h2>Our Work</h2>
</div>
</a>

Değişiklikler:

<p><a href="#"></a></p>
<div>
<h2><a href="#">Our Work</a></h2>
</div>
<p>&nbsp;</p>

Şimdi, çapamız için ad yerine id kullanmak istiyoruz, çünkü HTML5 altında geçerlidir, ancak teknik olarak isim değildir. Ayrıca, hangi evrende id bir bağlantıya geçersiz bir atamadır?

Ayrıca, şimdi bir div'ı linklerle sarmak tamamen yasal olduğuna göre, JCE neden bunları da çıkarsın?

Bu sadece eksik olduğum bir ayar mı? Düzenleyicide ihtiyacımız olduğu gibi kod yazabilmemiz için editörü nasıl kullanabileceğime dair herhangi bir fikriniz var mı, ancak müşterilerimiz wysiwyg'e kaydederek onu enkaz edemiyor mu?

Düzenleme: Bunu krom, firefox ve safari'de test ettim. Tarayıcı ile bir ilgisi olduğunu düşünmeyin.

Düzenleme: Bunu kapsayıcı ayarları ile test ettim. Hem Paragraf Kapsayıcısı hem de Enter'daki Paragraf ve Div Kapsayıcısı ve Girişteki Div. Diğer iki, hiçbir konteyner ve Paragraf girmek, hiçbir Konteyner ve linebreak girmek, buna neden olmaz. Sorun şu ki - ilk ayara ihtiyacım var! Müşterilere şüphe duymak ne kadar iyi olursa olsun, talimatlara uymaları ve metinlerine paragraf biçimlendirmeleri eklemeleri güvenilir değildir.

Onaylandı: Bu, TinyMCE ile de olur.

Peki - bunun nedenini biliyoruz - Paragraf Kabı ayarı - şimdi bu ayarı canlı tutarken nasıl dolaşacağız?


1
Sadece ben değilim.
Craig

Önceki tartışmalarımız ve bunun JCE eleman kaydırma özelliğinden geldiği sonucundan sonra, bunun gerçekte ne endişe duyduğundan emin değilim. Müşterinizin yukarıdaki gibi html snippet'leri ekleyebileceğine güveniyorsanız, editör durumunu değiştirerek, neden içeriklerini uygun <p> etiketleriyle saracağına güvenmiyorsunuz?
FFrewin

Müşterilerimiz html eklemez. Biz html yazıyoruz, editör tarafını kullanıyorlar - editör değiştirilir değiştirilmez, mükemmel geçerli html'imizi batırıyor.
Faye

Her durumda, müşteriye html ile dolu bir sayfanın düzenleme erişimini verirseniz, şu ya da bu şekilde, müşterinizin html'nizi yok edebilmesi büyük bir şanstır. İhtiyacınız olan işaretlemeyi eklemenin kirli işini yapacak olan JCE'nin Şablon Yöneticisi'ni veya diğer "makro" etiketlerini kullanmaya ne dersiniz?
FFrewin

Yanıtlar:


7

Tüm sitelerimizde JCE Editor kullanıyorum, ancak NoNumbers tarafından Sourcerer'ı kurmaya başladık. Bu, JCE editörüne değiştirilmesini önleyen kolay bir INSERT CODE düğmesi verir.

http://www.nonumber.nl/extensions/sourcerer


TEŞEKKÜR EDERİM. Bu mükemmel, zaten eşyalarımızda sayı olmayan yüklü var çünkü harika, bunun olduğunu bilmiyordum. Bu harika.
Faye

1
HTML eklemek için Sourcerer kullanmaya gerek yoktur.
BodgeIT

Aaave henüz zorundayım, ya da JCE mükemmel bir şekilde geçerli HTML çıkışı çıkarıyor.
Faye

2

JCE için bazı gizli ayarlar var. Aşağıdaki ayarların &nbsp;boş div'lere eklenmeyi durdurduğunu biliyorum , belki de float'ları temizlemek için kullanılır, bu da oluşturulduğunda satır yüksekliği sorunlarına neden olur:

In the Editor Global Configuration, add:
remove_div_padding:1 
to Custom Configuration Variables. 

Editörün herhangi bir yönünü kontrol edebilecek daha çok şey olmasını beklerdim.


1

Bence tipografi ayarları olmalı: Profil -> Editör Parametreleri -> Tipografi . Html'nizde hala herhangi bir değişiklik olup olmadığını görmek için Enter'da Kap Öğesi ve Enter Tuşunu NoContainer ve LineBreak olarak ayarlamayı deneyin.

Ayrıca HTML Doğrulama ayarının her bir Editör profili için ayarlara sahip olduğunu ve Joomla'nın kullanıcı grubu tarafından ayarlanan genel yapılandırma sayfasında genel bir filtre sağladığını unutmayın. Her kullanıcı grubu için ayar olmadığından emin olun.


Evet tüm editör profillerinde bulundum, vb. Her şeyi html için doğru şekilde ayarladım. Konteynerin değiştirilmesi onu çözebilir - ancak aynı derecede sorunlu başka bir soruna neden olur. İstemci paragraf etiketlerine sarılmamış metin içeriği ekleyebilirse, metninin biçimlendirmesi farklı olacaktır. Biz de istemiyoruz. Bunun çapa ile aynı soruna neden olup olmadığını test edeceğim, ancak paragraf etiketleri kendilerini ekledikçe, bu kurs için eşit.
Faye

Evet bunu yapan konteyner ayarları - ama dediğim gibi, müşterilerimizin yapıştırmalarını ve otomatik bir paragraf etiketinin içeriklerini sarması daha büyük bir sorundur.
Faye

Ben kod örnekleri JCE paragrafları oluşturmak için bir tür "kural" olan satır sonları içerdiğinden, bu olduğunu düşünüyorum. Bunu yapmak için böyle bir kriter olmalı. Müşteriniz bu html snippet'lerini düzenleyiciye yapıştıracak mı?
FFrewin

Müşterilerimiz html kullanmayacak, ancak yine de yaptıkları işin arkasında html ile kod yazıyoruz. Düz içeriği yapıştırmaları / yazmaları için alanlar oluşturuyoruz. Ayrıca - yukarıdaki gibi organize yerine bir satıra html yazmak istiyorsanız, ben de denedim. Tam olarak aynı sonuçları alıyorum.
Faye

0

Bu davranış JCE'ye özgü değildir. TinyMCE aynı şekilde davranır. Bu davranış TinyMCE ile sınırlı olmayabilir, tarayıcı DOM davranışı olabilir.

JCE aslında bazı boş etiketleri tutmaya çalışmakla uğraşır, kullanılan yöntem bir boşlukla doldurmaktır.

https://github.com/widgetfactory/jce-editor/blob/master/editor/tiny_mce/plugins/cleanup/editor_plugin.js


Yalan söylemeyeceğim, bunun ne anlama geldiğini bilmiyorum. Biraz daha parçalayabilir misin? Bu bağlantıda neye bakıyorum? Boşluğu olan ped ne demek? Yukarıdaki kod örneklerine aralıksız bir boşluk eklemek son sonuçları değiştirmez, bunu iyice test ettim.
Faye

Varsayılan düzenleyicimi Joomla ile önceden yüklenmiş olan TinMCE'ye değiştirdim ve Exhibit A'yı test ettim. WYSIWYG ve Kaynak görünümleri arasında geçiş yaparken etiketleri de sildi. ie Bu davranış JCE'ye özgü görünmüyor. Bu nedenle, bunun TinyMCE için benzersiz olup olmadığını merak ediyorum ve yerinde tarayıcı düzenleme yeteneğini kullanırken belki de aynı şey olabilir. JCE kodu başvurusu, başlangıç ​​ve bitiş etiketleri arasında kırılmayan bir boşluk kullanılan satır 129'du. Bu benim için hem JCE hem de TinyMCE'de işe yarıyor. Garip.
Peter Wiseman
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.