Jump to content
xt:Commerce Community Forum

Smarty math mit einem Datum


amilo

Recommended Posts

hallo amilo -> hatte gerade das smarty manual zur hand ...

'math' ermöglicht es dem Designer, mathematische Gleichungen durchzuführen. Alle numerischen

Template-Variablen können dazu verwendet werden und die Ausgabe wird an die Stelle des Tags

geschrieben. Die Variablen werden der Funktion als Parameter übergeben, dabei kann es sich um statische

oder um Template-Variablen handeln. Erlaubte Operatoren umfassen: +, -, /, *, abs, ceil, cos, exp,

floor, log, log10, max, min, pi, pow, rand, round, sin, sqrt, srans und tan. Konsultieren Sie die PHPDokumentation

für zusätzliche Informationen zu dieser Funktion.

Falls Sie die spezielle 'assign' Variable übergeben, wird die Ausgabe der 'math'-Funktion der Template-

Variablen mit dem selben Namen zugewiesen anstatt ausgegeben zu werden.

hoffe das hilft dir -> mfg rene

Link to comment
Share on other sites

auf die schnelle fällt mir jetzt nur folgende idee ein ...

einfach ein kleines plugin bauen oder per php ins template rein -> mit php das datum berechnen und wieder zurück ins template geben, ich denke 2-3 stunden sollte das ganze stehen ...

die smarty math funktionen soll etwas viel speicher verbrauchen - ich denke php währe da besser

Link to comment
Share on other sites

Hi,

und schon mal danke für alle Antworten.

@oldbear:

Das ziehen der Variablen ist kein Problem. Er rechnet nur falsch.

Wenn das Bestelldatum z.B. der 25.11.2011 ist und die Lieferzeit 14 Tage beträgt, dann ist das Ergebniss im Export Manager der 39.11.2011 und nicht der 09.12.2011.

Ich überleg jetzt schon das ganze einfach mit $smarty.now zu lösen, aber so richtig gefallen tut mir das nicht.

Oder ich stehe hier gerade richtig auf dem Schlauch. ;-)

MfG. Hansen

Link to comment
Share on other sites

Hi,

versuchs doch mal mit der strtotime() Funktion. Hier kannst du einsetzen was du brauchst, z.B. 1 Woche, 2 Tage 5 Stunden, etc. Gib den Wert an eine Variable. Mittels {if} Funktion kannst du dein Shop-Lieferdatum dann mit dem "Variablen-Datum" abgleichen und entsprechend anzeigen lassen. Du braucht halt für jedes Shop-Lieferdatum ein separates Variablendatum.

Ich hoffe, dass ich nicht zu umständlich denke. Bitte korrigieren, falls dem so ist.

Gruß Alex.

Link to comment
Share on other sites

Hi,

@cs24com:

$smarty.now wäre prinzipiell das gleiche nur ohne php.

Am liebsten wäre mir das ganze aber mit der Variable

{$data.order_data.date_purchased}
zu berechnen, da das ja noch am genauesten ist. Momentan sieht´s so aus:
{$smarty.now+$delivery_time*24*60*60|date_format:'%d.%m.%Y'}[/code]

$delivery_time wird durch verschiedene Abfragen befüllt.

MfG. Hansen

Link to comment
Share on other sites

  • 2 weeks later...

Hi,

also die Lieferzeitberechnung haben wir mit Hilfe von Oldbears Snippet jetzt hinbekommen:


global $language;

if ( $value['products_shippingtime'] > 0 ) {

    $sql_st = "SELECT * FROM ".TABLE_SYSTEM_STATUS_DESCRIPTION." 

               WHERE status_id = '".$value['products_shippingtime']."' 

               AND language_code = '".$language->code."'";

    $rs_st = $db->Execute($sql_st);

    $product_array[$i]['products_shipping_time'] = $rs_st->fields['status_name']; 

    }  

Allerdings steht ja auch die external_id im Bestell-Export - warum auch immer - nicht zur Verfügung. Jetzt hatten wir gehofft, dass das so gehen würde:

{php}

global $language;

if ( $value['products_id'] > 0 ) {

    $sql_st = "SELECT * FROM ".TABLE_XT_PRODUCTS."

               WHERE products_id = '".$value['products_id']."'";

    $rs_st = $db->Execute($sql_st);

    $product_array[$i]['external_id'] = $rs_st->fields['external_id'];

}

{/php}

Allerdings bleibt das ohne Erfolg. Wo liegt hier der Fehler?

MfG. Hansen

Link to comment
Share on other sites

  • 3 months later...

So jetzt Antworte ich noch einmal

dann sollte aber der Groschen fallen ich habe euch vor Wochen schon

die Lösung gepostet

rechnen tut man in unix

allllssssooooooooooo

heist das

{if ($smarty.now - 1209600) < strtotime($data.date_added)}

das ist jetzt nich genau die lösung auf einem Silbertablett aber diesmal

sollte es zum verständnis reichen

Link to comment
Share on other sites

Archived

This topic is now archived and is closed to further replies.

×
  • Create New...