Fehlermeldung wenn man ein Produkt aufrufen/ändern möchte

  • Hallo!


    Hat jemand eine Idee woran es liegen könnte das, sobald man ein Produkt aufrufen möchte folgende Fehlermeldung auftaucht?

    Es ist ein Fehler aufgetreten!

    0 Missing format specifier at end of string


    Call stack
    # Function Location
    1 () JROOT/administrator/components/com_virtuemart/helpers/vmtext.php:154
    2 sprintf() JROOT/administrator/components/com_virtuemart/helpers/vmtext.php:154
    3 vmText::sprintf() JROOT/administrator/components/com_virtuemart/views/product/tmpl/product_edit_customer.php:72
    4 include() JROOT/libraries/src/MVC/View/HtmlView.php:701
    5 Joomla\CMS\MVC\View\HtmlView->loadTemplate() JROOT/administrator/components/com_virtuemart/views/product/tmpl/product_edit_status.php:126
    6 include() JROOT/libraries/src/MVC/View/HtmlView.php:701
    7 Joomla\CMS\MVC\View\HtmlView->loadTemplate() JROOT/administrator/components/com_virtuemart/helpers/adminui.php:248
    8 AdminUIHelper::buildTabs() JROOT/administrator/components/com_virtuemart/views/product/tmpl/product_edit.php:47
    9 include() JROOT/libraries/src/MVC/View/HtmlView.php:701
    10 Joomla\CMS\MVC\View\HtmlView->loadTemplate() JROOT/administrator/components/com_virtuemart/helpers/vmviewadmin.php:62
    11 VmViewAdmin->display() JROOT/administrator/components/com_virtuemart/views/product/view.html.php:568
    12 VirtuemartViewProduct->display() JROOT/administrator/components/com_virtuemart/helpers/vmcontroller.php:121
    13 VmController->display() JROOT/administrator/components/com_virtuemart/helpers/vmcontroller.php:146
    14 VmController->edit() JROOT/administrator/components/com_virtuemart/controllers/product.php:46
    15 VirtuemartControllerProduct->edit() JROOT/libraries/src/MVC/Controller/BaseController.php:702
    16 Joomla\CMS\MVC\Controller\BaseController->execute() JROOT/administrator/components/com_virtuemart/virtuemart.php:76
    17 require_once() JROOT/libraries/src/Component/ComponentHelper.php:402
    18 Joomla\CMS\Component\ComponentHelper::executeComponent() JROOT/libraries/src/Component/ComponentHelper.php:377
    19 Joomla\CMS\Component\ComponentHelper::renderComponent() JROOT/libraries/src/Application/AdministratorApplication.php:101
    20 Joomla\CMS\Application\AdministratorApplication->dispatch() JROOT/libraries/src/Application/AdministratorApplication.php:159
    21 Joomla\CMS\Application\AdministratorApplication->doExecute() JROOT/libraries/src/Application/CMSApplication.php:225
    22 Joomla\CMS\Application\CMSApplication->execute() JROOT/administrator/index.php:51


    PHP-Version 8.0.14

    Zitat
    Es ist VirtueMart 3.8.8 10472 installiert.
    Zitat
    und Joomla 3.10.4
  • Servus,


    auf die Entfernung schwer zu sagen. Seit wann tritt das auf?
    Ist es eine Neuinstallation oder eine aktualisierte Seite?

    Gab es ein PHP-Update auf PHP 8.0.x?


    Als Schnellabhilfe könnte ein Update auf VirtueMart 3.8.9.10473 (in einer Testumgebung) helfen, falls es an VM liegt, da dort viele Bugfixes, auch in Bezug auf PHP 8 vorhanden sind.

    Gibt es externe Plugins im Admin?


    Grüße

    Stefan

  • Code
    1. COM_VIRTUEMART_PRODUCT_EMAIL_SHOPPERS_SUBJECT="Mitteilung bezüglich dem Produkt %1$s"

    Da stand vorher %1s, da fehlt für php8 das $. Das muß jetzt überall in allen Sprachdateien ergänzt werden. Also am besten die Zahl und das $.

    An sich "wirds da bald ein Update geben". Aber wer nicht ein paar Wochen warten mag und es einfach selber eben macht (is ja an sich simple und konzentriert auch keine Stund), tja, der mag uns gerne daran teilhaben lassen. :-) So hat auch STefan mehr Zeit andere Fragen zu beantworten, als z.B. an der deutschen Sprachdatei zu hängen.

  • Hallo zusammen,


    ich würde das Thema gerne noch einmal hervorkramen. Besagtes Problem beim Aufruf von Produktdetails im Backend habe ich seit der Umstellung auf PHP 8.0. Leider bin ich gezwungen auf PHP 8.0 zu wechseln, da mein Provider PHP 7.4 nicht mehr zur Auswahl anbietet.


    Aktuell nutze ich noch Joomla 3 mit VM 3.8.8.


    Ich habe nun die Virtuemart Language-Files durchforstet und die oben genannten Ersetzungen durchgeführt (Suchen und ersetzen mit dem Windows Editor). Leider bekomme ich bei den Produktdetails nach wie vor den Fehler.


    Ich habe die Sprachdateien "de-DE.com_virtuemart.................", "de-DE.mod_virtuemart_..................." sowie die "de-DE.override.ini" durchsucht. Gleiches mit den vorhandenen en und it Dateien. Oder müssen sämtliche Sprachdateien, nicht nur die VM-spezifischen durchsucht und ersetzt werden?


    Oder liegt der Fehler hier eventuell woanders?


    Ich freu mich auf Rückmeldung.


    Grüße Björn

  • (Suchen und ersetzen mit dem Windows Editor)

    Eventuell liegt da der Fehler. Möglicherweise benutzt der Windows Editor ein falsches Encoding. Es sollte auf UTF-8 (ohne BOM) eingestellt sein.
    Bei mir funktionieren die beiden auf virtuemart.net herunterladbaren deutschen Sprachdateien auch in meiner php8 Testumgebung.

    Vielleicht gibt Dir das Resultat des Joomla Sprachen Debugs weitere Hinweise darauf, was nicht oder falsch geladen wird.

  • Danke euch,


    ich probiere es mit neuen Sprachdateien bzw. mit der von Stefan genannten Erweiterung aus. Ich lasse nur grade noch ein "schnelles" Backup drüber laufen. Ich berichte in Kürze :-).


    Grüße Björn

  • Super, vielen Dank!


    Das mit den neuen Sprachdateien hat funktioniert, ich kann wieder auf die Produktdetail-Seiten im Backend zugreifen.


    Ich wünsche schöne Feiertage und einen guten Start ins neue Jahr.


    Grüße Björn

  • Leider habe ich nicht soviel Glück.

    Die Sprachdateien habe ich installiert, alle nochmals kontrolliert.

    Joomla 3.10.10

    VirtueMart 4.0.12 10777

    PHP 3.0.23



    Es ist ein Fehler aufgetreten!

    0 Missing format specifier at end of string

    Z:\...\administrator\components\com_virtuemart\helpers\vmtext.php:150

    Zeilen 140-152:

    --------------------------

    140 else

    141 {

    142 foreach($args as &$arg){

    143 //vmdebug('my sprintf $arg',$arg);

    144 $arg = self::$language->_($arg);

    145 $arg = preg_replace('/\[\[%([0-9]+):[^\]]*\]\]/', '%\1$s', $arg);

    146 }

    147

    148 }

    149 //$args[0] = preg_replace('/\[\[%([0-9]+):[^\]]*\]\]/', '%\1$s', $args[0]);

    150 return call_user_func_array('sprintf', $args);

    151 }

    152 return '';

    ------------------------

    Wenn ich die Zeile 150 auskomentiere ist der Fehler weg.


    Call stack

    # Function Location

    1 () JROOT\administrator\components\com_virtuemart\helpers\vmtext.php:150

    2 sprintf() JROOT\administrator\components\com_virtuemart\helpers\vmtext.php:150

    3 vmText::sprintf() JROOT\administrator\components\com_virtuemart\views\product\tmpl\product_edit_customer.php:72

    4 include() JROOT\libraries\src\MVC\View\HtmlView.php:701

    5 Joomla\CMS\MVC\View\HtmlView->loadTemplate() JROOT\administrator\components\com_virtuemart\views\product\tmpl\product_edit_status.php:127

    6 include() JROOT\libraries\src\MVC\View\HtmlView.php:701

    7 Joomla\CMS\MVC\View\HtmlView->loadTemplate() JROOT\administrator\components\com_virtuemart\helpers\adminui.php:244

    8 AdminUIHelper::buildTabs() JROOT\administrator\components\com_virtuemart\views\product\tmpl\product_edit.php:46

    9 include() JROOT\libraries\src\MVC\View\HtmlView.php:701

    10 Joomla\CMS\MVC\View\HtmlView->loadTemplate() JROOT\administrator\components\com_virtuemart\helpers\vmviewadmin.php:75

    11 VmViewAdmin->display() JROOT\administrator\components\com_virtuemart\views\product\view.html.php:589

    12 VirtuemartViewProduct->display() JROOT\administrator\components\com_virtuemart\helpers\vmcontroller.php:121

    13 VmController->display() JROOT\administrator\components\com_virtuemart\helpers\vmcontroller.php:146

    14 VmController->edit() JROOT\administrator\components\com_virtuemart\controllers\product.php:46

    15 VirtuemartControllerProduct->edit() JROOT\libraries\src\MVC\Controller\BaseController.php:702

    16 Joomla\CMS\MVC\Controller\BaseController->execute() JROOT\administrator\components\com_virtuemart\virtuemart.php:75

    17 require_once() JROOT\libraries\src\Component\ComponentHelper.php:402

    18 Joomla\CMS\Component\ComponentHelper::executeComponent() JROOT\libraries\src\Component\ComponentHelper.php:377

    19 Joomla\CMS\Component\ComponentHelper::renderComponent() JROOT\libraries\src\Application\AdministratorApplication.php:101

    20 Joomla\CMS\Application\AdministratorApplication->dispatch() JROOT\libraries\src\Application\AdministratorApplication.php:159

    21 Joomla\CMS\Application\AdministratorApplication->doExecute() JROOT\libraries\src\Application\CMSApplication.php:225

    22 Joomla\CMS\Application\CMSApplication->execute() JROOT\administrator\index.php:51


    Hat jemand eine Idee?
    Danke!

  • Leider habe ich nicht soviel Glück.

    Die Sprachdateien habe ich installiert, alle nochmals kontrolliert.

    Joomla 3.10.10

    VirtueMart 4.0.12 10777

    PHP 3.0.23

    Hallo,

    nutzt Du wiklich noch PHP 3.0 oder hast Du dich nur verschrieben?


    Wie deine "Call stack" in Zeile 1 und 2 zeigt, könnte es mit deiner genutzten PHP Version zu tun haben.

  • Ist es eventuell ein Templateproblem? (alte Overriedes)

    Warum nicht auf Joomla 3.10.11 Updaten? Die Version 3.10.10 ist ja auch schon ein gutes halbes Jahr alt.


    Hast Du auch die aktuellen Sprachdateien mit installiert?


    Welche Version hattest Du vorher, in welcher der Fehler nicht auftrat?

  • Sprachdateien wie oben verlinkt.
    Ich habe alle .ini auf die Var. geprüft, auch die Overrides.

    Vorher war - bin ich produktiv noch - auf VM 3 letzte Version.
    Template ist Helix Ultimate, angeblich PHP 8 und Joomla 4 bereit.

    Ich habe der Reihe nach alle vorhandenen Plugins und alten Anpassungen abgeschaltet,
    hatte auf diesen Fehler keinen Einfluss.
    Jetzt check ich noch alle Dateien auf UTF 8. Hoffe, werde dieses Jahr noch fertig.
    ;)

  • Es gibt zwei Sprach-Ordner für Site und zwei für Admin in Joomla.

    Site:

    /language/

    /components/com_virtuemart/language/


    Ich vergesse immer, welche Reihenfolge Joomla wählt.


    Gibt es evtl. den Ordner

    /components/com_virtuemart/language/de-DE?


    Den Ordner de-DE dort einmal löschen oder umbenennen. Vielleicht werden da alte Dateien aus dem Komponenten-Ordner geladen.


    Den Sprach-Debug in der Joomla-Konfiguration einschalten kann auch helfen.


    Grüße

    Stefan

  • Danke für die Ratschläge.
    Die Ochsentour hat es gebracht:

    Alle Sprachdateien gelöscht und einzeln hinzugefügt.
    In der administrator/language/overrides/de-DE.override.ini
    stand an einer vollkommen sinnfreien Stelle ein einsames solo "%".


    Da waren meine vorigen Suchläufe nach %s usw. erfolglos.
    Dann fängt das Jahr ja doch noch gut an,
    :)
    Guten Rutsch !

  • Hallo,

    ich habe den Ordner administrator/language/de-DE umbenannt

    Damit waren dann die 0-er Fehlermeldungen weg.


    Lasse den Shop jetzt übers Wochende so laufen

    Konfiguration:

    php 8.0.28

    VM 4.0.12 10777

    Joomla 3.10.11


    Jetzt ist das Backend zwar in Englisch aber Virtuemart mit den jooglies Spachdateien 4.0.14.0 läuft auf deutsch.

    Hoffe das war's mit dem Update (ich weiß: nach dem Update ist vor dem Update) joomla 4 steht ja noch an.


    Grüße und schönes WE

    Helmut

  • Hallo,

    folgende Fehlermeldung kommt jetzt noch wenn ich ein Produkt bearbeite:

    Warning

    Flagge für die Sprache fehlt.

    Gehen Sie zu Erweiterungen > Sprachen > Inhalt, und wählen den Parameter Bildpräfix für diese Sprache.


    finde an der Stelle nichts zum Einstellen

    Habt Ihr da eine Idee?


    Güße,

    Helmut