Neuigkeiten
  • Die modified eCommerce Shopsoftware ist kostenlos, aber nicht umsonst.
    Spenden
  • Damit wir die modified eCommerce Shopsoftware auch zukünftig kostenlos anbieten können:
    Spenden
  • Thema: Fragezeichen im Warenkorb rechte Spalte

    WeXsler

    • Viel Schreiber
    • Beiträge: 536
    Fragezeichen im Warenkorb rechte Spalte
    am: 24. November 2014, 18:02:57
    meine Version: v1.06 rev 4642 SP2 - auf UTF-8

    Problem: wenn ich in dem in der rechten Spalte mitlaufenden Warenkorb einen Artikel mit einem Produktnamen der einen Umlaut enthält hineinlege und dieser Umlaut (z.B. Prähisertafelzuckerü...) bevor die Punkte (...) anfangen steht, erhalte ich dort ein nettes Fragezeichen in einer Raute statt dem Umlaut - im Beispiel "Prähisertafelzucker�..." . Wenn ich die angezeigte Zeichenlänge um 1 auf 21 in der box_cart.html (hier truncate:20 auf truncate:21) verändere, passt es bei diesem Produktnamen wieder. Bei einem Produkt, dass den Umlaut dann auf dem 21 Zeichen hat, habe ich dann wieder das gleiche Problem :-(

    Hat jemand ein ähnliches Problem? Wie bekommt man das richtig hin?

    Linkback: https://www.modified-shop.org/forum/index.php?topic=31580.0

    Modulfux

    • Experte
    • Beiträge: 3.590
    • Geschlecht:
    Re: Fragezeichen im Warenkorb rechte Spalte
    Antwort #1 am: 24. November 2014, 18:18:31
    Läuft denn deine DB auf utf-8?

    Gruß
    Ronny

    WeXsler

    • Viel Schreiber
    • Beiträge: 536
    Re: Fragezeichen im Warenkorb rechte Spalte
    Antwort #2 am: 24. November 2014, 18:20:35
    ja, läuft so. Alles andere passt auch - keinerlei sonstige Umlautausfälle!

    hpzeller

    • Experte
    • Beiträge: 4.129
    • Geschlecht:
    Re: Fragezeichen im Warenkorb rechte Spalte
    Antwort #3 am: 24. November 2014, 18:52:38
    Hallo WeXsler

    meine Version: v1.06 rev 4642 SP2 - auf UTF-8

    Problem: wenn ich in dem in der rechten Spalte mitlaufenden Warenkorb einen Artikel mit einem Produktnamen der einen Umlaut enthält hineinlege und dieser Umlaut (z.B. Prähisertafelzuckerü...) bevor die Punkte (...) anfangen steht, erhalte ich dort ein nettes Fragezeichen in einer Raute statt dem Umlaut - im Beispiel "Prähisertafelzucker�..." . Wenn ich die angezeigte Zeichenlänge um 1 auf 21 in der box_cart.html (hier truncate:20 auf truncate:21) verändere, passt es bei diesem Produktnamen wieder. Bei einem Produkt, dass den Umlaut dann auf dem 21 Zeichen hat, habe ich dann wieder das gleiche Problem :-(

    Hat jemand ein ähnliches Problem? Wie bekommt man das richtig hin?

    Das liegt daran, das der Smarty-Modifier 'truncate' nicht mit Multibyte Character Set's wie 'UTF-8' umgehen kann.

    Lösung hier -> http://www.guyrutenberg.com/2007/12/04/multibyte-string-truncate-modifier-for-smarty-mb_truncate/

    Gruss
    Hanspeter

    WeXsler

    • Viel Schreiber
    • Beiträge: 536
    Re: Fragezeichen im Warenkorb rechte Spalte
    Antwort #4 am: 24. November 2014, 19:44:52
    sieht so aus Hanspeter als ob das der Punkt ist. Aber gibt es da denn echt noch keine offizielle Lösung für den aktuellen mod.? Mein Englisch hat in den Jahren nun auch stark gelitten, so dass ich im Wesentlichen vom "Multibyte String Truncate Modifier for Smarty – mb_truncate" nur Bahnhof verstehe :-(

    Den Pfad /smarty/plugins/modifier.mb_truncate.php. gibt es doch gar nicht im mod. v1.06? Soll man den komplett neu mit der mit dem Code zu füllenden modifier.mb_truncate.php anlegen und dann überall wo ein truncate in einer mod.-Datei zu finden ist bzw. erst mal in der box_cart.html dieses mit
    Code: PHP  [Auswählen]
    //$some_string is a string of utf-8 variables assign via php
    {$some_string|mb_truncate:13:"...":'UTF-8'}
    ersetzen?

    Vermutlich bin ich fürchterlichst auf dem Holzweg ... . Feel welcome to help if possible :-)

    Modulfux

    • Experte
    • Beiträge: 3.590
    • Geschlecht:
    Re: Fragezeichen im Warenkorb rechte Spalte
    Antwort #5 am: 24. November 2014, 20:31:53
    @Hanspeter
    Die Variante den modifier um mb_strXXX zu erweitern hatte ich auch schon. Das Resultat ist aber, dass garnichts gekürzt wird.

    Als Test habe ich in einer UTF-8 Umgebung
    Code: PHP  [Auswählen]
    $smarty->assign('umlaut', 'ÄÖÜäöüß');
    übergeben und mit
    Code: PHP  [Auswählen]
    {$umlaut|mb_truncate:5:"...":'UTF-8'}
    einenTest gemacht.
    Ergebnis war aber ein
    Zitat
    ÄÖ...

    Nach weiterer Spielerei habe ich herausgefunden, dass das Ergebnis immer um 3 Zeichen zu wenig anzeigt. Ich denke mit Smarty 2 wird da nichts mehr zu machen sein, denn in Smarty 3 ist die Multibytefähigkeit komplett integriert.

    @marsbewohner
    Du musst diese Datei als modifier.mb_truncate.php speichern und dann in /includes/classes/Smarty_2.6.27/plugins/ hochladen.

    Gruß
    Ronny

    Gruß
    Ronny

    hpzeller

    • Experte
    • Beiträge: 4.129
    • Geschlecht:
    Re: Fragezeichen im Warenkorb rechte Spalte
    Antwort #6 am: 24. November 2014, 22:48:13
    Hallo WeXsler

    1.
    Entpacke das 'modifier.mb_truncate.zip' (im Anhang) und lade danach die 'modifier.mb_truncate.php' ins Verzeichnis '/includes/classes/Smarty_2.6.27/plugins/' hoch.

    2.
    Sichere deine 'box_cart.html', danach ersetze in deiner 'box_cart.html' folgenden Code
    Code: XML  [Auswählen]
    {$products_data.NAME|truncate:20:"...":true}
    durch diesen Code
    Code: XML  [Auswählen]
    {$products_data.NAME|mb_truncate:20:"...":'UTF-8':true}

    3.
    Teste die Modifikation.

    Gruss
    Hanspeter

    hpzeller

    • Experte
    • Beiträge: 4.129
    • Geschlecht:
    Re: Fragezeichen im Warenkorb rechte Spalte
    Antwort #7 am: 24. November 2014, 23:19:08
    Hallo Ronny

    [...]
    Als Test habe ich in einer UTF-8 Umgebung
    Code: PHP  [Auswählen]
    $smarty->assign('umlaut', 'ÄÖÜäöüß');
    übergeben und mit
    Code: PHP  [Auswählen]
    {$umlaut|mb_truncate:5:"...":'UTF-8'}
    einenTest gemacht.
    Ergebnis war aber ein
    Zitat
    ÄÖ...

    Nach weiterer Spielerei habe ich herausgefunden, dass das Ergebnis immer um 3 Zeichen zu wenig anzeigt. Ich denke mit Smarty 2 wird da nichts mehr zu machen sein, denn in Smarty 3 ist die Multibytefähigkeit komplett integriert.
    [...]

    Die Ausgabe 'ÄÖ...' ist unter der Voraussetzung 'mb_truncate:5'  korrekt (Punkte sind auch Zeichen) und folgende Zeile in der 'modifier.mb_truncate.php' aus meinem Beitrag (Antwort #6) ist dafür verantwortlich.
    Code: PHP  [Auswählen]
            $length -= min($length, mb_strlen($etc, $charset));

    Gruss
    Hanspeter

    Modulfux

    • Experte
    • Beiträge: 3.590
    • Geschlecht:
    Re: Fragezeichen im Warenkorb rechte Spalte
    Antwort #8 am: 25. November 2014, 09:01:50
    Hanspeter, danke für den Denkanstoß.

    Ich war immer die Meinung, dass die drei Punkte nach den 5 Zeichen hinzugefügt werden, aber das passiert erst, wenn der Parameter true angehängt wird. So ist es natürlich klar, dass es dann insgesamt 5 Zeichen sind.

    Dann sollte man vllt. diesen modifier so im Shopsystem integrieren, dass er die die Funktion truncate übernimmt. Denn Multibyte-Sachen ist es ja egal ob es nun ISO oder UTF-8 ist.

    Gruß
    Ronny

    WeXsler

    • Viel Schreiber
    • Beiträge: 536
    Re: Fragezeichen im Warenkorb rechte Spalte
    Antwort #9 am: 25. November 2014, 10:06:05
    @Hanspeter. Das hat prima funktioniert. Danke!
    2 Antworten
    1630 Aufrufe
    27. Januar 2017, 13:36:03 von Koffein
    5 Antworten
    3914 Aufrufe
    07. Januar 2011, 09:30:25 von Tomcraft
    2 Antworten
    2836 Aufrufe
    17. Oktober 2011, 19:26:08 von Tomcraft
    17 Antworten
    11205 Aufrufe
    15. Februar 2012, 15:30:45 von Dato