Virtuemart Problem nach Umstellung auf PHP8: "0 Unsupported operand types: string + int"

  • Hallo allerseits,


    ich habe ein Problem und bitte hiermit um Hilfe. Seit der Umstellung auf PHP8 kann ich keine Produktseiten mehr aufrufen. Ich erhalten die Fehlermeldung: "Unsupported operand types: string + int

    /home/www/joomla2016/administrator/components/com_virtuemart/helpers/mediahandler.php:1314".


    Call stack
    # Function Location
    1 () JROOT/administrator/components/com_virtuemart/helpers/mediahandler.php:1314
    2 VmMediaHandler->displayFileHandler() JROOT/administrator/components/com_virtuemart/helpers/mediahandler.php:1106
    3 VmMediaHandler->displayFilesHandler() JROOT/administrator/components/com_virtuemart/views/product/tmpl/product_edit_images.php:29
    4 include() JROOT/libraries/src/MVC/View/HtmlView.php:701
    5 Joomla\CMS\MVC\View\HtmlView->loadTemplate() JROOT/administrator/components/com_virtuemart/helpers/adminui.php:244
    6 AdminUIHelper::buildTabs() JROOT/administrator/components/com_virtuemart/views/product/tmpl/product_edit.php:46
    7 include() JROOT/libraries/src/MVC/View/HtmlView.php:701
    8 Joomla\CMS\MVC\View\HtmlView->loadTemplate() JROOT/administrator/components/com_virtuemart/helpers/vmviewadmin.php:75
    9 VmViewAdmin->display() JROOT/administrator/components/com_virtuemart/views/product/view.html.php:587
    10 VirtuemartViewProduct->display() JROOT/administrator/components/com_virtuemart/helpers/vmcontroller.php:120
    11 VmController->display() JROOT/administrator/components/com_virtuemart/helpers/vmcontroller.php:145
    12 VmController->edit() JROOT/administrator/components/com_virtuemart/controllers/product.php:46
    13 VirtuemartControllerProduct->edit() JROOT/libraries/src/MVC/Controller/BaseController.php:702
    14 Joomla\CMS\MVC\Controller\BaseController->execute() JROOT/administrator/components/com_virtuemart/virtuemart.php:75
    15 require_once() JROOT/libraries/src/Component/ComponentHelper.php:402
    16 Joomla\CMS\Component\ComponentHelper::executeComponent() JROOT/libraries/src/Component/ComponentHelper.php:377
    17 Joomla\CMS\Component\ComponentHelper::renderComponent() JROOT/libraries/src/Application/AdministratorApplication.php:101
    18 Joomla\CMS\Application\AdministratorApplication->dispatch() JROOT/libraries/src/Application/AdministratorApplication.php:159
    19 Joomla\CMS\Application\AdministratorApplication->doExecute() JROOT/libraries/src/Application/CMSApplication.php:225
    20 Joomla\CMS\Application\CMSApplication->execute() JROOT/administrator/index.php:51


    Was kann ich tun?


    Vielen Dank für eure Hinweise!

  • Servus,


    die Antwort auf die Frage wird leichter, wenn beschrieben wird, um welche Joomla- und VM-Versionen es geht.

    Bisher ist mir dieser Fehler unter PHP 8.0 noch nicht vorgekommen, deshalb tippe ich auf eine alte VM-Version.


    Grüße

    Stefan


    PS. Wie bekomme ich schnellstens hilfreiche Antworten

  • Bisher ist mir dieser Fehler unter PHP 8.0 noch nicht vorgekommen, deshalb tippe ich auf eine alte VM-Version.

    Ich bitte um Enstschuldigung das hier kurz dazwischen krätsche, ich soll auf PHP 8 updaten, lt. webhoster und wollte wissen ob ich bedingungslos mit
    virtuemart 4.0.6 10690
    joomla 3.10.11

    einfach PHP 8 updadten kann?
    Danke und nochmals sorry

  • Hallo Joerg,


    ich aktualisiere immer auf Testinstallationen, und wenn die danach noch funktionieren, dann kenne ich die Antwort für das getestete Einzelsystem.


    Ich habe einige VM 3.8.9 auf PHP 8.0.22 laufen, aber ob das für alle gilt, kann ich nicht sagen.

    Auf 4.0.x hab ich noch keinen Shop laufen, da warte ich noch auf die 4.0.8 oder 4.0.10.


    Die Absolution zum PHP-Update kannst also nur Du selbst Dir geben.


    Grüße

    Stefan

  • Hallo Joerg,


    bei mir laufen deine genanten Versionen ohne Probleme mit PHP 8. Es kommt natürlich darauf an, welche Drittanwendungen Du noch zu laufen hast. Diese müssen ebenfalls PHP 8 kompatibel sein.

  • Hallo Stephan, Faro,


    ich habe lange nix mehr gemacht und bin schon wieder überfordert. Habe mal die Testinstallation umgestellt und siehe da,


    mysqli object is already closed


    Zurück auf 7.4 läuft die Testinstallation wieder. Morgen mache ich erstmal ne copy vom aktuellen shop mit seinen Einstellungen, installiere den in der Testumgebung und dann werde ich wieder berichten. (Ich weiß nicht wie aktuell und verspielt die Testinstallation z.Zt. ist., shop läuft ja und ganz nach dem Sprichwort ..never touch a running system ... habe ich auch nur notwendiges gemacht.


    Trotzdem Danke euch

  • Danke Faro, muss ich nur wissen wo ich das finde,

    ABER, das Problem konnte ich jetzt schon mal einkreisen.

    Die Meldung kommt wenn man sich abmeldet, die User können sich bei mir anmelden und wenn sie sich abmelden, kommt es zu der Fehlermeldung.

    Wenn ich den shop offline laufen lasse, kommt es gar nicht zum login, sondern die Fehlermeldung erscheint, ist man aber angemeldet, geht es.

    Ich suche mal wo ich die DB Einstellung finde.

  • Hallo Sebastian,


    die Zeile 1314 in mediahandler.php ist diese:
    $html .= '<td rowspan = "8" min-width = "'.(VmConfig::get('img_width',90)+10).'px" overflow="hidden">';


    Das scheint ziemlich alter Code zu sein, das sollte wohl ein inline CSS werden.

    Ich würde einfach die Schere ansetzen und die Datei ändern.

    $html .= '<td rowspan="8" overflow="hidden">';


    Damit sollte dann wenigstens der Aufruf wieder funktionieren. Ob das rowspan dort überhaupt richtig ist, weiß ich nicht, das müsste man genauer untersuchen.

    Evtl. noch eine CSS-Klasse einbauen, damit man die Breite in einer CSS-Datei bestimmen kann.

    $html .= '<td class="minBreiteTdXyz" rowspan="8" overflow="hidden">';


    Ich hab das Problem mit den Werten der VmConfig weitergeleitet, das könnte auch an anderer Stelle zu Problemen führen, wenn die für Berechnungen verwendet werden.

    Das könnte dann in der nächsten VM-Version gelöst sein.


    Grüße

    Stefan