Bereits vor wenigen Wochen hatte ich einen Artikel geschrieben der sich mit dem Update der TYPO3 Version auf 4.5.x beschäftigt. Leider ist es bei mir nun bei mehreren Seiten zu unerwünschten Nebenwirkungen mit der Extension commerce gekommen (siehe Artikel 27. Februar 2011). Ich möchte in diesem Blog Post kurz beschreiben / dokumentieren wie ich diese Probleme beseitigt habe.
Bitte nehmt zunächst ein Update der commerce Extension vor, hierbei geht wie folgt vor:
Die ersten Probleme tauchten beim Update auf die TYPO3 Version 4.5.0 auf die mit dem Update auf die Version 4.5.1 behoben wurde:
http://bugs.typo3.org/view.php?id=17372
Diesen Fehler behebt man wie folgt:
Index: typo3/sysext/cms/tslib/class.tslib_content.php =================================================================== --- typo3/sysext/cms/tslib/class.tslib_content.php (revision 10349) @@ -2086,6 +2086,7 @@ */ $this->data[$this->currentValKey] = $content; + return $content; } /** @@ -2098,6 +2099,7 @@ */ $this->data[$this->currentValKey] = $conf['setCurrent']; + return $content; } /**
Sofern dieser Bug behoben ist gibt es einen weiteren Bug / Fehler in der Version 4.5.1 und v 4.5.2 hier werden die Preise nicht im Frontend angezeigt da diese in der falschen Datenbank Tabelle gespeichert werden. Um diesen Fehler zu beheben laden Sie bitte die Datei
lib/class.tx_commerce_db_article.php im Extension Verzeichnis herunter hier stehen in der Zeile 134-140 der PHP Code welcher den Fehler enthält
Dieser PHP Code muss
if ($GLOBALS['TYPO3_DB']->sql_num_rows($result)>0){ while ($return_data=$GLOBALS['TYPO3_DB']->sql_fetch_assoc($result)){ $price_uid_list[$return_data['fe_group']][]=$return_data['uid']; } $GLOBALS['TYPO3_DB']->sql_free_result($result); return $price_uid_list; }else{
Durch diesen PHP Code ersetzt werden
if ($GLOBALS['TYPO3_DB']->sql_num_rows($result)>0){ while ($return_data=$GLOBALS['TYPO3_DB']->sql_fetch_assoc($result)){ if ( $return_data['fe_group'] == '' ) { $return_data['fe_group'] = 0; } $price_uid_list[$return_data['fe_group']][]=$return_data['uid']; } $GLOBALS['TYPO3_DB']->sql_free_result($result); return $price_uid_list; }else{
Dannach ist es wieder möglich die Preise der Artikel korrekt zu Speichern.
Fazit: Leider ist es so das die Extension commerce nicht mehr wirklich stabil mit den verschiedenen TYPO3 Versionen läuft, auch die per SVN heruntergeladene Version beinhaltet diverse Fehler. Informationen über die Weiterentwicklung der Extension habe ich bis zum heutigen Tag leider nicht erhalten. Wenn ihr hier mehr informationen habt gebt bitte einen Kommentar ab.