Problem mit Auswahllisten und Sonderzeichen im BE

Hallo hatte gerade ein Problem mit der Verwendung von Sonderzeichen in Auswahllisteneinträgen, da das Prob vielleicht bei anderen ebenfalls auftreten könnte poste ich mal mein Lösungsvorschlag.

Prob: beim Neuanlegen oder Verändern von Einträgen werden vor dem Speichern die Werte bereits vorhandener Einträge eingelesen, dabei erfolgt eine Umwandlung in Entitäten -> führt dazu das beim Speichern die Html-Entität für das Sonderzeichen mit gespeichert wird. Erfolgt ein weiterer Eintrag, so wird das &-Zeichen der Html-Entität wieder als Sonderzeichen behandelt und die Entitäten je Eintrag vervielfältigen sich während jedes Speichervorgangs.

Problem liegt in der selectlist_main.php wo in der save-Methode keine Umwandlung vor dem Speichern erfolgt und so Html-Entitäten in der DB landen.

Deshalb in den Zeilen 136-145 vor …->setValue : html_entity_decode ergänzen.

    $oAttr->oxselectlist__oxvaldesc = new [oxField](http://docu.oxid-esales.com/CE/sourcecodedocumentation/4.1.0.17976/classox_field.html)("");        foreach ( $this->aFieldArray as $oField) {            $oAttr->oxselectlist__oxvaldesc->setValue( html_entity_decode($oAttr->oxselectlist__oxvaldesc->value . $oField->name));            if ( isset( $oField->price) && $oField->price) {                $oAttr->oxselectlist__oxvaldesc->setValue( html_entity_decode($oAttr->oxselectlist__oxvaldesc->value . "!P!" . trim(str_replace( ",", ".", $oField->price))));                if ($oField->priceUnit == '%')                    $oAttr->oxselectlist__oxvaldesc->setValue( html_entity_decode($oAttr->oxselectlist__oxvaldesc->value . '%'));            }            $oAttr->oxselectlist__oxvaldesc->setValue( html_entity_decode($oAttr->oxselectlist__oxvaldesc->value . "__@@"));        }

Hallo Julius,

vielen Dank für Dein Posting! Sind nur die Auswahllisten betroffen? Beim schnellen Durchschauen bugs.oxid-esales.com habe ich nichts gefunden. Sollen wir dazu noch einen Bug aufmachen?

Gruß


Marco Steinhäuser
Community Guide
OXID eSales AG
http://twitter.com/marcosteinhaeus

Hallo,

konnte es nur bei den Auswahllisten beobachten. Attribute haben z.B. ihre eigene Speicherroutine, bei der das Problem nicht auftritt, da für die Ansicht escaped Ausdrücke vor dem Speichern zurückgewandelt werden. Können wir ruhig als Bug einstellen und die Rückwandlung mittels html_enity_decode in der Speicherroutine (wie erläutert) sollte als Problemlösung reichen.

Gruß

Danke.

https://bugs.oxid-esales.com/view.php?id=914

Gruß


Marco Steinhäuser
Community Guide
OXID eSales AG
http://twitter.com/marcosteinhaeus

Hallo Julius,

kannst Du Dir den Kommentar im o.g. Bugeintrag anschauen? Die Entwicklung benötigt ggf. Beispiele.

Gruß

Storno. Massiver Gedankenfehler.

Grüße,
Björn