TinyMCE - Media-Plugin schneidet Inhalte ab

Gesperrt
Dodger77
Beiträge: 3626
Registriert: Di 12. Okt 2004, 20:00
Wohnort: Voerde (Niederrhein)
Kontaktdaten:

TinyMCE - Media-Plugin schneidet Inhalte ab

Beitrag von Dodger77 » Mi 10. Okt 2007, 15:05

Hübsche Sache: das Media-Plugin des TinyMCE schneidet anscheinend Inhalte ab. Zu sehen ist das Ganze mit einer 2.1.2 hier (aufgefallen ist mir das zuerst mit der 2.1.1.1, die bei Contenido 4.6.22 mitgeliefert wird):

http://spielwiese.contenido-tutorials.d ... _media.htm

Im Quelltext kann man sehen, dass auch noch nach dem eingebundenen SWF etwas angezeigt werden sollte. Ich habe das mal im TinyMCE-Bugtracker gemeldet:

http://sourceforge.net/tracker/index.ph ... tid=635682

Dodger77
Beiträge: 3626
Registriert: Di 12. Okt 2004, 20:00
Wohnort: Voerde (Niederrhein)
Kontaktdaten:

Beitrag von Dodger77 » Do 11. Okt 2007, 17:06

Interessant: abgeschnitten wird nur, wenn das EMBED nicht geschlossen ist. Das habe ich oben im verlinkten Beispiel nun auch geändert.

Aber das Problem besteht in Contenido weiterhin, da uns das Insite-Editing wieder reinpfuscht. Allein durch einen weiteren Aufruf des TinyMCE (z.B. über ein Text/HTML) wird der Inhalt neu abgespeichert und dann ist das EMBED nicht mehr geschlossen.

HerrB
Beiträge: 6935
Registriert: Do 22. Mai 2003, 12:44
Wohnort: Berlin
Kontaktdaten:

Beitrag von HerrB » Do 11. Okt 2007, 23:20

Da gäbe es evtl. cleanup_on_startup : true als Lösung - kannst Du das mal testen?

Aber ich bin skeptisch, ob das nicht noch mehr beeinflusst.

Gruß
HerrB
Bitte keine unaufgeforderten PMs oder E-Mails -> use da Forum!

Newsletter: V4.4.x | V4.6.0-15 (Module, Backend) | V4.6.22+
Standardartikelliste: V4.4.x | V4.6.x
http://www.contenido.org/forum/search.php | http://faq.contenido.org | http://www.communido.net

Dodger77
Beiträge: 3626
Registriert: Di 12. Okt 2004, 20:00
Wohnort: Voerde (Niederrhein)
Kontaktdaten:

Beitrag von Dodger77 » Fr 12. Okt 2007, 07:37

HerrB hat geschrieben:Da gäbe es evtl. cleanup_on_startup : true als Lösung - kannst Du das mal testen?
Ja, habe ich gerade gemacht. Das scheint keine positiven Auswirkungen zu haben.

Dodger77
Beiträge: 3626
Registriert: Di 12. Okt 2004, 20:00
Wohnort: Voerde (Niederrhein)
Kontaktdaten:

Beitrag von Dodger77 » Fr 12. Okt 2007, 07:56

OK, ich habe zumindest einen Workaround für das media-Plugin, so dass dies auch mit nicht geschlossenem EMBED funktioniert. In der Datei 'contenido/external/wysiwyg/tinymce2/jscripts/tiny_mce/plugins/media/editor_plugin_src.js' muss:

Code: Alles auswählen

	cleanup : function(type, content, inst) {
		var nl, img, i, ne, d, s, ci;

		switch (type) {
			case "insert_to_editor":
				img = tinyMCE.getParam("theme_href") + '/images/spacer.gif';
				content = content.replace(/<script[^>]*>\s*write(Flash|ShockWave|WindowsMedia|QuickTime|RealMedia)\(\{([^\)]*)\}\);\s*<\/script>/gi, '<img class="mceItem$1" title="$2" src="' + img + '" />');
				content = content.replace(/<object([^>]*)>/gi, '<div class="mceItemObject" $1>');
				content = content.replace(/<embed([^>]*)>/gi, '<div class="mceItemObjectEmbed" $1>');
				content = content.replace(/<\/(object|embed)([^>]*)>/gi, '</div>');
				content = content.replace(/<param([^>]*)>/gi, '<div $1 class="mceItemParam"></div>');
				content = content.replace(new RegExp('\\/ class="mceItemParam"><\\/div>', 'gi'), 'class="mceItemParam"></div>');
				break;
geändert werden zu:

Code: Alles auswählen

	cleanup : function(type, content, inst) {
		var nl, img, i, ne, d, s, ci;

		switch (type) {
			case "insert_to_editor":
				img = tinyMCE.getParam("theme_href") + '/images/spacer.gif';
				content = content.replace(/<script[^>]*>\s*write(Flash|ShockWave|WindowsMedia|QuickTime|RealMedia)\(\{([^\)]*)\}\);\s*<\/script>/gi, '<img class="mceItem$1" title="$2" src="' + img + '" />');
				content = content.replace(/<object([^>]*)>/gi, '<div class="mceItemObject" $1>');
				content = content.replace(/<embed([^>]*)>/gi, '<div class="mceItemObjectEmbed" $1></div>');
				content = content.replace(/<\/embed([^>]*)>/gi, '');
				content = content.replace(/<\/object([^>]*)>/gi, '</div>');
				content = content.replace(/<param([^>]*)>/gi, '<div $1 class="mceItemParam"></div>');
				content = content.replace(new RegExp('\\/ class="mceItemParam"><\\/div>', 'gi'), 'class="mceItemParam"></div>');
				break;
Dann sollte das funktionieren. Natürlich muss dafür auch die 'editor_plugin.js' (ist aufgrund der fehlenden Zeilenumbrüche und Einrückungen halt nur blöd anzupassen) angepasst werden.

Das stellt natürlich nur einen Workaround dar, aber evtl. wird das ja in eine nächste TinyMCE-Version aufgenommen.

Gesperrt