Az 1.6.0.9-es Prestashop-ban találkozhatunk olyan problémával, ahol rákattintva az adminbeli rendelések “export” gombra, egy “oldal nem található” lapra landolunk.
Developer módot bekapcsolva azonban már egy fokkal többet tudunk meg a hibáról. A szóban forgó .csv letöltődik, de a tartalma nem az áhított rendelések, hanem ez:
“<b>Fatal error</b>: Call to a member function getAdminLink() on a non-object in <b>/c/f/cfec8ed1-9147-4614-a1ff-9d7db44e304b/oldaladneve.hu/web/cache/smarty/compile/31/53/8a/31538a66251c60544026d0ca82e38f0ee08165d0.file._print_pdf_icon.tpl.php</b> on line <b>42</b><br />”
A problémát egy programozási hiba okozza, ami sajnos kiadásra került előzetes tesztelés nélkül. Javítása az alábbi módon eszközölhető:
Nyissuk meg az alábbi fájlt: classes/controller/AdminController.php,
majd keressük ki azt a részt, mely a 790. sor körül található:
foreach ($this->fields_list as $datas)
$headers[] = Tools::htmlentitiesDecodeUTF8($datas['title']);
Ha megtaláltuk, cseréljük ki erre:
{
if ($datas['title'] == 'PDF')
unset($this->fields_list[$key]);
else
$headers[] = Tools::htmlentitiesDecodeUTF8($datas['title']);
}
Ezek után menjünk picit lejjebb, és a 811. sor körül leledző alábbi részt:
{
$callback_obj = (isset($params['callback_object'])) ? $params['callback_object'] : $this->context->controller;
$field_value = call_user_func_array(array($callback_obj, $params['callback']), array($field_value, $row));
}
cseréljük le erre:
{
$callback_obj = (isset($params['callback_object'])) ? $params['callback_object'] : $this->context->controller;
$field_value = call_user_func_array(array($callback_obj, $params['callback']), array($field_value, $row));
}
Töltsük vissza a fájlt, és próbáljuk le az export gombot. Most már működnie kell 🙂
A hivatalos github bejegyzés ITT található.
Eladásra fel! 🙂