FrontEndUser und Sonderzeichen

Hilfe zu Modulen und Tags
Post Reply
sw
New Member
New Member
Posts: 5
Joined: Mon Aug 04, 2008 5:29 pm

FrontEndUser und Sonderzeichen

Post by sw »

Hallo,

ich habe hier ein Problem mit dem Modul FrontEndUsers und Sonderzeichen.

Bearbeitet ein FEU seine Daten (Template für Einstellungen ändern), werden alle Sonderzeichen als Entitäten codiert (aus " wird ") in der Datenbank abgespeichert. Auf der Website werden diese Daten jetzt korrekt dargestellt.

Sobald der FEU das Formular "Template für Einstellungen ändern" erneut aufruft, werden die Sonderzeichen jedoch nicht decodiert, sondern als Entität im Textfeld dargestellt. Speichert man das Formular ohne Änderungen ab wird dann aus &qout; &ampquot; da das & der Entität als Sonderzeichen erkannt und konvertiert wird.

Habe ich da irgendwo etwas falsch eingestellt?

Ich verwende CMSMS 1.3, FEU 1.4.2, PHP 5.2.6, MySQL 5 mit utf8_general_ci

Vielen Dank & Grüße

sw
NaN

Re: FrontEndUser und Sonderzeichen

Post by NaN »

Sieht mir eher nach einem Fehler im Code aus.
sw
New Member
New Member
Posts: 5
Joined: Mon Aug 04, 2008 5:29 pm

Re: FrontEndUser und Sonderzeichen

Post by sw »

Danke, dann werde ich mal suchen.
NaN

Re: FrontEndUser und Sonderzeichen

Post by NaN »

sw wrote: Danke, dann werde ich mal suchen.
Der Inhalt der Inputfelder wird aus Sicherheitsgründen in Entitäten umgewandelt.
Dazu wird aber nicht nur die php Funktion htmlentities() oder htmlspecialchars() verwendet, sondern eine eigene Funktion der API.
Die da heißt cms_htmlentities().
Diese Funktion wird immer aufgerufen, wenn man z.B. ein Inputfeld mit der API Funktion CreateInputText() erstellt.
(Alle Parameter, die an diese Funktion übergeben werden, werden erstmal umgewandelt)
D.h. wenn man einem Inputfeld ein bereits in Entitäten umgewandelten Wert vorgeben will, wird dieser automatisch erneut umgewandelt.
Man müsste, bevor man diese CreateInputText() Funtion aufruft, den Wert wieder in "Nicht-Entitäten" umwandeln.

Also z.B. so:

($description sei jetzt mal der Wert für das Textfeld, der bereits Entitäten beinhalten könnte)


$mod = get_html_translation_table ( HTML_SPECIALCHARS, ENT_QUOTES );
$mod = array_flip ( $mod );
foreach($mod as $k=>$v)
{
$description = str_replace('&#0','&#',$description);
$description = str_replace($k,$v,$description);
}
$this->smarty->assign('description_input', $this->CreateTextArea(false, $id, $description, 'description','','','','',32,2));


So habe ich es mal in einem Modul gemacht.
sw
New Member
New Member
Posts: 5
Joined: Mon Aug 04, 2008 5:29 pm

Re: FrontEndUser und Sonderzeichen

Post by sw »

Danke, das werde ich mal ausprobieren.
Post Reply

Return to “Module und Tags”