SUPEE-10570 und weiße Seite bei Warenkorb

Nach Installation des Sicherheitsupdates SUPEE-10570 für Magento CE 1.9.2.4 kann es passieren, dass der Warenkorb nur eine weiße Seite zeigt, ohne dass Serverlogs und Magento-Logs Fehler aufzeigen. Und dies nur bei aktivierter Kompilierung. Den Fehler hier zu finden ist ohne Logs relativ schwierig - wir konnten jedoch nach langer Suche  den Schuldigen ausmachen, hier war es eine Funktion in /app/code/core/Mage/Customer/Helper/Data.php, namentlich getPasswordTimestamp().

 

 Hier kommt es dann zum Absturz, wenn versucht wird, über bereit gestellte Magento-Methoden ein Customer-Objekt zu laden. Sei es via Mage::getModel('customer/customer') oder Mage::getSingleton('customer/session'), es erscheint immer nur eine weiße Seite ohne jeglichen Error-Output, und das im Entwicklermodus mit empfindlichsten Error-Leveln. Heißt also: Wir holen uns die benötigten Infos manuell ohne Umweg über das Customer-Objekt, ob nun vorinitiiert oder nicht.

 

Wie immer: Keine Core-Changes, d.h. wir kopieren die vorgenannte Funktion nach 

 

/app/code/local/Mage/Customer/Helper/Data.php

 

Hier integrieren wir zuerst eine Abfrage

 

$resource = Mage::getSingleton('core/resource'); $resource = Mage::getSingleton('core/resource');

$readConnection = $resource->getConnection('core_read');

$query = 'SELECT * FROM ' . $resource->getTableName('customer_entity').' WHERE `entity_id` = '.$customerId; $results = $readConnection->fetchAll($query);

 

, die uns nun die Daten des aktuell eingeloggten User übergibt. Wir interessieren uns jedoch nur für die Spalte "created_at", so dass wir diese nun wohlformatiert zuweisen und der anfragenden Stelle zurückgeben:

 

$result=$results[0]; $result=$results[0];

$date_created = Varien_Date::toTimestamp($result['created_at']);

return $date_created;

 

Warum die gepatchen Funktionen nicht nahtlos ineinandergreifen, wird uns evtl. ein Rätsel bleiben, bis dahin funktioniert dieser Workaround in jedem Falle wunderbar. Getestet in Magento CE 1.9.2.4.