Hallo zusammen,
ich upgrade gerade eine Typo3 Installation auf Typo 4.6.
Dabei möchte ich eine eigene Extension in ihrer alten Form zunächst einfach weiter benutzen und das später erst neu schreiben (basierend auf Extbase).
Meine Extension erzeugt unter anderem eine Formular, dass ich händisch zusammenbaue, in etwa so:
$content .= '<form action="index.php?id='.$GLOBALS["TSFE"]->id.'" method="POST" name="tx_meineextension_search">
Seit dem Upgrade werden die Formular aber nicht mehr angezeigt, sondern der HTML Code des Formulars. Das liegt daran, dass an irgendeinem Punkt alle Steuerzeichen (<, >, ", etc...) ersetzt werden, durch die entsprechenden HTML-Namen. So wird aus < z.B. <
Könnt Ihr mir einen Tipp geben, wo das passiert und wie ich es verhindern kann?
Guten Morgen.
Das klingt nach einem htmlspecialchars() bzw. einem stdWrap.htmlSpecialChars = 1
Wann/Wo/Wie das plötzlich da ist, musst Du vermutlich selber beantworten, da nur Du Deine Extension und Dein TypoScript kennst.
Viele Grüße
Julian
Danke schonmal für deine Antwort.
htmlspecialchars() verwende ich eigentlich nicht im Zusammenhang mit der Ausgabe des Formulars, das erzeugt werden soll.
Da ich im Rahmen des Upgrades die Extension in ein neues Typo3 verpflanzt habe, gehe ich eher von stdWrap.htmlSpecialChars=1 aus.
Gibt es eine Möglichkeit das ganze komfortabel zu deaktivieren, am liebsten natürlich nur für meine Erweiterung?
Nachdem es kein normales Verhalten von TYPO3 ist, ist die Frage, was bei Dir anders ist. Also die Frage: was hast Du an welcher Stelle an TYPO3 (ggf. vor dem Upgrade) geändert, das dieses Verhalten auslöst? Und genau dort ist es auch deaktivierbar bzw. verhinderbar/abfangbar.
Das ist es ja, ich weiss es nicht.
Ich habe Typo3 4.6 komplett neu installiert auf dem gleichen System.
Dann habe ich Extbase und Fluid installiert und damit dann das Template auf Fluid umgestellt.
Datenbank importiert und noch die eigene Extension rüberkopiert. Das wars.
Gleiche Maschine, gleiches PHP. Daher vermute ich dass es innerhalb von Typo3 passiert.
Okay, ich habs.
Es liegt an Fluid, das automatisch alles durch htmlspecialchars() schickt.
Ich habe im Template aus:
<f:format.html>{content}</f:format.html>
ein
<f:format.html parseFuncTSPath="">{content}</f:format.html>
gemacht. Damit fällt die Evaluierung durch htmlspecialchars weg.
Dass Fluid automatisch alles durch htmlspecialchars schickt, stimmt doch wohl nicht, der Tag <f:format.html> ist doch nicht automatisch in deinem Template gelandet! .-)