Frontend startet nicht (Wrong format... missing 0 in engine/Library/Zend/Locale/Format.php)

Hallo allerseits,

hier mein allerersten Post im Forum Smile

Ich habe heute zum erstenmal ein 5.4.1 Shopware auf meinem Server als Evaluationssystem installiert. Alles lief im Backend reibungslos. Einzige Meldung, der aus der Reihe fiel ist:

IonCube: missing or unsupported version installed (only needed for encrypted third-party plugins)

Ich habe aber keine third-party Plugins installiert, sodass das Fehlen von IonCube keine Rolle spielen sollte (soweit ich das verstanden habe).

Die deutsche Demo-Shop habe ich mit installiert und die Theme Responsive ist aktiviert.

Jetzt wenn ich den Frontend aufrufe, komme ich nicht weiter. Ich bekomme immer die Fehlermeldung:

Wrong format… missing 0 in engine/Library/Zend/Locale/Format.php on line 338

Stacktrace und Request, die ich in der Fehler-Email vom Server bekomme, habe ich unten reinkopiert.

Ich habe den Forum durchgesucht, bin aber nicht fündig geworden. Kann jemand mich hiermit helfen?

Gruß,

Chip

Stacktrace

Wrong format... missing 0 in engine/Library/Zend/Locale/Format.php on line 338Zend_Locale_Exception: Wrong format... missing 0 in /home/sites/site3/web/mtShopware/engine/Library/Zend/Locale/Format.php:338
Stack trace:
#0 /home/sites/site3/web/mtShopware/engine/Library/Zend/Currency.php(189): Zend_Locale_Format::toNumber('0.0', Array)
#1 /home/sites/site3/web/mtShopware/engine/Library/Enlight/Template/Plugins/modifier.currency.php(62): Zend_Currency->toCurrency(0, Array)
#2 /home/sites/site3/web/mtShopware/var/cache/production_201803081536/templates/frontend_Bare_de_DE_1_secure/61/67/7e/61677ed0495867e0c42ae00f10b147eb463a2296.snippet.info.tpl.php(157): smarty_modifier_currency(0)
#3 /home/sites/site3/web/mtShopware/engine/Library/Smarty/sysplugins/smarty_internal_templatebase.php(180): content_5abe960ac1df56_62197521(Object(Enlight_Template_Default))
#4 /home/sites/site3/web/mtShopware/engine/Library/Enlight/View/Default.php(300): Smarty_Internal_TemplateBase->fetch()
#5 /home/sites/site3/web/mtShopware/engine/Library/Enlight/Controller/Plugins/ViewRenderer/Bootstrap.php(216): Enlight_View_Default->render(Object(Enlight_Template_Default))
#6 /home/sites/site3/web/mtShopware/engine/Library/Enlight/Controller/Plugins/ViewRenderer/Bootstrap.php(242): Enlight_Controller_Plugins_ViewRenderer_Bootstrap->renderTemplate(Object(Enlight_Template_Default))
#7 /home/sites/site3/web/mtShopware/engine/Library/Enlight/Controller/Plugins/ViewRenderer/Bootstrap.php(136): Enlight_Controller_Plugins_ViewRenderer_Bootstrap->render()
#8 /home/sites/site3/web/mtShopware/engine/Library/Enlight/Event/Handler/Default.php(91): Enlight_Controller_Plugins_ViewRenderer_Bootstrap->onPostDispatch(Object(Enlight_Controller_ActionEventArgs))
#9 /home/sites/site3/web/mtShopware/engine/Library/Enlight/Event/EventManager.php(220): Enlight_Event_Handler_Default->execute(Object(Enlight_Controller_ActionEventArgs))
#10 /home/sites/site3/web/mtShopware/engine/Library/Enlight/Controller/Action.php(235): Enlight_Event_EventManager->notify('Enlight_Control...', Object(Enlight_Controller_ActionEventArgs))
#11 /home/sites/site3/web/mtShopware/engine/Library/Enlight/Controller/Dispatcher/Default.php(549): Enlight_Controller_Action->dispatch('infoAction')
#12 /home/sites/site3/web/mtShopware/engine/Library/Enlight/Template/Plugins/function.action.php(100): Enlight_Controller_Dispatcher_Default->dispatch(Object(Enlight_Controller_Request_RequestHttp), Object(Enlight_Controller_Response_ResponseHttp))
#13 /home/sites/site3/web/mtShopware/var/cache/production_201803081536/templates/frontend_Bare_de_DE_1_secure/ca/c0/35/cac0354249516e114affaee75d363148beae4ef8.snippet.index.tpl.php(953): smarty_function_action(Array, Object(Enlight_Template_Default))
#14 /home/sites/site3/web/mtShopware/var/cache/production_201803081536/templates/frontend_Bare_de_DE_1_secure/ca/c0/35/cac0354249516e114affaee75d363148beae4ef8.snippet.index.tpl.php(287): content_5abe9609b14a93_70900642(Object(Enlight_Template_Default))
#15 /home/sites/site3/web/mtShopware/engine/Library/Smarty/sysplugins/smarty_internal_templatebase.php(180): content_5abe960a5f4865_35118201(Object(Enlight_Template_Default))
#16 /home/sites/site3/web/mtShopware/engine/Library/Enlight/View/Default.php(300): Smarty_Internal_TemplateBase->fetch()
#17 /home/sites/site3/web/mtShopware/engine/Library/Enlight/Controller/Plugins/ViewRenderer/Bootstrap.php(216): Enlight_View_Default->render(Object(Enlight_Template_Default))
#18 /home/sites/site3/web/mtShopware/engine/Library/Enlight/Controller/Plugins/ViewRenderer/Bootstrap.php(242): Enlight_Controller_Plugins_ViewRenderer_Bootstrap->renderTemplate(Object(Enlight_Template_Default))
#19 /home/sites/site3/web/mtShopware/engine/Library/Enlight/Controller/Plugins/ViewRenderer/Bootstrap.php(136): Enlight_Controller_Plugins_ViewRenderer_Bootstrap->render()
#20 /home/sites/site3/web/mtShopware/engine/Library/Enlight/Event/Handler/Default.php(91): Enlight_Controller_Plugins_ViewRenderer_Bootstrap->onPostDispatch(Object(Enlight_Controller_ActionEventArgs))
#21 /home/sites/site3/web/mtShopware/engine/Library/Enlight/Event/EventManager.php(220): Enlight_Event_Handler_Default->execute(Object(Enlight_Controller_ActionEventArgs))
#22 /home/sites/site3/web/mtShopware/engine/Library/Enlight/Controller/Action.php(235): Enlight_Event_EventManager->notify('Enlight_Control...', Object(Enlight_Controller_ActionEventArgs))
#23 /home/sites/site3/web/mtShopware/engine/Library/Enlight/Controller/Dispatcher/Default.php(549): Enlight_Controller_Action->dispatch('indexAction')
#24 /home/sites/site3/web/mtShopware/engine/Library/Enlight/Controller/Front.php(222): Enlight_Controller_Dispatcher_Default->dispatch(Object(Enlight_Controller_Request_RequestHttp), Object(Enlight_Controller_Response_ResponseHttp))
#25 /home/sites/site3/web/mtShopware/engine/Shopware/Kernel.php(215): Enlight_Controller_Front->dispatch()
#26 /home/sites/site3/web/mtShopware/vendor/symfony/http-kernel/HttpCache/HttpCache.php(486): Shopware\Kernel->handle(Object(Symfony\Component\HttpFoundation\Request), 1, true)
#27 /home/sites/site3/web/mtShopware/engine/Shopware/Components/HttpCache/AppCache.php(268): Symfony\Component\HttpKernel\HttpCache\HttpCache->forward(Object(Symfony\Component\HttpFoundation\Request), true, NULL)
#28 /home/sites/site3/web/mtShopware/vendor/symfony/http-kernel/HttpCache/HttpCache.php(443): Shopware\Components\HttpCache\AppCache->forward(Object(Symfony\Component\HttpFoundation\Request), true)
#29 /home/sites/site3/web/mtShopware/vendor/symfony/http-kernel/HttpCache/HttpCache.php(339): Symfony\Component\HttpKernel\HttpCache\HttpCache->fetch(Object(Symfony\Component\HttpFoundation\Request), true)
#30 /home/sites/site3/web/mtShopware/engine/Shopware/Components/HttpCache/AppCache.php(189): Symfony\Component\HttpKernel\HttpCache\HttpCache->lookup(Object(Symfony\Component\HttpFoundation\Request), true)
#31 /home/sites/site3/web/mtShopware/vendor/symfony/http-kernel/HttpCache/HttpCache.php(205): Shopware\Components\HttpCache\AppCache->lookup(Object(Symfony\Component\HttpFoundation\Request), true)
#32 /home/sites/site3/web/mtShopware/engine/Shopware/Components/HttpCache/AppCache.php(116): Symfony\Component\HttpKernel\HttpCache\HttpCache->handle(Object(Symfony\Component\HttpFoundation\Request), 1, true)
#33 /home/sites/site3/web/mtShopware/shopware.php(118): Shopware\Components\HttpCache\AppCache->handle(Object(Symfony\Component\HttpFoundation\Request))
#34 {main}

Request:

{
    "uri": "/mtShopware/frontend/_public/src/img/logos/logo--tablet.png",
    "method": "GET",
    "query": {
        "module": "frontend",
        "controller": "_public",
        "action": "src",
        "img": "logos",
        "logo--tablet.png": ""
    },
    "post": []
}

 

Der Fehler tritt bei der Formatierung von Währungen auf.

Im Template steht irgendwo |currency. Dieser Smarty Modifier versucht die übergebene Zahl in eine Währung zu „übertragen“.

Die Methode die den Fehler verursacht, versucht die Zahl anhand von lokalen Währungseinstellungen zu formatieren.

##0.# -> 12345.12345 -> 12345.12345
##0.00 -> 12345.12345 -> 12345.12
##,##0.00 -> 12345.12345 -> 12,345.12

Das übergebene Format enthält keine 0, daher der Fehler

if (iconv_strpos($format, '0') === false) {
  self::_setEncoding($oenc);
  throw new Zend_Locale_Exception('Wrong format... missing 0');
}

Könnte an den Zeit und Währungseinstellungen des Servers liegen.

Vielleicht hilft dieser Thread weiter:

 

Ansonsten einfach probieren eine Zahl zu formatieren:

(PHP Datei im Shopware Root erstellen)

toCurrency(1000);

 

2 „Gefällt mir“

Das Problem war wie im oben erwähnten Thread. Die iconv-Installation am Server war wohl nicht vollständig. Ich habe auch ein kleiner Testskript gemacht (s.u), der iconv getestet hat, ohne Shopware und den Zend-Framework. Ging auch nicht.

Das habe ich meinen Provider gemeldet, und sie haben das Problem schnell gelöst.

Danke für die Antwort und Link auf den alten Post.

Chip

 

Datei: iconv_test.php

 

  PHP Test

 
 
   <?php
      echo ’

testing iconv_strpos

';
      $format = „#,##0.00 ¤“;
      echo ’

format is '. $format . ’

';
      echo ’

now calling iconv_strpos($format,‚0‘)

';
      $pos = iconv_strpos($format,‚0‘);
      echo ’

pos is

';
      if (iconv_strpos($format,‚0‘) === false ) {
        echo ’

should return 4, but iconv_strpos returns false

';
      }

      ?>