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.