Saya menggunakan editor WYSIWYG dengan CKEditor. Saya menemukan bahwa ketika menambahkan kelas khusus ke elemen saya dari tampilan "sumber", CKEditor menghapus kelas-kelas tersebut ketika beralih dari tampilan sumber.
Ketika mencari solusi untuk ini, saya menemukan halaman modul CKEditor yang menjelaskan cara memperbaikinya saat menggunakan CKEditor saja. (Pada dasarnya, kita perlu mengatur konfigurasi JS config.allowedContent = true
dalam pengaturan Filter Konten Lanjutan).
Namun, ketika menggunakan CKEditor via WYSIWYG, pengaturan ini tidak terbuka di antarmuka admin. Bagaimana Anda mencapai hal yang sama saat menggunakan CKEditor via WYSIWYG?
PS: Saya tidak bisa menggunakan CKEditor sendirian karena tidak terintegrasi dengan plugin media .
Jawaban:
Versi CKEditor apa yang Anda gunakan? Ada masalah dengan CKEditor 4.1+, yang memiliki fitur yang disebut Filter Konten Otomatis (ACF) yang akan secara otomatis menghapus atribut yang tidak ditentukan untuk editor: https://drupal.org/node/1956778
Patch # 37 dalam masalah ini berhasil untuk saya.
sumber
editors/ckeditor.inc
'swysiwyg_ckeditor_settings
funcitonSaya menemukan solusinya.
Ini mematikan penyaringan, itu berfungsi, tetapi bukan ide yang baik ...
Untuk bermain dengan string konten berfungsi dengan baik untuk id, dll, tetapi tidak untuk atribut kelas dan gaya, karena Anda memiliki () dan {} untuk pemfilteran kelas dan gaya.
Jadi taruhan saya adalah mengizinkan kelas mana pun di editor adalah:
Ini memungkinkan kelas apa saja dan gaya inline apa pun.
Untuk mengizinkan hanya class = "asdf1" dan class = "asdf2" untuk setiap tag:
(jadi Anda harus menentukan nama classnya)
Untuk mengizinkan hanya class = "asdf" hanya untuk tag p:
Untuk mengizinkan atribut id untuk tag apa pun:
dll
Untuk mengizinkan tag gaya (<style type = "text / css"> ... </style>):
Menjadi sedikit lebih kompleks:
Semoga ini solusi yang lebih baik ...
sumber
Ini sepertinya sesuatu yang harus ditambahkan ke dalam modul WYSIWYG, kemampuan untuk menambahkan pengaturan khusus ke editor adalah persyaratan yang cukup luas. Tetapi dengan tidak adanya hal itu, saya masih menyarankan untuk tidak mengedit modul itu sendiri karena akan merusak upgrade ... untungnya modul ini memang memberikan panggilan
drupal_alter
, jadi dalam modul khusus:di mana "mymodule" jelas merupakan nama modul khusus Anda. Ini menyelesaikan tugas tanpa mengedit modul elemen seseorang.
sumber
Coba tambahkan yang berikut ini ke modules / wysiwyg / editor / ckeditor.inc
'allowedContent' => TRUE,
untukfunction wysiwyg_ckeditor_settings($editor, $config, $theme)
sehingga sekarang terbaca:
sumber
Tanpa meretas sumber apa pun, dan juga tanpa mencoba mencari tahu DI MANA bleep pengaturan ini sedang dibaca, Anda bisa menambahkan ini ke Anda sendiri modul kustom
Pengaturan yang diminta OP berasal
*(*);*{*}
dari jawaban @Tommy di atas. Ini tampaknya memungkinkan atribut kelas dan gaya pada elemen apa pun. Sisanya hanyalah entri contoh. Sebagai contoh lain, entri ini memungkinkan tag yang dibutuhkan oleh modul media.sumber
Filter HTML Tersaring menghilangkan kelas dari elemen yang tidak ada dalam elemen HTML yang diizinkan . Tag paragraf (
<p>
) tidak ada di sana secara default (yang mungkin membingungkan dan tidak wajar), meskipun itu mungkin elemen paling sering di mana kelas diterapkan. Setelah Anda memasukkannya ke sana, HTML yang Difilter tidak akan lagi menghapus kelas dari tag ini. Hal yang sama berlaku untuk tag gambar (<img>
).sumber