TinyMCE 4 makacs cleanup
Sziasztok!
Inline módban szeretném használni a TinyMCE 4-es verzióját.
Minden szép és jó, de a form elküldésekor kigyilkolja az összes style attribútumot a küldendő html-ből.
Már végigzongoráztam a dokumentáció Cleaup/output szegletét, de mintha minden mindegy lenne.
Kódom:
■ Inline módban szeretném használni a TinyMCE 4-es verzióját.
Minden szép és jó, de a form elküldésekor kigyilkolja az összes style attribútumot a küldendő html-ből.
Már végigzongoráztam a dokumentáció Cleaup/output szegletét, de mintha minden mindegy lenne.
Kódom:
tinymce.init({
selector: "div#tiny_introtext, div#tiny_fulltext",
theme: "modern",
plugins: [
["advlist autolink link image lists charmap print preview hr anchor pagebreak spellchecker"],
["searchreplace wordcount visualblocks visualchars code fullscreen insertdatetime media nonbreaking"],
["save table contextmenu directionality emoticons template paste"]
],
add_unload_trigger: false,
inline: true,
toolbar: "undo redo | styleselect | bold italic | alignleft aligncenter alignright alignjustify | bullist numlist outdent indent | link image | media",
statusbar: false,
language: 'hu_HU',
entity_encoding : "raw",
extended_valid_elements: "p[style]",
valid_styles: {
"p": "text-align"
}
});
Fél off
ha egy mód csak van rá, akkor meggyőzöm a Megrendelőt, hogy neki is jobb, ha nem HTML jön az űrlapról, hanem pl. Markdown. Sokkal egyszerűbb, és bombabiztos HTML-t lehet csinálni belőle. Főleg amilyen keveset használsz (csak inline), nem is igazán értem, mire kell a style.
Szóval ezt biztosan MD-nal oldanám meg. Hátránya, hogy csak "félig" wysiwyg: kell egy kérés a szerver felé, hogy előnézetet kapj. (Ezt is meg lehet csinálni külön js-ben is, de én nem szeretem ugyanazt két helyen / nyelven lekódolni, mert nem lesz ugyanaz, + ha változtatni kell, stb.)
Ha a megrendelő
Közben lőn világosság: formats és máris megoldja class-okkal. (ami külön öröm, mivel megtanítható egyből bootstrap-ul is)
Így igaz :)
"Csak így mellékesen" kérdem: és a bepostolt HTML-t hogyan ellenőrzöd db-be mentés előtt?... (valid, XSS, stb.)
Szerintem a meggyőzés a könnyebb feladat, ez rajtad is múlik, nem csak a megrendelőn, sőt, főleg rajtad.
Hogy is mondjam szépen... ha
Amúgy token megy a formmal,
felhasználó ellenőrzése mielőtt egyáltalán hozzányúlnék a $_Post-hoz,
html purifiert szoktam használni ellenőrzésre,
ha már codeigniter: active record-ot használok, így escapelés is megoldva,
és nyilván az input class-t használom $_Post helyett.
Hát szépen. :)
A többi rendben, de én még tökéletes HTML-feldolgozót nem láttam, ezért óvakodok tőle. Meggyőzésben hatni szokott, hogy ha HTML-t szerkeszt hozzáértés nélkül, akármilyen csinos szerkesztőt teszek oda, képes lesz beborítani az egész oldal design-ját. Ami persze nem pontosan igaz, mert "csak" az utána következő tartalmakét, de ezt többnyire senki nem akarja kockáztatni, és inkább bevállalja a leheletnyivel kényelmetlenebb MD-t. Mert meg lehet csinálni viszonylag kényelmesre is az editort hozzá. Annyi, hogy gombra / linkre van előnézet.
Ugyanakkor még TinyMCE-ben is elég nehéz teljesértékűen az oldal design-ját a wysiwyg mögé tenni.