Virtuemart 4.012 mit Joomla 4 Fehlermeldungen bei Produktkategorie-Ansicht

  • Hallo miteinander


    Ich habe diesselbe Frage auch im Virtuemart Forum gestellt aber da scheint keiner zu antworten, also versuche ich es hier.


    Hallo zusammen

    Ich habe eine Joomla-Seite auf 4 geupdatet mit Update Virtuemart auf 4.012


    Url wäre:


    Home


    Soweit läuft alles im Backend, kann auf alles zugreifen, alles verändern. Nun kommt aber im Frontend eine etwas andere Ansicht und wenn ich auf die Produkteabbildungen klicke bekomme ich folgende Fehlermeldung:


    Category not found

    /home/sites/4b/b/b379e61b2e/public_html/joomlaupdate/components/com_virtuemart/views/category/view.html.php:753

    1

    () JROOT/components/com_virtuemart/views/category/view.html.php:753 2

    VirtuemartViewCategory->handle404() JROOT/components/com_virtuemart/views/category/view.html.php:200 3

    VirtuemartViewCategory->display() JROOT/components/com_virtuemart/controllers/category.php:61 4

    VirtueMartControllerCategory->display() JROOT/libraries/src/MVC/Controller/BaseController.php:672 5

    Joomla\CMS\MVC\Controller\BaseController->execute() JROOT/components/com_virtuemart/virtuemart.php:128 6

    require_once() JROOT/libraries/src/Dispatcher/LegacyComponentDispatcher.php:71 7

    Joomla\CMS\Dispatcher\LegacyComponentDispatcher::Joomla\CMS\Dispatcher\{closure}() JROOT/libraries/src/Dispatcher/LegacyComponentDispatcher.php:73 8

    Joomla\CMS\Dispatcher\LegacyComponentDispatcher->dispatch() JROOT/libraries/src/Component/ComponentHelper.php:355 9

    Joomla\CMS\Component\ComponentHelper::renderComponent() JROOT/libraries/src/Application/SiteApplication.php:208 10

    Joomla\CMS\Application\SiteApplication->dispatch() JROOT/libraries/src/Application/SiteApplication.php:249 11

    Joomla\CMS\Application\SiteApplication->doExecute() JROOT/libraries/src/Application/CMSApplication.php:294 12

    Joomla\CMS\Application\CMSApplication->execute() JROOT/includes/app.php:61 13

    require_once()


    Und ja ich habe die Seite in einer Subdomaine geupdatet und ja ich habe ein Backup.


    Es ist alles vorhanden, die Produkte, die Kategorieren und die Urls stimmen auch.

    Hat jemand eine Idee was da falsch sein könnte.


    Joomla ist 4.2.9, PHP ist7.4.33


    Interessanterweise habe ich mal so aus Neugierde auf PHP 8.0 umgestellt und dann hat sich die Fehlermeldung verändert:


    Cannot access protected property Joomla\CMS\Menu\MenuItem::$params

    /home/sites/4b/b/b379e61b2e/public_html/joomlaupdate/components/com_virtuemart/views/category/view.html.php:90

    Call stack
    # Function Location
    1 () JROOT/components/com_virtuemart/views/category/view.html.php:90
    2 VirtuemartViewCategory->display() JROOT/components/com_virtuemart/controllers/category.php:61
    3 VirtueMartControllerCategory->display() JROOT/libraries/src/MVC/Controller/BaseController.php:672
    4 Joomla\CMS\MVC\Controller\BaseController->execute() JROOT/components/com_virtuemart/virtuemart.php:128
    5 require_once() JROOT/libraries/src/Dispatcher/LegacyComponentDispatcher.php:71
    6 Joomla\CMS\Dispatcher\LegacyComponentDispatcher::Joomla\CMS\Dispatcher\{closure}() JROOT/libraries/src/Dispatcher/LegacyComponentDispatcher.php:73
    7 Joomla\CMS\Dispatcher\LegacyComponentDispatcher->dispatch() JROOT/libraries/src/Component/ComponentHelper.php:355
    8 Joomla\CMS\Component\ComponentHelper::renderComponent() JROOT/libraries/src/Application/SiteApplication.php:208
    9 Joomla\CMS\Application\SiteApplication->dispatch() JROOT/libraries/src/Application/SiteApplication.php:249
    10 Joomla\CMS\Application\SiteApplication->doExecute() JROOT/libraries/src/Application/CMSApplication.php:294
    11 Joomla\CMS\Application\CMSApplication->execute() JROOT/includes/app.php:61
    12 require_once() JROOT/index.php:32


    An was liegt das?


    Wenn ihr sonst noch was wissen müsstet, lasst es mich wissen.

    Vielen Dank und Gruss

    Claudia


    Vielen Dank und viele Grüsse

  • Update Virtuemart auf 4.012

    Ich habe installiert 4.0.4 (wobei ich nicht weiß, ob das die aktuellste ist). Aber bei der halte ich den 2. Fehler für ausgeschlossen.


    Bei dir steht da wahrscheinlich in Zeile 90:

    Code
    $menuParams = $menu->params;

    oder so was ähnliches.


    Es muss aber sein

    Code
    $menuParams = $menu->getParams();

    Ich würde also erst mal updaten auf aktuellste Version.


    EDIT: Ah, du hast dich nur vertippt. Deine Version ist 4.0.12, also eh aktueller als meine.

  • Nachdem ich mir jetzt die 4.0.12 angesehen habe (com_virtuemart.4.0.12.10777):


    Für den Moment kann ich dir nur den Tipp geben die Einstellung "VirtueMart 404 Fehlerbehandlung aktivieren" zu aktivieren (siehe Bild unten), dann sollte da nicht so ein Totalabbruch (Fatal Error) passieren, den leider VM etwas "derbe" drinnen hat. Mit der Einstellung sollte die Seite dann wenigstens irgendwohin umleiten.


    Jedenfalls findet VM keine Kategorie, die zum aufgerufenen Menüeintrag passt. Vielleicht deine Menüs durchsehen, ob Kategorie korrekt gewählt ist, Kategorien auch existieren etc. pp.?


    Der Rest geht leider unter im unsäglichen VM-Spaghetti-Code, um aus der Ferne beurteilen zu können, was dein Problem ist ;)



    EDIT: Und in meinem Backend wird mir als Update 4.0.14 angeboten. Auf der Downloadseite aber 4.0.12. VM ist hier einfach extrem verwirrend ;)

  • Hallo miteinander

    Ich bin nun einen rechten Schritt weitergekommen. Ich habe die ganze Geschichte nochmals zurückgesetzt und nochmals gemacht, aber ich habe erst auf Virtuemart 4.04 ein Update gemacht, um zu schauen, ob ich ev. zu schnell vorgegangen bin, genau dasselbe Problem.



    Aber der Hinweis war korrekt es lag an den Übersetzungen, also bzw. das Teile auf deutsch gekennzeichnet waren und der Shop als Englisch eingestellt war. Das war dann schnell gelöst.


    Jetzt ist noch folgendes:


    Kategorie Backwaren wird zwar weitergeleitet aber es erscheinen keine Produkte, obwohl vorhanden und zu Backwaren verbunden. Da habe ich den Fehler noch nicht gefunden. Bei allen anderen Kategorien funktionierts.


    Teils sind die Übersetzungen nicht vorhanden, obwohl ich die Deutschen Übersetzungserweiterungen inkl. aoi und Plugins eingespielt habe, habt Ihr da ev. auch noch eine Idee?


    Und der schlimmste Fehler, wenn ich auf ein Produkte klicke bzw. auf Add to cart dann rötelt es einfach, aber es geht nicht weiter.


    Ich habe noch nicht auf PHP 8 umgestellt, könnte es daran liegen?


    Vielen Dank für Eure Unterstützung.


    Viele Grüsse


    Claudia

  • Und der schlimmste Fehler, wenn ich auf ein Produkte klicke bzw. auf Add to cart dann rötelt es einfach, aber es geht nicht weiter.

    Die JSON-Fehlerausgabe dazu:

    Code
    XHRPOSThttps://joomlaupdate.schachehof-lunkhofe.ch/index.php?option=com_virtuemart&nosef=1&view=cart&task=addJS&format=json&lang=en&Itemid=464
    [HTTP/2 500 Internal Server Error 305ms]
    
        
    error    true
    code    0
    message    "Class 'JRequest' not found"
    trace    "#0 /home/sites/4b/b/b379e61b2e/public_html/joomlaupdate/libraries/src/Plugin/CMSPlugin.php(279): plgVmCustomStockable->plgVmOnAddToCart(Object(VirtueMartCart))\n#1 /home/sites/4b/b/b379e61b2e/public_html/joomlaupdate/libraries/vendor/joomla/event/src/Dispatcher.php(486): Joomla\\CMS\\Plugin\\CMSPlugin->Joomla\\CMS\\Plugin\\{closure}(Object(Joomla\\Event\\Event))\n#2 /home/sites/4b/b/b379e61b2e/public_html/joomlaupdate/libraries/src/Application/EventAware.php(107): Joomla\\Event\\Dispatcher->dispatch('plgVm…rc/Application/SiteApplication.php(249): Joomla\\CMS\\Application\\SiteApplication->dispatch()\n#13 /home/sites/4b/b/b379e61b2e/public_html/joomlaupdate/libraries/src/Application/CMSApplication.php(294): Joomla\\CMS\\Application\\SiteApplication->doExecute()\n#14 /home/sites/4b/b/b379e61b2e/public_html/joomlaupdate/includes/app.php(61): Joomla\\CMS\\Application\\CMSApplication->execute()\n#15 /home/sites/4b/b/b379e61b2e/public_html/joomlaupdate/index.php(32): require_once('/home/sites/4b/...')\n#16 {main}"

    Da lese ich raus, dass ein Plugin wohl die veraltete Klasse "JRequest" versucht zu nutzen.


    Irgendwas mit Plugin "plgVmCustomStockable" in "function plgVmOnAddToCart ()". Bei mir ist das nicht installiert, weshalb ich dir keinen Fix anbieten kann oder wüsste, wozu eigentlich da.


    Vielleicht benötigst du es gar nicht und kannst es deaktivieren bzw. deinstallieren? Vielleicht bietet dir ja auch Erweiterungen > Aktualisieren ein Update an.


    Leider ist das mit den Updates der VM-Plugins so eine Sache bei VM. So einfach mit AIO geht das nicht immer. Weiß nur noch, dass ich bestimmt 2 Stunden benötigt habe, alle Plugins auf Joomla-4-Stand zu bringen. Dabei aber auch viele gefunden, die eigentlich gar nicht nötig sind.

  • Updates des VirtueMart AIO Installers laufen in Normalfall sehr einfach durch.

    Blödsinn in diesem Zusammenhang. VM weißt selber darauf hin, dass ggf. Handarbeit nötig ist. Außerdem sind gar nicht alle Plugins enthalten, die da ggf. aus früheren Versionen noch rumdümpeln und aktualisiert werden müssen. Wenn man komplett neu installiert, gebe ich dir recht. Hier geht es um eine Seite, die zuvor Joomla 3 inkl. VM war, mit all dem Müll (oder vielleicht doch keiner?) aus früheren Versionen.

  • Blödsinn?

    Dann gib Du hier weiter die guten Ratschläge.

    Schieb die Fehler schön auf den VM-Spaghetti-Code und empfehle die VM-Fehlerbehandlung einzuschalten, um Fatals zu umgehen.


    Blödsinn, ja nee, is klar

    Stefan

  • Bitte seid nett zueinander, sein Hinweis wegen dem Plugin war absolut richtig, ich habs deaktiviert und jetzt geht's.


    Und vielen Dank Euch allen, die Ihr mir helft. die Probleme zu lösen!


    Viele Grüsse Claudia


    PS mir wird immer wieder gesagt, ich soll mich auf ein Forum konzentrieren aber eben, manchmal hilfts auf beiden zu sein, ich werde dies nun auch im virtuemart forum posten.

  • PS mir wird immer wieder gesagt, ich soll mich auf ein Forum konzentrieren aber eben, manchmal hilfts auf beiden zu sein, ich werde dies nun auch im virtuemart forum posten.

    Das darfst/sollst du auch.


    Aber man sollte Crosspostings der Fairness halber immer Erwähnen, damit die Supporter wissen, was schon versucht wurde. :)