EInfügedatum in oxarticles.OXINSERT falsch (in der Zukunft)

Moin,

ich habe gerade festgestellt, dass das Feld OXINSERT bei neu eingefügten Artikeln utopische Daten hat … Jahr 2020, etc. Riecht nach einer falschen Formatierung des Datums beim INSERT.

Hat das schonmal jemand beobachtet und kann es bestätigen oder ist das nur bei mir so? Wenn es ein Problem im Zusammenspiel mit meinem MySQL ist, dann wäre ich für einen Hinweis dankbar, an welcher Stelle der INSERT gemacht wird, damit ich das ggf. fixen kann.

Danke
Carsten

Hallo Carsten,

2009-03-01 <-- beim Testartikel gerade eben. MySQL: 5.0.67-0ubuntu6.

Könnte es vielleicht an einer utopischen Serverzeit bei Dir liegen, Testumgebung?

Gruß


Marco Steinhäuser
Community Guide
OXID eSales AG

Hallo Marco,

nene … NTP macht’s möglich und ich habe das Datum auch gerade nochmal überprüft. Ist im übrigen auch in der Tabelle oxorderarticles so … und nur das Feld OXINSERT. Andere Datumsfelder sind ok.

mysql Ver 14.12 Distrib 5.0.70, for pc-linux-gnu (x86_64) using readline 5.2 (Gentoo)

LG
Carsten

hmm… da bin ich etwas ratlos, kann es nicht reproduzieren. Wäre über “die -> printr” interessant zu erfahren, ob der Wert bereits “in der Zukunft” existiert, bevor er in die Datenbank geschrieben wird. Aber das läßt sich nur debuggen.

Gruß


Marco Steinhäuser
Community Guide
OXID eSales AG

Kein Problem. Um mir zwei Stunden suchen zu ersparen wäre ich für einen Hinweis dankbar, an welcher Stelle das ganze passiert (siehe Ursprungsposting) :wink:

Grüße
Carsten

grummel … ich habe mir also die Mühe gemacht und die Stelle selbst rausgefunden und mit print_r mal hinter die Kulissen geschaut.

Wie durch ein Wunder scheint nun alles in Ordnung. Die Debug Ausgabe sagt das richtige Datum und auch der neue Artikel, den ich eben angelegt habe, ist in Ordnung. Keine Ahnung, wie die schrägen Daten da rein gekommen sind (aber ich werde in Zukunft ein Auge darauf haben, sollte es sich wiederholen).

Grüße
Carsten


Der Essenzenladen http://www.essenzenladen.de
OXID eShop CE 4.0.1

Sorry, da war ich wohl ein bissel spät.
Danke für die Rückmeldung!


Marco Steinhäuser
Community Guide
OXID eSales AG

Passt schon. Es hat gottseindank keine zwei Stunden gedauert :wink: Aber ich habe da noch das eine oder andere offene Problem, das ich in den Foren gepostet habe … da könnte ich noch Hilfe gebrauchen :wink:

Grüße
Carsten


Der Essenzenladen http://www.essenzenladen.de
OXID eShop CE 4.0.1

Hi!

Zur Info: Das Problem tritt nicht bei der Neuanlage von Artikeln auf, sondern beim Upload neuer Bilder. Hierzu gibt es einen ganz ähnlich gelagerten Bugreport, dem ich mich mal angeschlossen habe:

https://bugs.oxid-esales.com/view.php?id=704

LGCarsten


Der Essenzenladen http://www.essenzenladen.de
OXID eShop CE 4.0.1

Fix ist relativ simpel:

Modul von oxarticle schreiben. Methoden load() und save() überladen:

public function load(){ // A. #1325 resetting to avoid problems when reloading (details etc) $this->_blNotBuyableParent = false; $blRet = oxI18n::load( $oxID); // convert date’s to international format $this->oxarticles__oxinsertraw = new oxField($this->oxarticles__oxinsert->value); $this->oxarticles__oxinsert = new oxField(oxUtilsDate::getInstance()->formatDBDate( $this->oxarticles__oxinsert->value)); $this->oxarticles__oxtimestamp = new oxField(oxUtilsDate::getInstance()->formatDBDate( $this->oxarticles__oxtimestamp->value)); return $blRet;}

public function save(){ if($this->oxarticles__oxinsertraw->value) $this->oxarticles__oxinsert = new oxField($this->oxarticles__oxinsertraw->value); $blRet = parent::save(); return $blRet;}

Gäbe es hier ein vernünftiges “Code-Tag”, könnte man das auch schick darstellen …

mfgurban

PHP- und OXID-Schulungen in der anzido Akademie: http://www.anzido-akademie.de .


Andreas Ziethen - Geschäftsführeranzido GmbH - ecommerce in guten händen!NEU: anzido Akademie

Hi Urban,

danke für den Hinweis. Wenn ich Dich recht verstehe dann geht es um ein Modul in /modules, das über das Backend eingebunden wird. Kannst Du mir da nochmal syntaxtechnisch auf die Sprünge helfen? Methoden überlagern ist bis heute noch nicht meine Spielwiese gewesen :wink:

BTW: Eine Code-Formatierung kannst Du mit dem Dropdown “Styles” im Editor bekommen :slight_smile:

DankeCarsten


Der Essenzenladen http://www.essenzenladen.de
OXID eShop CE 4.0.1

Methoden überlagern ist bis heute noch nicht meine Spielwiese gewesen :wink:

Na dann wird’s aber Zeit für einen Besuch in der anzido Akademie!

Okay, dann mal als Kochrezept: :wink:

  1. Man nehme ein - innerhalb von “/modules” frisch angelegtes Verzeichnis “az_bugfixes” und fülle dieses mit einer leeren Datei, der man den Namen “az_bugfixes_oxarticle.php” gibt.

  2. Nun fülle man diese leere Datei “az_bugfixes_oxarticle.php” mit folgendem Inhalt:

<?phpclass az_bugfixes_oxArticle extends az_bugfixes_oxArticle_parent{ public function load( $oxID) { // A. #1325 resetting to avoid problems when reloading (details etc) $this->_blNotBuyableParent = false; $blRet = oxI18n::load( $oxID); // convert date’s to international format $this->oxarticles__oxinsertraw = new oxField($this->oxarticles__oxinsert->value); $this->oxarticles__oxinsert = new oxField(oxUtilsDate::getInstance()->formatDBDate( $this->oxarticles__oxinsert->value)); $this->oxarticles__oxtimestamp = new oxField(oxUtilsDate::getInstance()->formatDBDate( $this->oxarticles__oxtimestamp->value)); return $blRet; } public function save() { if($this->oxarticles__oxinsertraw->value) $this->oxarticles__oxinsert = new oxField($this->oxarticles__oxinsertraw->value); $blRet = parent::save(); return $blRet; }}

  1. Schließlich trage man im Shop-Admin unter Stammdaten –> Grundeinstellungen –> System –> Module die folgende Zeile ein:

oxarticle => az_bugfixes/az_bugfixes_oxarticle

Speichern. Fertig. :slight_smile:

Alle Angaben ohne Gewähr! Alle Tests auf eigene Gefahr!

(Da kann eigentlich nix schiefgehen - aber sicher ist sicher … )

mfgurban


Andreas Ziethen - Geschäftsführeranzido GmbH - ecommerce in guten händen!NEU: anzido Akademie

Hi!

Klasse, danke! Aber noch eine Frage: die neue Klasse erweitert die Klasse az_bugfixes_oxArticle_parent … die es voraussichtlich auf meinem Server nicht gibt. Fehler oder Wissenslücke meinerseits?

LGCarsten


Der Essenzenladen http://www.essenzenladen.de
OXID eShop CE 4.0.1

Probier’s doch einfach mal aus! (It’s magic … )

Es handelt sich in der Tat um eine Wissenslücke. Der OXID erzeugt on-the-fly sog. “transparente” parent classes. Das ist hilfreich für die Verkettung von mehreren Modulen. Das hier nun im Detail zu erklären, würde zu weit führen (um genau SOWAS geht’s übrigens hier: KLICK-MICH!).

Um diese …_parent Klassen brauchst du dich nicht kümmern - das macht der Shop automatisch.

mfgurban


Andreas Ziethen - Geschäftsführeranzido GmbH - ecommerce in guten händen!NEU: anzido Akademie

FYI: code posting geht so:

Auf html umschalten. Eingeben:

[code type=“php” oder “html” oder sogar “smarty”]

<?php phpinfo();?>

[b]

[/b]

Über die Styles macht er einfach nur ein bissel hübsch, code wie entities würde trotzdem ausgeführt ;)

Gruß

__________________
Marco Steinhäuser
Community Guide
OXID eSales AG

Mist. Neuer Versuch:

#code type=“php” oder “html” oder sogar “smarty”#

<?php phpinfo();?>

#/code#

Nun die # durch eckige Klammern ersetzen. Viola!


Marco Steinhäuser
Community Guide
OXID eSales AG