Jump to content

Script im CMS nicht möglich


chris_k

Recommended Posts

Liebe Community,

 

ich bräuchte euch nochmal. Ich möchte auf einer CMS seite gerne ein <script> einbinden. Jedoch klappt das leider nicht. In den Settings-General habe ich IFrames erlaubt. Jedoch ohne Erfolg, auch habe ich versucht, wie durch Google erfahren, verschiedene Dateien auf dem FTP zu bearbeiten, jedoch brachte dies auch nichts. Habe Ihr noch eine Idee?

Vielen Dank im Voraus für eure Hilfe.

Chris

 

 

Link to comment
Share on other sites

Hallo Chris,

du solltest etwas genauer beschreiben was du machen willst und was dann letztendlich nicht funktioniert!

 

Grundsätzlich schaltest du den TynyMCE auf HTML-Mode um und tippst deinen Code ein und speicherst ab. Bedenke allerdings, dass PRESTASHOP während des Speicherns bestimmte HTML-Befehle ausfiltert - du erkennst das daran, dass sich dein abgespeicherter Code vom ursprünglich eingetippten unterscheidet. Ist das dein Problem?

 

Grüsse

Whiley

Edited by Whiley (see edit history)
Link to comment
Share on other sites

Hallo Whiley,

 

Vielen Dank für deine Antwort, gerne beschreibe ich das Problem genauer. Folgenden Code möchte ich auf eine CMS-Seite einfügen:

<SCRIPT LANGUAGE="JavaScript" TYPE="text/javascript" SRC="https://smarticon.geotrust.com/si.js"></SCRIPT> 

Sobald ich dies jedoch tue, entfernt PrestaShop den Code wieder oder gibt eine Meldung aus, dass ein ungeültiger Content enthalten ist.

 

Leider weiß ich nicht wie ich dieses Problem lösen kann. Mit hilfe von Google fand ich tipps bestimmt Daten auf dem FTP anzupassen, jedoch ohne erfolg.

 

Ich hoffe du/Ihr könnt damit etwas anfangen und habe eine Lösung für mich .

 

Gruß

Chris

Link to comment
Share on other sites

Hallo Chris,

 

die Datei Validate.php filtert vor dem Speichern deinen Code, um das zu verhindern öffnest du mit einem Editor die Datei:

/classes/Validate.php

 

bei ca Zeile 395 findest du:

Quote

 

    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:

Quote

 

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

 Speichern und und unbedingt den Smarty-Cache und den Browser-Cache löschen.

 

Ich habe es gerade mal ausprobiert, auf

http://prestashop.multimedia-bodensee.de/content/7-skript-test

ist die Zeile eingebunden (wenn du ctrl u drückst bei Zeile 582)

 

Viele Grüsse

Whiley

Link to comment
Share on other sites

Hallo Whiley,

 

Vielen Danke für deine Mühen!

 

Ich habe dies einmal nach deiner Anleitung gemacht und den Code am Ende über den Editor und über den Quelltext-Button eingefügt. Er speichert diesen auch nun aber, allerdings entfernt er Ihn wieder. SCheint als würde er merken, dass es ein <script>-code ist.

 

Hast du ggf. noch eine Idee? Als Info, ich nutze die aktuellste Version von PrestaShop.

 

Beste Grüße

Chris

Link to comment
Share on other sites

Grundsätzlich sollte das Skript in einer CMS-Seite immer eingeschlossen sein in die Befehle

{literal} ,,,, {/literal}

Bringt aber im Moment auch nicht wirklich weiter, weil der Bug, der den HTML-Strip verursacht, zwar erkannt aber noch nicht richtig behoben wurde. Diskussion hier: http://www.prestashop.com/forums/topic/315798-no-html-allowed-in-blockcmsinfo/

Link to comment
Share on other sites

Hallo Chris,

 

sorry, dass ich mich erst jetzt melde - aber das Problem Zeit..... :)

 

Also die Änderungen die ich dir im post #4 vorgeschlagen habe sind zunächst notwendig - zusätzlich musst du allerdings noch (ab PS1.6.0.8) ins Backoffice gehen :

-->Voreinstellungen -->Allgemein  --> auf 3. Auswahlpunkt von oben "HTMLPurifier verwenden" auf NEIN stellen

speichern, wie immer cache löschen etc...

ich habe es gerade probiert und es funktioniert bei 1.6.0.8!

 

Grüsse

Whiley

Link to comment
Share on other sites

Würd mich interessieren, welche Nebenwirkungen es hat, den Reiniger auszuschalten. Wofür genau ist der denn gut Whiley?

 

 

PS:

Ich bin noch bei 1.6.0.6, da ich mich noch nicht traue auf 1.6.0.8 zu gehen, weil ich nicht weiß, ob die Version nun in Ordnung ist oder nicht. Im engl. Forum liest man so komische Sachen, wie WArenkorb bleibt leer und so :)

Ist die Lösung bei 1.6.0.6 ebenfalls anwendbar (validator). Nicht, dass ich mir neuen Ärger sonst einbaue....

Link to comment
Share on other sites

 

Ist die Lösung bei 1.6.0.6 ebenfalls anwendbar (validator).

Ja, so wie in Post #4 beschrieben funktioniert das in der 1.6.0.6! (Die 1.6.0.8 ist mir auch suspekt - bei mir läuft da die Debug-Console nicht - ein absolutes NoGo)

Wozu der Html-Cleaner gut sein soll (?) - nun ich meine auch, dass Html-Code im Text-Bereich eines CMS-Shop-Systems grundsätzlich nichts zu suchen hat und wirklich nur in Ausnahmefällen von demjenigen, der weiss was er tut, verwendet werden sollte. Es wird einfach eine Sicherhaitsmassnahme sein um zu verhindern das "Hobby-Programmierer" auf einfache Art Bugs in ihren Shop einbauen können. In die gleiche Richtung gehen ja auch die Beschränkungen des TinyMCE durch PS.

 

Grüsse

Whiley

Link to comment
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...