Aus Gründen der zeitlichen Sortierbarkeit brauche ich das Bestelldatum in der Form „JahrMonatTag“, so dass der 30.12.2011 als „111230“ angezeigt wird, ohne Punkte oder Striche dazwischen und möglichst nur die letzten zwei Ziffern des Jahres. 111230 = 2011, Dezember, 30. Wie mache ich das? Ich habe versucht, per Hook die Funktionen sSaveOrder() und sendMail() aus sOrder.php zu überschreiben, leider bisher ohne Erfolg. Ich habe mich dabei an das Feld $orderDay gehalten und folgende neuen Zeilen eingefügt: Funktion sSaveOrder(): 153: $orderDayShort = date(„d.m.Y“); (aber wie gesagt soll es am Ende nicht 30.12.2011 sondern 111230 sein!) 370: „sOrderDayShort“=>$orderDayShort Rest: 1 zu 1 übernommen, $this natürlich mit $args->getSubject() ersetzt damit der Hook funktioniert. Funktion sendMail(): 46: $verweis->sSYSTEM->sSMARTY->assign(‚sOrderDayShort‘,$variables[„sOrderDayShort“]); Nun möchte ich also orderDayShort z. B. in die Betreffzeile einer Email übernehmen mit {$sOrderDayShort}. Funktioniert leider nicht, es wird gar nichts angezeigt. Woran liegt’s, was habe ich vergessen/übersehen? Zumindest zu „orderDay“ gibt es in den beiden Funktionen keine weiteren Vorkommen im Text. Muss ich noch irgendwo anders was ändern? Und: wie kriege ich das Datum in das oben genannte Format? Danke im Voraus. Eronaile
[quote=“eronaile”] 153: $orderDayShort = date(“d.m.Y”); date(“d.m.Y”); [/quote] date(“ymd”); sollte gehen.
Könnte sein, das habe ich schon versucht aber weil ja das Feld an sich offensichtlich nicht geht kann ich es nicht prüfen. Vermutlich (reine Vermutung!) sind noch in einer anderen Methode und/oder Klasse Änderungen erforderlich, damit sOrderDayShort erkannt bzw. richtig in der Datenbank abgespeichert wird. Wer kann weiterhelfen? Das Format ist erstmal nicht das primäre Problem ^^
Niemand eine Idee warum das Feld nicht einsetzbar ist? Wie gesagt habe ich in den beiden Funktionen genau das geschrieben, was bereits bei sOrderDay stand, nur eben für ein neues Feld sOrderDayShort. Das hat aber wohl nicht gereicht, muss ich noch eine andere Funktion oder php-Datei ändern?
Hi, man braucht dafür kein Hack. Die Formatierung kann man auch über Smarty / Zend-Date machen: http://de3.php.net/manual/en/function.date.php {$sOrderDayShort|date:ymd:php}
Heiner
Danke aber das löst leider nicht das Hauptproblem: das Feld sOrderDayShort wird vielleicht richtig formatiert aber man kann es nicht benutzen. UPDATE: Schade, dass niemand helfen konnte. So habe ich mehrere Stunden damit verbringen müssen. Die Lösung ist, die Zeilen $variables[„sOrderDay“]=date(„Ymd“); $verweis->sSYSTEM->sSMARTY->assign(‚sOrderDay‘,$variables[„sOrderDay“]); einzufügen, bevor das „Subject“ in der Mail definiert wird. Auf die Art und Weise kann man mit dem schon vorhandenen sOrderDay Feld nur in der Betreffzeile ein Datum á la 20120301 angeben während überall sonst die normale Form 03.01.2012 benutzt wird. PS: Aber dank für die Tipps zur Formatierung, mit date(„Ymd“) hat’s geklappt.