WYSIWYG kódtisztító

Illyés Edit képe

Sziasztok!

Kinek milyen bombabiztos módszere van arra, hogy a WYSIWYG editorokon keresztül feltöltött szövegből kiszűrődjenek a microsoftos szemetes kódok? Példa. Ezt itt történetesen TinyMCE-vel töltötték fel egy másik webhelyre, FeedAPI-val húzzuk át hozzánk, de azt meg mégse lehet, hogy Full HTML-t beengedjek. Ugyanez a probléma minden általam kezelt webhelyen jelentkezik, nem lehet a feltöltő egyéneket rávenni a szövegek jegyzettömbözésére.

A TinyMCE-hez van egy plugin, de azt hallom megbízható forrásból, hogy nem működik rendesen. Más megoldást tudtok, ki mit használ?

Ha kérhetem, ne azt javasoljátok, hogy ne tegyek fel WYSIWYG-et, ez sajnos mindig vesztett meccs. Kell.

Melyik modulhoz, modulokhoz kapcsolódik a téma?: 
Drupal verzió: 
aries képe

Ez sajnos nem vesztett meccs, amíg másoknál sem működik megbízhatóan.

0
0
eMeLA képe

Van a Paste text/word a TinyMCE-n belül. Ez viszonylag jól működik, legalábbis a tartalmi részből kitisztítja a sok MS-os szemetet (én Word 6.0-ból szoktam áthozni manuálisan így tartalmat). Az elején azért bennehagy egy kevés szemetet, tehát sajnos nem tökéletes. Ezt a részt törölni kell. Persze ehhez egy munkás is kell, aki megcsinálja...

Ugyanebből kifolyólag én most egy BuEditor + Markdown párost próbálok épp az ilyen "kellemetlenségek" miatt.

A BuEditor-nak két előnye van ilyen szempontból, hogy forráskódot szerkesztel de van Előnézet gombja, ami oldalújratöltés nélkül megmutatja a szöveget. A gombok programozhatóak, így a tetszőleges nyelvet be lehet illeszteni. A kellemetlensége, hogy jelölésekkel kell formázni (http://drupal.hu/forum/html-wiki-filter-bbcode). Sajnos alapból az Előnézete nem húzza rá a tartalomra a bekapcsolt filtereket, de egy kis ügyességgel ezt is megoldottam...

Meg kell mondani a megbízónak, hogy vagy TinyMCE és manuálisan szedjék ki a szemetet, vagy vegyék tudomásul, hogy ha weboldalon akarnak formázott szöveget, akkor ne a Word-be formázzák meg, hanem az oldalon. Addig amíg lehetőségük van TinyMce-t használni, addig remény sincs arra, hogy kipusztuljon a sor Word generálta szemét.

0
0

...mit tudok: http://web.termuves.hu

Illyés Edit képe

Megnézem a BuEditort, bár nem hinném, hogy sikerül átvinni, pl. ilyen "problémák" is rendszeresen felmerülnek, hogy a TinyMCE miért nem pontosan ugyanolyan kerettel mutatja a képet, mint ahogyan az a végén megjelenik, stb.

Újabban külön beleírom az árajánlatba, hogy WYSIWYG szerkesztő installálása X Ft + ÁFA felár. De még ez sem riasztja el a megrendelőket. Inkább lemondanak egy fontos funkció fejlesztéséről, de sokgombos szövegszerkesztő az kell.

A TinyMCE/FCKEditor egy monstrum, de alapvetően együtt tudnék élni velük, ha ez az MS kódszemetelés megoldódna.

0
0
sgabe képe

Ez a WYSIWYG szerkesztő installálása X Ft + ÁFA felár "megoldás" tetszik, amíg nem lesz jobb ezzel fogok operálni. :) Az IE6 után nálam ez a WYSIWYG szerkesztő kontra MS Wordből másolás stb. a második olyan probléma, ami egy napfényes nyári délutánt is zord sötét téli éjszakává tud varázsolni.

0
0
eMeLA képe

"TinyMCE miért nem pontosan ugyanolyan kerettel mutatja a képet, mint ahogyan az a végén megjelenik"

Erre ott van a megadható stíluslap, mi persze jól hangzik, de kell egy kis trükkölés hozzá. Én azt tettem, hogy a style.css fájlt két részre bontottam. style1.css és style.css. A style.css elején beimportálom a style1.css fájt. A TinyMCE-ben pedig megadom a style1.css-t. Értelemszerűen a style1.css-ben vannak azok a formázások, melyek a tartalmi részre vonatkoznak illetve az alapformázások (h1, h2...). Persze még így is kell trükközni.
PL:
.content img, body.mceContentBody img {}

Vagyis ha a node content részben akarok egy képet formázni (első rész), akkor azt a body.mceContentBody részre is érvényesíteni kell. Persze ha kellően precízen vannak a stílusok definiálva....

-----------------------------------------------------------------------
Sajátmodulban:

function modulom_menu() {	  
    $items['hungarikum/elonezet'] = array(
      'title' => t('BUeditor előnézet'),
      'page callback' => '_bueditor_elonezet',
    	'access arguments' => array('access bueditor előnézet'),
    	'type' => MENU_CALLBACK,
    );    
  return $items;
}
function _bueditor_elonezet() {	
	print check_markup($_POST['html']); 
}

A bueditor/library/sajat_js.js fájlba

function eDefPreview_sajat(NoAutoP, selOnly) {
 
  var E = BUE.active, T = $(E.textArea);
  if (!E.preview) {
    E.preview = $(document.createElement('div')).addClass('preview').css({'display': 'none', 'overflow': 'auto'}).insertBefore(T);
  }
  var P =  E.preview; 
  if (P.css('display') == 'none') {
    var html = selOnly ? E.getSelection() : T.val();
 
    h = $.post("?q=hungarikum/elonezet", {html: html}, 
    		function(data){
     			html = data;
     			P.show().height(T.height()).width(T.width()).html('<div class="node"><div class="content">'+ html +'</div></div>');
    			T.height(1);
    			E.buttonsDisabled(true, E.bindex);
    			$(E.buttons[E.bindex]).addClass('stay-clicked');
   			}
   		);    
 
 
  }
  else {
    $(E.buttons[E.bindex]).removeClass('stay-clicked');
    E.buttonsDisabled(false);
    T.height(P.height());
    P.hide();
  }
}

A Bueditorban a Preview gomb kódjában át kell írni a eDefPreview-t eDefPreview_sajat-ra. Így a beállított filterek pl. egy pearwiki filter is végrehajtódik a bevitt szövegre, illetve jelölésekre az előnézet kérésnél. Oldalújratöltés sem kell az előnézethez.

0
0

...mit tudok: http://web.termuves.hu

mat képe

Sziasztok!

TinyMCE-hoz létezik egy SimplePaste, valamint egy Simplest Word Cleanup Plugin. Tapasztalataim szerint a kettő együttes használatával (valamint egy kis -p- igazító barkácsolással) meg lehet szabadulni a wördös feleslegtől ;)

-Letöltés
-Bemásolás /sites/all/modules/tinymce/tinymce/jscripts/tiny_mce/plugins/ (külön-külön az swc és simplepaste mappákba)
-plugin_reg.php-ben lehet őket "bekapcsolni"

$plugins['simplepaste'] = array();
$plugins['simplepaste']['theme_advanced_buttons2'] = array('simplepaste');
$plugins['swc'] = array();
$plugins['swc']['theme_advanced_buttons2'] = array('swc');

-TinyMCE beállításoknál bepipálással lehet aktiválni

Éljen a plain text!
Itt ki lehet próbálni az eredményt: http://mishka.od.ua/system/scripts/tinymce/full.html

0
0
Paal képe

Szia!

Korábban keresgéltem én is, és mintha az derengene, hogy ezt Tinymce konfigban kell(ene) megoldani.
Hirtelen ezeket találtam, de majd kutakodok még:
http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/paste
http://wiki.moxiecode.com/index.php/TinyMCE:Configuration
http://wiki.moxiecode.com/index.php/TinyMCE:Configuration/valid_elements

Üdv, Pali

0
0

--
Palócz Paal Pál, a drupal.hu admin csoportjának tagja
Ajánlott olvasmány: Eric Steven Raymond - Hogyan kérdezzünk okosan