Exception log

Hallo :slight_smile:

Kann mir jemand helfen, wie ich einen Eintrag im “exception log” lesen muss?

Mein Problem ist, dass ich anhand der Fehlermeldung nicht nachvollziehen kann wo genau im Quellcode der Fehler aufgetreten ist und was genau der Fehler beinhaltet…?

Bsp.
OXID CE Version 4.6 auf Version 4.7 geupdatet, es wurde ein angepasstes Azure Template für die Version 4.6 in die neue 4.7 Version übernommen.

Ein Eintrag in der exception log sieht wie folgt aus:

 
Faulty component --> 
---------------------------------------------
oxSystemComponentException-oxException (time: 2013-08-06 10:48:08): [0]: Function 'getCompareItemsCnt' does not exist or is not accessible! (Start)
 
Stack Trace: 
#0 C:\HTDOCS\shop\htdocs	mp\smarty\b2cdad4e1016bb0734810396edf4056f^%%7E^7EF^7EFB79AD%%servicebox.tpl.php(16): oxSuperCfg->__call('getCompareItems...', Array)
#1 C:\HTDOCS\shop\htdocs	mp\smarty\b2cdad4e1016bb0734810396edf4056f^%%7E^7EF^7EFB79AD%%servicebox.tpl.php(16): Start->getCompareItemsCnt()
#2 C:\HTDOCS\shop\htdocs\core\smarty\Smarty.class.php(1263): include('C:\HTDOCS\shop....')
#3 C:\HTDOCS\shop\htdocs\core\smarty\plugins\function.oxid_include_dynamic.php(68): Smarty->fetch('widget/header/s...')
#4 C:\HTDOCS\shop\htdocs	mp\smarty\b2cdad4e1016bb0734810396edf4056f^%%93^93D^93D6031B%%header.tpl.php(21): smarty_function_oxid_include_dynamic(Array, Object(Smarty))
#5 C:\HTDOCS\shop\htdocs\core\smarty\Smarty.class.php(1869): include('C:\HTDOCS\shop....')
#6 C:\HTDOCS\shop\htdocs	mp\smarty\b2cdad4e1016bb0734810396edf4056f^%%36^366^366ECF91%%page.tpl.php(33): Smarty->_smarty_include(Array)
#7 C:\HTDOCS\shop\htdocs\core\smarty\Smarty.class.php(1869): include('C:\HTDOCS\shop....')
#8 C:\HTDOCS\shop\htdocs	mp\smarty\b2cdad4e1016bb0734810396edf4056f^%%40^405^405277AF%%start.tpl.php(70): Smarty->_smarty_include(Array)
#9 C:\HTDOCS\shop\htdocs\core\smarty\Smarty.class.php(1263): include('C:\HTDOCS\shop....')
#10 C:\HTDOCS\shop\htdocs\core\oxshopcontrol.php(509): Smarty->fetch('page/shop/start...', 'ox|0|0|0|0')
#11 C:\HTDOCS\shop\htdocs\core\oxshopcontrol.php(377): oxShopControl->_render(Object(Start))
#12 C:\HTDOCS\shop\htdocs\core\oxshopcontrol.php(137): oxShopControl->_process('start', NULL, NULL, NULL)
#13 C:\HTDOCS\shop\htdocs\core\oxid.php(40): oxShopControl->start()
#14 C:\HTDOCS\shop\htdocs\index.php(28): Oxid::run()
#15 {main}

Die Liste der Fehlermeldungen führt mich in das tmp und core Verzeichnis. Aber dort nehme ich an wird nicht die Wurzel des Fehlers liegen…
Suche ich nach der Datei “servicebox.tpl” werde ich im Verzeichnis

C:\HTDOCS\shop\htdocs\application\views\angepasstes-azure-template	pl\widget\header

fündig.
In dieser Datei befindet sich in Zeile 9 folgender Code:

[{math equation="a+b+c" a=$oView->getCompareItemsCnt() b=$noticeListCount c=$wishListCount assign=notificationsCounter}]

Dort findet meiner Meinung der bemängelte Aufruf der Methode “getCompareItemsCnt()” statt, aber was ist zu tun?

Hoffe ich konnte mein Problem umschreiben und würde mich über Hinweise/Anregungen oder Lösungsvorschläge freuen! :slight_smile:

Liebe Grüße
indianer3c

Hallo,

Du liegst da wahrscheinlich gar nicht so falsch. Die FM sagt, dass eine im Template aufgerufene Klasse an dieser Stelle nicht geladen werden kann. Stichwort “lazy loading” - ggf. musst Du hier mit einem eigenen getter ran.

Gruß

[QUOTE=Marco Steinhaeuser;129055]… Stichwort “lazy loading” - ggf. musst Du hier mit einem eigenen getter ran.
Gruß[/QUOTE]

Auch wenn der Beitrag schon etwas älter ist:
Ich hatte eben exakt das gleiche Problem und das bessere Stichwort wäre hier wohl, das in 4.7 Widgets eingeführt wurden und die Funktion getCompareItemsCnt() aus oxUBase in das oxwServiceMenu Widget gewandert ist. Ein Blick in layout/header.tpl zeigt wie es geht.

Grüße
Mirko