Ich wollte die Kategorie Navigation von unserer Seite nur bis zum Level 2 darstellen und ich habe es in dem Development System gut hingekriegt. Aber, als ich dieselben Code in Production umgesetzt habe, habe ich folgende Fehler gekriegt:
[14-Jun-2018 06:31:22 Europe/Berlin] PHP Fatal error: Uncaught Error: Call to a member function Execute() on null in /var/www/xtCore/boxes/categories_recursive.php:44
Stack trace:
#0 /var/www/xtFramework/library/smarty/xt_plugins/function.box.php(42): include()
#1 /var/www/templates_c/xxxxxxxxxxxxxx.file.index.html.php(148): smarty_function_box(Array, Object(Smarty_Internal_Template))
#2 /var/www/xtFramework/library/smarty/smarty-3.1.29/libs/sysplugins/smarty_template_resource_base.php(122): xxxxxxxxxxxxxxxxxx(Object(Smarty_Internal_Template))
#3 /var/www/xtFramework/library/smarty/smarty-3.1.29/libs/sysplugins/smarty_template_compiled.php(199): Smarty_Template_Resource_Base->getRenderedTemplateCode(Object(Smarty_Internal_Template))
#4 /var/www/xtFramework/library/smarty/smarty-3.1.29/libs/sysplugins/smarty_internal_template.php(159): Smarty_Template_Compiled->render(Object(Smarty_Internal_Template in /var/www/xtCore/boxes/categories_recursive.php on line 44
Da ich nicht wusste, ob eine Funktion im XT:Commerce gibt, um nur einen Teil des Kategoriebaums auszugeben, habe ich in /var/www/xtCore/boxes/categories_recursive.php folgende Linie kommentiert
(L.41) $currentData = $category->getCategoryBox(0, true);
und durch folgende DB abfrage ersetzt.
$rs = $db->Execute("SELECT categories_id,parent_id, categories_level FROM ".TABLE_CATEGORIES." WHERE categories_level<? AND categories_status=? ORDER BY sort_order",array(3,1));
und dann baue ich $currentData für den Template. Der Seite wird dann im Production zerschossen.
Ich habe schon die Caches im Backend gelöscht, alles aus den Ordner cache und templates_c gelöscht und auch
sudo touch /var/cache/mod_pagespeed/cache.flush
aber es scheint nichts zu wirken. Es ist schwierig zu untersuchen, weil ich kann nur begrenzt Sachen in Production probieren, aber würde mich auf Eure Tips sehr freuen. Auch ein Vorschlag für eine ganz andere Methode um Teil des Kategoriebaums zu kriegen.
Viele Grüße,
Joao