CSS und javascript Anzeige verfälscht sich

  • Hallo Community,


    auf meiner Seite nutze ich CodeMirror als Editor. Damit kann ich jeglichen Code (HTML, CSS etc.) direkt und unverfälscht auf die Seite bekommen. Wenn ich einen solchen Editor angeboten bekomme, ist das für mich auch immer ein Zeichen, dass ich hier auch z. B. CSS eingeben kann.

    Dies funktioniert auch, sofern es sich um "einfache" Artikel handelt, die direkt angezeigt werden.


    Mir fällt in letzter Zeit jedoch vermehrt auf, dass gewisse Plugins diese Eingaben nicht oder nicht korrekt auswerten bzw. weiter geben.

    1) JEM: Im Veranstaltungsbereich kann ich weitere Informationen über CodeMirror eingeben, jedoch wird jeglicher Formatierungsversuch scheitern, weil Formatierungen nicht an den Browser weiter gegeben werden. Links werden nicht als Links formatiert und CSS wird nicht ausgewertet.

    2) FlexiContent CCK: Artikel, die via Flexicontent angezeigt werden, geben unformatierten Bandwurmtext aus und torpedieren jegliche CSS-Formatierung im Artikel. Der Gipfel ist nun, dass auch javascript nicht ansprechen kann, weshalb das E-Mail-Cloaking eine Fehlermeldung bei angegebenen E-Mail-Adressen auswirft: javascript sei nicht eingeschaltet. Wird der Artikel jedoch in der Artikelansicht geöffnet, ist alles ok.


    Szenario scheint also:

    - formatierter Text aus Editor wird mit Formatierung direkt angezeigt --> ok

    - formatierter Text aus Editor wird "durch die Brille" einer weiteren Komponente angezeigt --> nok (html, css und javascript werden nicht erkannt oder herausgefiltert)


    Nun die Frage:

    Kann ich global über Joomla eine Einstellung vornehmen, damit diese Komponenten die Daten korrekt weiter geben, oder ist das eine Einstellung der jeweiligen Komponente? Da das Phänomen bei mehreren Komponenten auftaucht, scheint es ja vordergründig global zu sein.

    Muss ich evtl. Joomla-Features wie "Inhalte vorbereiten" abschalten? Wo muss ich hier nach der Ursache suchen?


    Ich kann mir das eigentlich nicht vorstellen, aber...

    Aus Sicherheitsgründen habe ich die Eingabe von Code über das Frontend abgeschaltet. In wie weit sorgt evtl. diese Einstellung hier auch für ein "abstrippen" der Texte?


    Vielen Dank für einen Tipp, wo ich suchen muss!


    Buckel

    Danke und Grüße


    Buckelthinking


    Joomla 3.8.7, alle Plugins aktuell

    Breezingforms 1.9.0 stable 930, Contentbuilder 0.9.91 (build 252)

  • Kann nur von JEM bzw. generell reden. Editoren werden über XML-Dateien für das sog. JForm-Formular konfiguriert, FALLS die Erweiterung das unterstützt, was JEM wohl tut. Dabei kann der Erweiterungsersteller auch Filterregeln eingeben.


    Nehm ich das Beispiel für Event und Editor "Hier kann die Veranstaltung beschrieben werden". Hier gelten die Filterregeln (filter="dingsbums"), die man in der Joomla-Konfiguration unter "Textfilter" gewählt hat, da der Editor wie folgt konfiguriert ist.

    Code
    1. <field name="articletext" type="editor"
    2. class="inputbox"
    3. label="COM_JEM_EVENT_FIELD_ARTICLETEXT_LABEL"
    4. description="COM_JEM_EVENT_FIELD_ARTICLETEXT_DESC"
    5. filter="JComponentHelper::filterText"
    6. hide="pagebreak"
    7. />

    Wenn ich bspw. als Super User in einem Event im Backend mit Codemirror eingebe

    wird im Frontend alles richtig gemacht bis hin zum automatischen Cloaking der Email-Adresse über das Joomlaplugin "Verschleierung" oder wie es heißt.


    Wie gesagt, es gibt diverse filter="xyz"-Möglichkeiten für Editoren. Bzgl. JEM musst also angeben, von welchem du exakt redest, auch, ob Front-oder Backend, in aktueller Version 2.2.3, damit man prüfen kann.


    Natürlich können "fiese Programmierer" auch unabhängig davon nachträglich Code ausputzen.


    Weiters gibt es zu den Editoren oft Plugins, in denen man ebenfalls noch konfigurieren kann. Oder wie beim JCE eine Komponente, in der man individuelle Filterregeln pro Editor-Profil setzen kann.

    Aus Sicherheitsgründen habe ich die Eingabe von Code über das Frontend abgeschaltet.

    Keine Vorstellung, was du damit meinst. Teste halt erst mal mit voller Erlaubnis. Dann siehst ja, ob das was damit zu tun hat

  • Hallo Re:later,


    evtl. hab ich mich falsch ausgedrückt. Die Anzeige ist nicht im Editor verfälscht, sondern im Artikel, wenn man ihn "in zweiter Reihe" ansieht. Was meine ich mit zweiter Reihe: Ein Modul o. ä. ruft den Text auf und zeigt ihn an (ein Beitrag kann ja auch direkt angezeigt werden).


    Beispiel: Der im JEM eingegebene Text enthält einen kurzen <style>-Block mit einigen CSS z. B. zur Bildanordnung oder zur Fettschrift bestimmter Textteile. Ruft man diese Veranstaltung auf, so sieht alles richtig aus - Links sind hervorgehoben, Fettschrift ist da und Bilder angeordnet.

    Nun habe ich jedoch die Möglichkeit, diese "weiteren Informationen" in einem Kalender-Teaser-Modul anzeigen zu lassen und hier werden diese Zusatzinformationen nicht mehr ausgewertet, sondern "flach" angezeigt d. h. dort steht dann zwar kein html, aber der Eintrag beginnt z. B. ".fig {..." aus den CSS-Angaben.


    Ähnliches passierte bei dem CCK FlexiContent, das den Artikel korrekt mit Formatierung und Mailadresse anzeigte. Als ich jedoch die Übersichtsseite, auf der alle Artikel als Teaser (die ersten 5 Zeilen Text) angeordnet waren anzeigte, erschien die erwähnte javascript-Meldung anstelle der jeweiligen Mailadressangabe. Es wirkt fast so, als würden alle Einträge in spitzen Klammern herausgefiltert und der Browser kann dann die Anweisungen nicht mehr auswerten - und gibt sie als Text aus oder wie im letzten Fall die Fehlermeldung, dass Javascript nicht eingeschaltet sei...


    Daher auch mein Verdacht, dass es mit der Behinderung einer Codeeingabe (kein html) über das Frontend zusammenhängen könnte. Eigentlich nicht logisch, weil Eingabe und Ausgabe zwei Paar Stiefel sind, aber wenn man nicht weiß, wo man suchen soll - es liegt nahe, dass die Html-Tags herausgefiltert werden und dem Browser nicht mehr zur Verfügung stehen und der Rest dann nur noch als plain Text angezeigt wird.


    Grüße


    Buckel

    Danke und Grüße


    Buckelthinking


    Joomla 3.8.7, alle Plugins aktuell

    Breezingforms 1.9.0 stable 930, Contentbuilder 0.9.91 (build 252)

  • Im Fall des mod_jem_teaser (wie in vielen Modulen, auch joomlaeigenen) wird tatsächlich fast alles "zerhackwurstet". Sowohl viele HTML-Tags "hieroglyphisiert" bzw. gänzlich entfernt. Hintergrund beim mod_jem_teaser ist z.B. auch, dass es eine Option für Beschreibungslänge gibt. Blieben die HTML-Tags erhalten, könnte es sein, dass beim Kürzen, schließende Tags entfernt werden, die aber nötig sind, um Seiten-Quelltext nicht zu zerschießen. Oder bspw. ein Link in der Mitte getrennt wird. Auch, um die "echte, gekürzte Textlänge" richtig zu kalkulieren, muss zuvor alles "Unsichtbare" raus.


    Beim mod_jem_teaser gibt es auch keine Möglichkeit, das nur durch einen updatefähigen Template-Override zu umgehen, da die Schritte bereits in der helper.php passieren (Zeilen 228 bis 245).


    Klingt vielleicht blöd, aber das "Einfachste" ist, das Modul unter eigenem Namen zu kopieren/zu klonen, anzupassen und zu installieren und dann das eigene Modul zu verwenden.

  • Danke, das erklärt doch einiges. Beruhigend, dass nicht alle Module generell betroffen sind. Ich werd das mal testen.

    Danke und Grüße


    Buckelthinking


    Joomla 3.8.7, alle Plugins aktuell

    Breezingforms 1.9.0 stable 930, Contentbuilder 0.9.91 (build 252)