Aheu,
ich habe heute meinen Server und den Shop neu aufgesetzt und nun gibt es neue Probleme.
Beim Versuch eine Artikel-Detailseite aufzurufen lande ich wieder auf der Startseite.
Im Error-Log steht folgendes:
Faulty component -->
---------------------------------------------
oxSystemComponentException-oxException (time: 2013-02-21 19:17:02): [0]: Function 'getNutrition' does not exist or is not accessible! (Details)
Stack Trace: #0 /var/www/vhosts/beatemdown.de/httpdocs/VeganWonderland/Shop/tmp/smarty/1db7eb234cf9253873bb02eb87f5f81b^%%F5^F50^F500F10E%%tabs.tpl.php(49): oxSuperCfg->__call('getNutrition', Array)
#1 /var/www/vhosts/beatemdown.de/httpdocs/VeganWonderland/Shop/tmp/smarty/1db7eb234cf9253873bb02eb87f5f81b^%%F5^F50^F500F10E%%tabs.tpl.php(49): Details->getNutrition()
#2 /var/www/vhosts/beatemdown.de/httpdocs/VeganWonderland/Shop/core/smarty/Smarty.class.php(1869): include('/var/www/vhosts...')
#3 /var/www/vhosts/beatemdown.de/httpdocs/VeganWonderland/Shop/tmp/smarty/1db7eb234cf9253873bb02eb87f5f81b^%%A5^A59^A595DDB8%%fullproductinfo.tpl.php(15): Smarty->_smarty_include(Array)
#4 /var/www/vhosts/beatemdown.de/httpdocs/VeganWonderland/Shop/core/smarty/Smarty.class.php(1869): include('/var/www/vhosts...')
#5 /var/www/vhosts/beatemdown.de/httpdocs/VeganWonderland/Shop/tmp/smarty/1db7eb234cf9253873bb02eb87f5f81b^%%08^08A^08ABD53A%%details.tpl.php(83): Smarty->_smarty_include(Array)
#6 /var/www/vhosts/beatemdown.de/httpdocs/VeganWonderland/Shop/core/smarty/Smarty.class.php(1263): include('/var/www/vhosts...')
#7 /var/www/vhosts/beatemdown.de/httpdocs/VeganWonderland/Shop/core/oxshopcontrol.php(528): Smarty->fetch('page/details/de...', 'ox|0|0|0|0|0dbb...')
#8 /var/www/vhosts/beatemdown.de/httpdocs/VeganWonderland/Shop/core/oxshopcontrol.php(396): oxShopControl->_render(Object(Details))
#9 /var/www/vhosts/beatemdown.de/httpdocs/VeganWonderland/Shop/core/oxshopcontrol.php(156): oxShopControl->_process('details', NULL, NULL, NULL)
#10 /var/www/vhosts/beatemdown.de/httpdocs/VeganWonderland/Shop/modules/aspaypal/aspaypal_shopcontrol.php(36): oxShopControl->start()
#11 /var/www/vhosts/beatemdown.de/httpdocs/VeganWonderland/Shop/modules/_d3modcfg/modules/controllers/d3_oxshopcontrol_modcfg_extension.php(28): aspaypal_shopcontrol->start()
#12 /var/www/vhosts/beatemdown.de/httpdocs/VeganWonderland/Shop/modules/d3/d3log/modules/controllers/d3_oxshopcontrol_errorhandler.php(35): d3_oxshopcontrol_modcfg_extension->start()
#13 /var/www/vhosts/beatemdown.de/httpdocs/VeganWonderland/Shop/modules/d3/d3clrtmp/modules/controllers/d3_oxshopcontrol_clrtmp.php(36): d3_oxshopcontrol_errorhandler->start()
#14 /var/www/vhosts/beatemdown.de/httpdocs/VeganWonderland/Shop/core/oxid.php(40): d3_oxshopcontrol_clrtmp->start()
#15 /var/www/vhosts/beatemdown.de/httpdocs/VeganWonderland/Shop/index.php(28): Oxid::run()
#16 /var/www/vhosts/beatemdown.de/httpdocs/VeganWonderland/Shop/oxseo.php(46): require('/var/www/vhosts...')
#17 {main}
Die Funktion getNutrition steckt in einer Erweiterung der Details Klasse. Diese wird in der Modulübersicht auch als erweitert angezeigt. Und es hat ja auch schonmal funktioniert.
Woran kann es nun also liegen, dass es plötzlich nicht mehr klappt?
EDIT: Das Modul in eine zweite Demoshop-Installation kopiert und dort läuft es. Ich kann nur keinen Unterschied finden.
Viele Grüße,
Kalle
Aheu,
nach ewigem rumprobieren habe ich das Problem auf das FactFinder Portlet eingrenzen können.
Nach Deaktivierung vom Factfinder funtionierte es noch nicht wieder, erst nachdem ich auch die Factfinder Dateien gelöscht hatte.
Es hat also wieder funktioniert. Ergo hab ich den FactFinder wieder installiert und der Fehler war wieder da…
Das FactFinder Portlet erweitert die “details” Klasse (mit kleinem d).
Mein Modul hat die “Details” Klasse (mit großem D) erweitert.
Die Datei, welche erweitert hat hiess jedoch “details_ext” und die Klasse ebenfalls - beides mit kleinem d
Nachdem ich nun alle kleinen d’s in meinem Modul in große D’s geändert habe klappt scheinbar alles.
Ob es nun am aktuellen neuen System auf dem Server liegt dass es hier relevant war, bei der vorigen Installation aber nicht weiss ich nicht. Ich werde in Zukunft aber peinlich genau darauf achten ob und was groß geschrieben wird.
EDIT: Kommando zurück. Ich hatte vergessen das Modul erneut zu aktivieren. Kaum war es ging wieder nichts mehr. Dafür steht in der Error-Log nun eindeutig, dass er versucht meine Funktion in der Factfinder Klasse zu finden
oxSystemComponentException-oxException (time: 2013-02-21 22:29:23): [0]: Function 'getNutritionValues' does not exist or is not accessible! (efiFactfinderDetails)
Stack Trace: #0 /var/www/vhosts/beatemdown.de/httpdocs/VeganWonderland/Shop/tmp/smarty/1db7eb234cf9253873bb02eb87f5f81b^%%F5^F50^F500F10E%%tabs.tpl.php(49): oxSuperCfg->__call('getNutritionVal...', Array)
#1 /var/www/vhosts/beatemdown.de/httpdocs/VeganWonderland/Shop/tmp/smarty/1db7eb234cf9253873bb02eb87f5f81b^%%F5^F50^F500F10E%%tabs.tpl.php(49): efiFactfinderDetails->getNutritionValues()
Ich hab meine Funktion auch mal testweise umbenannt, daher heisst sie nicht mehr so wie im ersten Post.
Ich weiss nicht mehr was ich da noch machen soll.
Viele Grüße,
Kalle
Aheu,
nach weiterer Rumprobiererei habe ich den Factfinder am laufen und zwar so, dass er im Error-Log nicht mehr auftaucht.
Da ich ja mittlerweile alles auf “Details” (also mit großen D) geändert habe wundert mich die Fehlermeldung nun umso mehr:
oxSystemComponentException-oxException (time: 2013-02-21 23:16:59): [0]: Function 'getNutritionValues' does not exist or is not accessible! (details_ext)
Stack Trace: #0 /var/www/vhosts/beatemdown.de/httpdocs/VeganWonderland/Shop/tmp/smarty/1db7eb234cf9253873bb02eb87f5f81b^%%F5^F50^F500F10E%%tabs.tpl.php(49): oxSuperCfg->__call('getNutritionVal...', Array)
#1 /var/www/vhosts/beatemdown.de/httpdocs/VeganWonderland/Shop/tmp/smarty/1db7eb234cf9253873bb02eb87f5f81b^%%F5^F50^F500F10E%%tabs.tpl.php(49): details_ext->getNutritionValues()
Ich habe testweise ein Backup der Datenbank gezogen und dieses nach “details_ext” durchsucht. Nichts zu finden. TMP-Ordner ist geleert, Views sind neu erzeugt. Wo holt sich Oxid denn nun noch die kleingeschriebene Klasse her? Es gibt nirgends mehr einen Verweis darauf. Weder in der Datenbank noch irgendwo im Quellcode.
EDIT: Man möge mir meine ständigen Updates verzeihen…
Es gab noch ein anderes Modul, welches eine kleingeschriebene “details_ext” enthielt. Die Suche danach im gesamten Modulordner hat mich darauf gestossen. Das dort auch geändert und nun scheint es gut zu sein. Dummerweise ist diese Erweiterung nur ein Dummy gewesen damit ein “extend” in der metadata drin steht, weil Oxid das ja unbedingt will, auch wenn gar keine Klasse erweitert werden muss. Das ist ein Nährboden für Fehler 
Viele Grüße und gute Nacht,
Kalle
Ein weiterer, erfolgreicher Monolog - Danke für die Auflösung! 