ugrás a tartalomhoz

TinyMCE 4 makacs cleanup

castaw · 2013. Dec. 16. (H), 20.35
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:
  1. tinymce.init({    
  2.     selector: "div#tiny_introtext, div#tiny_fulltext",  
  3.     theme: "modern",  
  4.     plugins: [  
  5.         ["advlist autolink link image lists charmap print preview hr anchor pagebreak spellchecker"],  
  6.         ["searchreplace wordcount visualblocks visualchars code fullscreen insertdatetime media nonbreaking"],  
  7.         ["save table contextmenu directionality emoticons template paste"]  
  8.     ],  
  9.     add_unload_trigger: false,  
  10.     inline: true,  
  11.     toolbar: "undo redo | styleselect | bold italic | alignleft aligncenter alignright alignjustify | bullist numlist outdent indent | link image | media",  
  12.     statusbar: false,   
  13.     language: 'hu_HU',  
  14.     entity_encoding : "raw",  
  15.     extended_valid_elements: "p[style]",     
  16.     valid_styles: {  
  17.         "p""text-align"  
  18.     }  
  19. });  
 
1

Fél off

Pepita · 2013. Dec. 16. (H), 22.16
Nagyon rég nem foglalkoztam TinyMCE-vel, ezért nem is tudok a konkrét kérdésedre válaszolni, viszont oka van, hogy nem használom:
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.)
2

Ha a megrendelő

castaw · 2013. Dec. 16. (H), 23.36
Ha a megrendelő meggyőzhető...

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)
3

Így igaz :)

Pepita · 2013. Dec. 17. (K), 21.45
Ha a megrendelő meggyőzhető...

"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.
4

Hogy is mondjam szépen... ha

castaw · 2013. Dec. 18. (Sze), 10.14
Hogy is mondjam szépen... ha meg is győzhető, de mégsem alkalmas bizonyos feladatokra, vagy sikítozva világgá fut tőlük...

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.
5

Hát szépen. :)

Pepita · 2013. Dec. 19. (Cs), 00.21
Nem azért, de a MD nem olyan nagy feladat. Ha mégis, bizony sok dolga lesz a purifier-nek, ami szintén nem tökéletes, "és ha már codeigniter": úgy 5x akkora, mint a keretrendszered?

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.