CKEditor paski Tag
Staram się znaleźć rozwiązanie, aby uniknąć CKEditor, ale także starszy FCKeditor usuwa wszelkie
<i>
znacznik z wcześniej wstawionej zawartości do db.
Case:
Wstawiam zawartość html do db, część zawartości zawiera elementy <i>
.
Robię to z Ckeditorem.
Wszystko działa idealnie, a treść pojawia się na stronie internetowej.
Ale kiedy chcę edytować wcześniej wstawioną zawartość, brakuje elementów <i>
.
W moim konkretnym przypadku i zastosowanie:
<i class="fa-icon-fullscreen fa-icon-xxlarge main-color"></i>
Oczywiście, jeśli wyłączę edytor, zawartość wyświetla się dobrze w textarea.
6 answers
Gdy używane jest rozwiązanie protectedSource, znaczniki i
nie są już usuwane, ale znaczniki img
przestają pojawiać się w trybie WYSIWIG w Ckeditorze (używam 4.3.1). Rozwiązaniem, które działało dla mnie lepiej, jest wyłączenie usuwania pustych znaczników i
za pomocą CKEDITOR.dtd.$removeEmpty
Na przykład, dodałem następujący plik do konfiguracji.js
// allow i tags to be empty (for font awesome)
CKEDITOR.dtd.$removeEmpty['i'] = false;
Uwaga: powinna być umieszczona poza funkcją CKEDITOR.editorConfig = function( config )
.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-07-10 06:37:04
Znalazłem rozwiązanie tego konkretnego problemu, na który natknąłem się z tagiem <i>
Oryginalna odpowiedź dostałem z drupal forum
Poprawkę lub tweak (nazwę) dla niego jest ustawić następujące w ckeditors config.js:
// ALLOW <i></i>
config.protectedSource.push(/<i[^>]*><\/i>/g);
podziękowania dla Spasticdonkey za wskazanie mi linku.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-01-31 09:05:57
Oto, co dla mnie działa
Dodaj 3 wiersze poniższego kodu w tej samej kolejności w ustawieniu profilu drupal CKEditor admin/config/content/ckeditor/edit / Full
Opcje zaawansowane > > Niestandardowa konfiguracja JavaScript
config.allowedContent = true;
config.extraAllowedContent = 'p(*)[*]{*};div(*)[*]{*};li(*)[*]{*};ul(*)[*]{*}';
CKEDITOR.dtd.$removeEmpty.i = 0;
Pierwsza linia prawie wyłącza zaawansowane filtrowanie
Druga linia to all class (), any style {} oraz any attribute [*] for the p,div, li and ul.
Ostatni wiersz jest pusty tag...ta linia działa z obrazami...Odkryłem, że jeśli używasz config.protectedSource.push (/]*> / g); usuwa znacznik podczas edycji.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-01-05 21:01:04
Dla wersji 4.3 ckeditor
W config.js (po sekcji config) wklej
CKEDITOR.dtd.$removeEmpty['b'] = false;
I napisać widget z kodem
CKEDITOR.plugins.add( 'bwcaret', {
requires: ['widget'/*, 'richcombo'*/],
icons: 'bwcaret',
init: function( editor ) {
editor.widgets.add( 'bwcaret', {
button: 'Create a caret',
template: '<b class="caret"></b>',
allowedContent: 'b(!caret)',
requiredContent: 'b(!caret)',
upcast: function( element ) {
return element.name == 'b' && element.hasClass( 'caret' );
},
});
}
});
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-12-30 13:33:39
Są dwa możliwe problemy:
Przeczytaj o Advanced Content Filter . CKEditor usuwa elementy, które nie są dozwolone, ale można rozszerzyć reguły filtra.
-
Jeśli jednak problem polega na tym, że CKEditor usuwa puste elementy
<i>
, musisz znaleźć inny sposób jego użycia. CKEditor nie jest kreatorem stron WYSIWYG. Jest to edytor dokumentów, więc załadowana treść musi mieć znaczenie. Pusty element inline nie ma żadnego znaczenia, dlatego jest on usuwany, ponieważ w przeciwnym razie edytor nie wiedziałby, co z nim zrobić.Jednym z możliwych rozwiązań w (niedalekiej) przyszłości, będzie użycie systemu widgetów , do obsługi tych pustych elementów. Ale na razie radzę sprawdzić CKEDITOR.htmlDataProcessor i krótki przewodnik jak go używać.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-08-15 11:28:57
Znalazłem na to trwałe rozwiązanie.właściwie to, co się stało, CKEditor usuwa tylko pusty znacznik.niezależnie od tagu, may b <i>
tag lub <span>
tag
Jeśli używasz dowolnej ikony jak font-awesome, maeterlize icon itp ...
możesz go zatrzymać, używając poniższego kodu w pliku config.js
CKEDITOR.dtd.$removeEmpty.span = false;
CKEDITOR.dtd.$removeEmpty.i = false;
Jeśli używasz więcej pustych znaczników, musisz dodać nazwę znacznika po $removeEmpty
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-05-28 05:21:44