So, für alle XT-Commerce Shop Besitzer der letzten 3'er Version, welche auf PHP 5.3 upgraden möchten oder müssen, eine kurze Zusammenfassung, was dafür notwendig ist. Alle Beiträge sind NICHT von mir, nur eben zusammengefasst, da über kurz oder lang viele das fixen müssen:
Schritt 1:
xtCommerce 3 mit PHP 5.3
Problem:
Mein Provider setzt PHP 5.3 ein und mein xtCommerce 3 Shop läuft seitdem nicht mehr. Ich bekomme viele DEPRECATED Fehlermeldungen.
...
Um dennoch xtCommerce 3 zum laufen zu bringen, sind einige Änderungen im Quellcode nötig:
1. /includes/application_top.php
Suchen Sie nach error_reporting und ersetzen
error_reporting(E_ALL & ~E_NOTICE);
oder
ini_set("error_reporting","E_ALL & ~E_NOTICE");
durch
error_reporting(E_ALL & ~E_NOTICE & ~E_DEPRECATED);
2. /admin/includes/application_top.php
Suchen Sie nach error_reporting und ersetzen
error_reporting(E_ALL & ~E_NOTICE);
oder
ini_set("error_reporting","E_ALL & ~E_NOTICE");
durch
error_reporting(E_ALL & ~E_NOTICE & ~E_DEPRECATED);
UND:
Warning: number_format() expects parameter 2 to be long, string given in /users/masterpc/www/shop/includes/modules/order_details_cart.php on line 59
application_top.php aus dem Ordner /includes/ öffnen und
Code:
define('TAX_DECIMAL_PLACES', 0);
einsetzen.
Dasselbe machst du in der application_top.php aus dem Ordner admin/includes/
Schritt 2, Fehlermeldungen im Warenkorb:
Das ganze ist am einfachsten in der Datenbank über Mysql zu lösen:
Bei allen Artikeln, die ich mit mehreren Attributen Optionen einstelle erscheint auf der jeweiligen Seite des Artikels die Fehlermeldung:
Zitat:
Warning: number_format() expects parameter 1 to be double, string given in /users/USERNAME/www/includ
/xtcPrice.php on line 319
Die Meldung verschwindet, wenn man bei den Artikelattributen beim Preis nicht 0 eingibt, sondern 0.0001. Es ist also ein Problem mit dem Artikelpreis von 0.00 bei Attributen...
Mit Mysql geht das so in Phpmyadmin. Muss nach jeder Änderung des Attributs entweder beim Artikel direkt oder bei der Datenbank wieder gemacht werden.
UPDATE `products_attributes` SET `options_values_price` = '0.0001' WHERE `options_values_price` <= '0.0000'
Das wärs, so läuft der Shop auf PHP5.3 ohne Fehlermeldungen, zumindest bei mir. Außerdem erkauft man sich wieder ein wenig Zeit für ein zukünftiges Upgrade ;-)