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: Fehler bei Verwendung einer neueren jquery.min.js

    karsta.de

    • Experte
    • Beiträge: 3.157
    Musste gerade feststellen, dass bei Verwendung der jquery-1.11.3.min.js und höhere die Fehlermeldungen bei Änderung der Versand- oder Rechnungsanschriften nicht angezeigt werden (natürlich nur bei fehlenden Angaben).

    Hat jemand einen Tipp was da fehlen könnte.
    Also braucht man dann auch eine neue jquery.alerts.js ?

    BG kgd

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

    hpzeller

    • Experte
    • Beiträge: 4.129
    • Geschlecht:
    Re: Fehler bei Verwendung einer neueren jquery.min.js
    Antwort #1 am: 25. März 2017, 21:27:29
    Hallo kgd,

    wenn man ein Update von jquery-1.8.3 auf jquery-1.11.3 machen will, denke ich braucht man diesen Code -> https://code.jquery.com/jquery-migrate-1.4.1.js bzw. diesen Code -> https://code.jquery.com/jquery-migrate-1.4.1.min.js schau mal hier -> https://jquery.com/download/#jquery-migrate-plugin

    Gruss
    Hanspeter

    karsta.de

    • Experte
    • Beiträge: 3.157
    Re: Fehler bei Verwendung einer neueren jquery.min.js
    Antwort #2 am: 26. März 2017, 21:35:59
    Danke Hanspeter für den Tipp.

    Ganz klar ist mir allerdings nicht, warum an dieser Stelle (checkout) auf einmal "alert" verwendet wird, wo sonst im gesamten Shop die Fehler- bzw. Infomationsmessages oben im Error-DIV ausgegeben werden.

    Scheint noch ein uraltes Relikt aus xt Zeiten zu sein (obwohl die Box schon mal optisch aufgehübscht wurde). Aber ich kann mich auch irren. Ich persönlich finde es immer gut sich für eine Variante zu entscheiden, entweder DIV oder ALERT. Macht das ganze einfach klarer.

    BG kgd

    hpzeller

    • Experte
    • Beiträge: 4.129
    • Geschlecht:
    Re: Fehler bei Verwendung einer neueren jquery.min.js
    Antwort #3 am: 27. März 2017, 09:45:26
    Hallo kgd,

    um die JavaScript-Validierung (ALERT) des Formulars auszuschalten und stattdessen nur eine zur JavaScript-Validierung konsistente PHP-Validierung (DIV) des Formulars durchzuführen musst Du folgende Änderungen ausführen.

    In '/templates/tpl_modified/module/checkout_shipping_address.html' folgenden Code

    Code: XML  [Auswählen]
    {$FORM_ACTION}
     

    mit diesem Code ersetzen

    Code: XML  [Auswählen]
    {$FORM_ACTION|replace:'onsubmit="return check_form_optional(checkout_address);"':''}
     

    dann weiter in 'checkout_shipping_address.php' folgenden Code

    Code: PHP  [Auswählen]
      // process a new shipping address
      if (xtc_not_null($_POST['firstname'])
          && xtc_not_null($_POST['lastname'])
          && xtc_not_null($_POST['street_address'])
          )
      {
     

    mit diesem Code ersetzen

    Code: PHP  [Auswählen]
      // process a new shipping address
      if (xtc_not_null($_POST['firstname'])
          || xtc_not_null($_POST['lastname'])
          || xtc_not_null($_POST['street_address'])
          )
      {
     

    und diesen Code

    Code: PHP  [Auswählen]
    if ($process == true) {
      $smarty->assign('BUTTON_BACK', '<a href="'.xtc_href_link(FILENAME_CHECKOUT_SHIPPING_ADDRESS, $params, 'SSL').'">'.xtc_image_button('button_back.gif', IMAGE_BUTTON_BACK).'</a>');
    }
     

    mit diesem Code ersetzen

    Code: PHP  [Auswählen]
    $smarty->assign('BUTTON_BACK', '<a href="'.xtc_href_link(FILENAME_CHECKOUT_SHIPPING, $params, 'SSL').'">'.xtc_image_button('button_back.gif', IMAGE_BUTTON_BACK).'</a>');
     

    Analoges sollte man dann auch in der '/templates/tpl_modified/module/checkout_payment_address.html' und der 'checkout_payment_address.php' machen.

    PS:
    JavaScript Alerts halte ich auch für veraltet, eine Vorvalidierung von Formularen durch JavaScript halte ich aber für sinnvoll, denn so kann man Seiten-Reloads sparen, nur sollte das Ergebnis im Fehlerfall nicht in einem Alert sondern direkt und kommentiert im Formular ausgegeben werden.

    Gruss
    Hanspeter

    karsta.de

    • Experte
    • Beiträge: 3.157
    Re: Fehler bei Verwendung einer neueren jquery.min.js
    Antwort #4 am: 27. März 2017, 19:26:48
    Hallo Hanspeter,

    vielen Dank für deine Mühe. Das ist mehr als ich mir erwartet hatte. Werde es heute nacht mal testen.
     :-B  :cheers:

    BG kgd

    karsta.de

    • Experte
    • Beiträge: 3.157
    Re: Fehler bei Verwendung einer neueren jquery.min.js
    Antwort #5 am: 29. Oktober 2017, 09:20:36
    Späte Rückmeldung.

    Hallo hpzeller,

    habe beide Versionen getestet.
    • Dein 1. Vorschlag, die jQuery Migration der jquery-migrate-1.4.1.min.js hat es leider nicht gebracht.
      Die Alertbox wird nicht angezeigt.
      Habe beide Dateien in die general_bottom.js.php so integriert:
    Code: PHP  [Auswählen]
    $script_array = array(
      DIR_TMPL_JS.'jquery-1.12.4.min.js',
      DIR_TMPL_JS.'jquery-migrate-1.4.1.min.js',
      ....
    • Dein 2.Vorschlag funktioniert in der checkout_shipping.php und in der checkout_payment.php korrekt.
      Allerdings ist mir dadurch in der V2.0.3.0. ein weiteres Problem aufgefallen. (bei Verwendung einer neueren jquery.min.js)
      Wenn man die AGB zur Kenntnisnahme eingeschaltet hat und diese nicht angehackt werden, wird man auf die error.html geleitet und landet auf der Blacklist und nichts geht mehr, was genau mit dem "alert" Problem zusammenhängt. (wie aus der log-Datei hervor geht)

    Hast du vielleicht noch eine Idee, wie man das Problem lösen könnte?

    BG kgd

    karsta.de

    • Experte
    • Beiträge: 3.157
    Re: Fehler bei Verwendung einer neueren jquery.min.js
    Antwort #6 am: 29. Oktober 2017, 18:43:59
    Hat das eigentlich schon mal jemand im Template von Karl (TEMPLATE: Bootstrap3 für Shop 2.0 - freies responsive Template) getestet, denn das Template verwendet ebenfalls das jquery-1.12.4.min.js und jquery-migrate-1.4.1.min.js.

    [edit]
    Gerade mal getestet. Komisch da funktionierts. Habe auch die beiden Dateien verglichen. Sind gleich wie bei mir. Ist mir wirklich ein Rätsel.

    BG kgd

    karsta.de

    • Experte
    • Beiträge: 3.157
    Re: Fehler bei Verwendung einer neueren jquery.min.js
    Antwort #7 am: 30. Oktober 2017, 09:43:25
    Unglaublich, aber wahr. Nach gefühlten 10000 Tests kommt hier die Auflösung meines Problems.
    Es lag tatsächlich an Änderungen in der Sprachdatei german.php zu den JavaScript-Fehlermeldungen. Ich hatte statt des *Sterns Font-Awesome-Schriftzeichen verwendet.
    Hatte die Schreibweise falsch. Sollte in jedem Fall dann bei Verwendung z.B. so:
    <i class=\"fa fa-exclamation-triangle\"></i>

    Manometer, da kann man doch irre werden. Aber wenigstens läufts jetzt wie es soll.  :-B

    BG kgd

    Timm

    • Fördermitglied
    • Beiträge: 6.258
    Re: Fehler bei Verwendung einer neueren jquery.min.js
    Antwort #8 am: 30. Oktober 2017, 13:30:26
    Schön zu hören.  :thumbs: Da dein Problem ja einscheinend gelöst ist, könnte man den Thread vielleicht in eine andere Richtung lenken, wenn das gewollt ist.

    Das Thema hat mich dazu gebracht testweise nochmal die jquery-3.2.1.min.js zu integrieren. Diesmal nur indem ich den Inhalt der 1.8.3 mit dem der 3.2.1 ersetzt habe. Hatte es vorher aber auch schon mal mit richtiger Änderung in der general.js.php ausprobiert. Eigentlich ging es mir darum zu gucken, ob der Fehler des wandernden Popups auf apple Geräten dadurch verschwindet, was leider nicht passiert ist. (Ticket #1153)

    Insgesamt gab es nicht wirklich viele Fehler. Was ich finden konnte war, dass die Strasse mit fehlender Zahl und die Postleitzahl als Buchstaben keine Fehlermeldungen hervorbrachte. Alle anderen Daten des Adressfeldes wurden überprüft. Auch die Checkboxen für AGB im Checkout hat einen Fehler ausgegeben, wenn man sie nicht angeklickt hat. Tabs, Accordeon, Popups haben ebenfalls funktioniert.

    Der gleiche Fehler besteht aber auch im aktuellen Demoshop und ist also nicht auf die neuere jquery zurückzuführen.
    [ Für Gäste sind keine Dateianhänge sichtbar ]

    Wenn man nichts einträgt im Adressfeld kommt das als einziger Fehler, den ich finden konnte.
    [ Für Gäste sind keine Dateianhänge sichtbar ]

    Deshalb die Frage, was noch überprüft werden müsste und warum nicht die aktuellste Version von jQuery genommen wird? Aus Performance (ok das wird man nur bei speziellen Anwendungsfällen merken und nicht beim Standardshop) und Sicherheitsgründen wäre ein Upgrade doch sinnvoll, oder?

    Gruß Timm

    Getestet mit Version 2.0.3.0 und tpl_modified_responsive

    Tomcraft

    • modified Team
    • Gravatar
    • Beiträge: 46.369
    • Geschlecht:
    Re: Fehler bei Verwendung einer neueren jquery.min.js
    Antwort #9 am: 30. Oktober 2017, 13:44:14
    [...]
    Insgesamt gab es nicht wirklich viele Fehler. Was ich finden konnte war, dass die Strasse mit fehlender Zahl und die Postleitzahl als Buchstaben keine Fehlermeldungen hervorbrachte. [...]

    Bezüglich der Hausnummer:
    Siehe: ANLEITUNG: Adressfeld (Strasse) auf Hausnummer überprüfen

    Bezüglich der Postleitzahl:
    Je nach Land können Postleitzahlen durchaus Buchstaben enthalten, siehe: Liste der Postleitsysteme

    Grüße

    Torsten

    Timm

    • Fördermitglied
    • Beiträge: 6.258
    Re: Fehler bei Verwendung einer neueren jquery.min.js
    Antwort #10 am: 30. Oktober 2017, 13:55:23
    Danke Torsten.
    3 Antworten
    3699 Aufrufe
    07. Januar 2016, 19:05:53 von Roy
    12 Antworten
    8838 Aufrufe
    13. Dezember 2012, 17:26:24 von noRiddle (revilonetz)
    8 Antworten
    6013 Aufrufe
    15. April 2012, 19:40:15 von hechicero
    2 Antworten
    3156 Aufrufe
    31. August 2013, 15:03:22 von pixelpro
               
    anything