Joomla 4.4 VM 4.2.- Page reload nach jedem setzen der ABG und Datenschutz checkbox

  • Hallo,


    das soll erstmal meine letzte Frage hier im Forum sein.


    Dieser Fehler oder Verhalten von VM ist schon mal aufgetreten. Es geht um die Haken bei den Checkboxen im Warenkorb. In unserem Fall sind es 3 Stück, die im Backend unter Shopper Fields erstell wurden. AGB, Datenschutz und Prüfung Bestellung. Die Seite lädt nach jedem einzlenen setzen der Haken neu und springt nach oben. Verwirrend für den Benutzer.


    Es gab schon einen Beitrag:
    Reload nach dem Bestätigen der AGB-Checkbox


    2 Lösungswege die leider in userem Fall nicht funktionieren:

    1. One Page Checkout App von Virtueplanet (vom Kunden nicht gewünscht)

    2. Gutschein Funktion deaktivieren


    Der Fehler tritt bei uns nach Update bzw. Migration von J3.9 und VM4 nach J4.4 und VM4.2 auf. Im alten System funtkioniert es. Backend Einstellungen wurden gepürft und sind identisch. die cart Dateien im Ordner components/com_virtuemart/views/cart/tmpl/default.php sind ebenfalls identisch. Es sind keine theme overrides vorhanden.


    Freue mich sehr über eure Hilfe!


    VG

    Mirco

  • Es gibt einen entscheidenen Unterschied zwischen VM 4 und VM 4.2 in components/com_virtuemart/views/cart/tmpl/default.php. In Version 4.2 wird JHtml::_ ('behavior.formvalidation'); in Zeile 5 geladen. Dieser Aufruf wurde in Version 4.2 enfernt.


    Was hat es damit auf sich?


    Danke!

  • Servus,


    Joomla 4 empfiehlt den Aufruf des Validierungs-Skripts über den Web Asset Manager.

    Factory::getApplication()->getDocument()->getWebAssetManager()->useScript('form.validate');


    JHtml::_ ('behavior.formvalidation'); war noch aus Joomla 1 oder 2.

    Später war es "formvalidator", evtl. in Joomla 3, da bin ich nicht sicher.

    Auf jeden Fall war es alter Code, der endlich rausgeflogen ist.


    Ob die alte Validierung durch eine neue VM-eigene ersetzt wurde, weiß ich gerade nicht. Ansonsten müsste man für Joomla 4 und höher wohl obigen Code hinzufügen. Ich müsste mir das selbst auch erst anschauen, da ich immer den OPC von VirtuePlanet einsetze. Da muss man sich um diese Sachen keinen Kopf machen, da der OPC das alles per Ajax selbst validiert.


    Grüße

    Stefan

  • Ok, danke!


    Den WebAssetManager muss ich mir dann wohl genauer ansehen.


    JHtml:_('behaviour...') war Teil des behaviour frameworks bzw. mootools, welches in J4 rausgeflogen ist. Diese includes müssten ersetzt werden.


    Diese Beiträge beschreibe es praktisch ganz gut was zu tun ist:
    - https://ghsvs.de/programmierer…per-methoden-unterschiede
    - https://github.com/joomla/joomla-cms/discussions/35136

    Bezugnehmend auf das eigentliche Problem liegt das eher in der Javascript Validierung. Es fehlt für Jquery ggf. event.preventdefault() nach setzen der checkboxen, damit der reload unterbunden wird.