Jump to content
neralex

audio-tag in TinyMCE zulassen

Recommended Posts

Hallo!

 

Der TinyMCE stripped den html5 audio-tag in Version 1.6.0.8. beim Speichern aus dem Editor-Feldern. Wie und wo kann ich diesen HTML5-Tag wieder zulassen?

 

 

Share this post


Link to post
Share on other sites

Hallo neralex,

 

willkommen hier im Forum!

 

Du öffnest mit einem Editor die Datei:

/classes/Validate.php

 

bei ca Zeile 395 findest du:

 

    public static function isCleanHtml($html, $allow_iframe = false)
    {
        $events = 'onmousedown|onmousemove|onmmouseup|onmouseover|onmouseout|onload|onunload|onfocus|onblur|onchange';
        $events .= '|onsubmit|ondblclick|onclick|onkeydown|onkeyup|onkeypress|onmouseenter|onmouseleave|onerror|onselect|onreset|onabort|ondragdrop|onresize|onactivate|onafterprint|onmoveend';
        $events .= '|onafterupdate|onbeforeactivate|onbeforecopy|onbeforecut|onbeforedeactivate|onbeforeeditfocus|onbeforepaste|onbeforeprint|onbeforeunload|onbeforeupdate|onmove';
        $events .= '|onbounce|oncellchange|oncontextmenu|oncontrolselect|oncopy|oncut|ondataavailable|ondatasetchanged|ondatasetcomplete|ondeactivate|ondrag|ondragend|ondragenter|onmousewheel';
        $events .= '|ondragleave|ondragover|ondragstart|ondrop|onerrorupdate|onfilterchange|onfinish|onfocusin|onfocusout|onhashchange|onhelp|oninput|onlosecapture|onmessage|onmouseup|onmovestart';
        $events .= '|onoffline|ononline|onpaste|onpropertychange|onreadystatechange|onresizeend|onresizestart|onrowenter|onrowexit|onrowsdelete|onrowsinserted|onscroll|onsearch|onselectionchange';
        $events .= '|onselectstart|onstart|onstop';

        if (preg_match('/<[\s]*script/ims', $html) || preg_match('/('.$events.')[\s]*=/ims', $html) || preg_match('/.*script\:/ims', $html))
            return false;

        if (!$allow_iframe && preg_match('/<[\s]*(i?frame|form|input|embed|object)/ims', $html))
            return false;


        return true;
    }

Den roten Teil  löscht du - also sieht es dann so aus:

 

    public static function isCleanHtml($html, $allow_iframe = false)
    {
        return true;
    }

 Speichern und Cache löschen - dann müsste es gehen.

 

Viele Grüsse

Whiley

Edited by Whiley (see edit history)

Share this post


Link to post
Share on other sites

Also es wäre wirklich wünschenswert, wenn du es selbst einmal testest, was uns wirklich Zeit erspart. Der Audio-Tag wird zwar bei der Eingabe bzw. beim Wechsel zwischen Source-Code-Ansicht und der einfach Editor-Ansicht nicht mehr entfernt aber beim Speichern wird der Audio-Tag ebenfalls nicht gespeichert. Scheinbar wird beim Speichern serverseitig nochmal irgendwo gefiltert.

<audio controls="controls" preload="none">
<source src="path/to/my/file.mp3" type="audio/mpeg">
</audio>
Edited by neralex (see edit history)

Share this post


Link to post
Share on other sites

 

Also es wäre wirklich wünschenswert, wenn du es selbst einmal testest,

unnötig, da schon zig-fach auf diese Art gelöst!

 

Starte deinen Server neu und alles funktioniert!

Share this post


Link to post
Share on other sites

Das ist jetzt nicht dein Ernst, oder?!

 

Ich soll den Webserver neustarten, damit ein PHP-Script nicht mehr filtert? Was hat der Webserver damit zu tun, dass ein PHP-Script korrekt filtert? PHP wird doch nur vom Apache2 verarbeitet und bedarf keines Restarts, wenn daran Änderungen vorgenommen wurde. Wir können ja gern die Diskusssion über die Funktionsweise eines Webservers und PHP-Scripts in einem anderen Thread diskutieren aber das ist defintiv keine Lösung. Vorallem wenn es ein Shared-Server ist, also ein reiner Webspace wo keinerlei Restart des Apache2 möglich ist.

 

Ich versuche es nochmal zu schildern. Ich habe deine vorgeschlagene Änderung vorgenommen, wodurch lediglich der Editor den HTML5-Tag VOR DEM SPEICHERN nicht mehr herausfiltert, sobald ich zwischen der Code-Ansicht und der normalen Ansicht des Editors wechsele. Aber sobald ich das Formular abschicke, wird es dennoch herausgefiltert - egal ob ich den Cache meines BROWSERS leere oder nicht, da dies offenbar serverseitig mittels PHP passiert, kann ich da leider nix tun außer ein PHP-Script ändern und erneut über meinen LOKALEN Browser auszuführen. (PHP = arbeit nur serverseitig, bevor es an den Client ausgeliefert wird - JavaScript, worauf der Editor basiert, wird nur auf der Client-Seite im Browser ausgeführt.)

 

Es funktioniert nicht so, wie du es geschildert hast, da offenbar auch noch an einer anderen Stelle ein Filter greift. Die Frage ist wo ich suchen kann und meine Bitte erneut an dich:

 

TESTE ES BITTE SELBST!

 

Danke

Edited by neralex (see edit history)

Share this post


Link to post
Share on other sites

Ich gebe es, soviel Stumpfsinn ist unübertreffbar - Shop System gelöscht!

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×
×
  • Create New...

Important Information

Cookies ensure the smooth running of our services. Using these, you accept the use of cookies. Learn More