Werbung / Banner buchen
Neuigkeiten
  • Die modified eCommerce Shopsoftware ist kostenlos, aber nicht umsonst.
    Spenden
  • Damit wir die modified eCommerce Shopsoftware auch zukünftig kostenlos anbieten können:
    Spenden
  • Thema: Erweiterte Anzeige der Lieferzeit

    Markus

    • modified Team
    • Beiträge: 1.396
    • Geschlecht:
    Erweiterte Anzeige der Lieferzeit
    am: 26. Oktober 2009, 21:06:00
    Hallo ...

    kennt jemand zufällig dieses Modul (siehe Screenshot) oder lässt sich das relativ einfach umsetzen? Momentan fehlt mir da gerade irgendwie die zündende Idee ;-)

    Es geht um den Text ...
    Zitat
    Bestellen Sie jetzt und Sie erhalten Ihre Lieferung voraussichtlich am
    Dienstag (27.10.09) oder Donnerstag (29.10.09)
    Noch schneller geht's mit ....


    Schöne Grüße

    Markus

      [ Für Gäste sind keine Dateianhänge sichtbar ]



    Linkback: https://www.modified-shop.org/forum/index.php?topic=2461.0

    Tomcraft

    • modified Team
    • Gravatar
    • Beiträge: 46.369
    • Geschlecht:
    Erweiterte Anzeige der Lieferzeit
    Antwort #1 am: 26. Oktober 2009, 21:39:54
    Füge an gewünschter Stelle im Template folgendes hinzu:

    Code: XML  [Auswählen]
    {php}
    echo 'Bestellen Sie jetzt und Sie erhalten Ihre Lieferung voraussichtlich am '. date('l d.m.Y', strtotime('+1 day')) . ' oder ' . date('l d.m.Y', strtotime('+2 day'));
    {/php}
     
    Prinzip klar? Das "+1 day" kannst du auch ersetzen durch "+2 week".

    Grüße

    Torsten

    Markus

    • modified Team
    • Beiträge: 1.396
    • Geschlecht:
    Erweiterte Anzeige der Lieferzeit
    Antwort #2 am: 26. Oktober 2009, 21:46:56
    Hi Thorsten,

    vielen dank ... jetzt wo ich es sehe ist es klar ;-)

    Schöne Grüße

    Markus

    Tomcraft

    • modified Team
    • Gravatar
    • Beiträge: 46.369
    • Geschlecht:
    Erweiterte Anzeige der Lieferzeit
    Antwort #3 am: 26. Oktober 2009, 21:54:21
    Hatte es auch nicht direkt parat, kleiner Blick hierhin hat geholfen: http://php.net/manual/de/function.time.php ;-)

    Grüße

    Torsten

    web28

    • modified Team
    • Beiträge: 9.404
    Erweiterte Anzeige der Lieferzeit
    Antwort #4 am: 27. Oktober 2009, 01:05:54
    Fehlt nur noch das Filtern der Sonn- und Feiertage, da wird selten ausgeliefert  :wink:

    Markus

    • modified Team
    • Beiträge: 1.396
    • Geschlecht:
    Erweiterte Anzeige der Lieferzeit
    Antwort #5 am: 27. Oktober 2009, 06:49:38
    Hi ...



    Zitat
    Fehlt nur noch das Filtern der Sonn- und Feiertage, da wird selten ausgeliefert  :wink:

    auch wieder wahr .. die darf man ja auch nicht vergessen ;-)
    hast du da zufällig schon was parat?
    mal schauen ob ich das irgendwie hinbekomme ... bin ja eher der Designer als der Programmierer  :mrgreen:

    Markus

    Nachtrag:
    ich seh schon das wird noch kniffliger .. wir haben ja mal 28, 29, 30 oder 31 Tage im Monat ;-)
    Ich glaub da brauch ich doch eure Hilfe

    kopfpilot

    • Frisch an Board
    • Beiträge: 85
    Erweiterte Anzeige der Lieferzeit
    Antwort #6 am: 27. Oktober 2009, 10:29:22
    Entweder findest du fertigen PHP-Code, der dir genau das zurückgibt oder Du nimmst dir alle Algorithmen zur Feiertagsberechnung und Codest das selber.

    Kleines Beispiel: Feiertage berechnen

    Andererseits würde es mich wundern, wenn es das nicht schon fertig geben würde...

    gruß
    kopfpilot

    Markus

    • modified Team
    • Beiträge: 1.396
    • Geschlecht:
    Erweiterte Anzeige der Lieferzeit
    Antwort #7 am: 27. Oktober 2009, 10:43:34
    Danke für den Link, aber das alles unter einen Hut zu bekommen überfordert mit Sicherheit meine programmiertechnischen Fähigkeiten  :mrgreen:

    Markus

    Tomcraft

    • modified Team
    • Gravatar
    • Beiträge: 46.369
    • Geschlecht:
    Erweiterte Anzeige der Lieferzeit
    Antwort #8 am: 27. Oktober 2009, 11:07:18
    oh... dafür müsstest du die Daten in ein array packen oder aus einer Text-Datei auslesen. *grübel*

    Es gibt auch noch die Funktion easter_date in PHP: http://de2.php.net/manual/en/function.easter-date.php ;-)

    Ich hab mal Google bemüht und die Lösung gefunden: http://www.finrik.at/content/feiertage-mit-php-ermitteln

    Code: PHP  [Auswählen]

    <?php
    error_reporting(E_ALL);
    header("Content-Type: text/html; charset=UTF-8");

    /**
     * Ermittle Feiertage, Arbeitstage und Wochenenden von einem Datum
     *
     * @param string $datum im Format YYYY-MM-DD
     * @param string $bundesland
     * @return string
     */

    function feiertag ($datum,$bundesland='') {

        $datum = explode("-", $datum);

        $datum[1] = str_pad($datum[1], 2, "0", STR_PAD_LEFT);
        $datum[2] = str_pad($datum[2], 2, "0", STR_PAD_LEFT);

        if (!checkdate($datum[1], $datum[2], $datum[0])) return false;

        $datum_arr = getdate(mktime(0,0,0,$datum[1],$datum[2],$datum[0]));

        $easter_d = date("d", easter_date($datum[0]));
        $easter_m = date("m", easter_date($datum[0]));

        $status = 'Arbeitstag';
        if ($datum_arr['wday'] == 0 || $datum_arr['wday'] == 6) $status = 'Wochenende';

        if ($datum[1].$datum[2] == '0101') {
            return 'Neujahr';
        } elseif ($datum[1].$datum[2] == '0106') {
            return 'Heilige Drei Könige';
        } elseif ($datum[1].$datum[2] == '0319' && ($bundesland == 'k' || $bundesland == 'st' || $bundesland == 't' || $bundesland == 'v')) {
            return 'Josef';
        } elseif ($datum[1].$datum[2] == $easter_m.$easter_d) {
            return 'Ostersonntag';
        } elseif ($datum[1].$datum[2] == date("md",mktime(0,0,0,$easter_m,$easter_d+1,$datum[0]))) {
            return 'Ostermontag';
        } elseif ($datum[1].$datum[2] == date("md",mktime(0,0,0,$easter_m,$easter_d+39,$datum[0]))) {
            return 'Christi Himmelfahrt';
        } elseif ($datum[1].$datum[2] == date("md",mktime(0,0,0,$easter_m,$easter_d+49,$datum[0]))) {
            return 'Pfingstsonntag';
        } elseif ($datum[1].$datum[2] == date("md",mktime(0,0,0,$easter_m,$easter_d+50,$datum[0]))) {
            return 'Pfingstmontag';
        } elseif ($datum[1].$datum[2] == date("md",mktime(0,0,0,$easter_m,$easter_d+60,$datum[0]))) {
            return 'Fronleichnam';
        } elseif ($datum[1].$datum[2] == '0501') {
            return 'Erster Mai';
        } elseif ($datum[1].$datum[2] == '0504' && $bundesland == 'ooe') {
            return 'Florian';
        } elseif ($datum[1].$datum[2] == '0815') {
            return 'Mariä Himmelfahrt';
        } elseif ($datum[1].$datum[2] == '0924' && $bundesland == 's') {
            return 'Rupertitag';
        } elseif ($datum[1].$datum[2] == '1010' && $bundesland == 'k') {
            return 'Tag der Volksabstimmung';
        } elseif ($datum[1].$datum[2] == '1026') {
            return 'Nationalfeiertag';
        } elseif ($datum[1].$datum[2] == '1101') {
            return 'Allerheiligen';
        } elseif ($datum[1].$datum[2] == '1111' && $bundesland == 'b') {
            return 'Martini';
        } elseif ($datum[1].$datum[2] == '1115' && ($bundesland == 'noe' || $bundesland == 'w')) {
            return 'Leopoldi';
        } elseif ($datum[1].$datum[2] == '1208') {
            return 'Mariä Empfängnis';
        } elseif ($datum[1].$datum[2] == '1224') {
            return 'Heiliger Abend';
        } elseif ($datum[1].$datum[2] == '1225') {
            return 'Christtag';
        } elseif ($datum[1].$datum[2] == '1226') {
            return 'Stefanitag';
        } else {
            return $status;
        }

    }

    for ($monat = 1; $monat <= 12; $monat++) {

        echo '<strong>'.$monat.'</strong><br>';

        for ($tag = 1; $tag <= 31; $tag++) {

            $tmp = feiertag('2008-'.$monat.'-'.$tag,'noe');

            if ($tmp == 'Arbeitstag' || $tmp == 'Wochenende') {
                echo $tag.'.'.$monat.': '.$tmp.'<br>';
            } else {
                echo $tag.'.'.$monat.': <strong>'.$tmp.'</strong><br>';
            }

        }

        echo '<br><br>';

    }

    ?>
     
    Ist dann noch erweiterbar mit:

    Code: PHP  [Auswählen]
    switch ($status) {
    case Wochenende:
    return FALSE;
    case Neujahr:
    return FALSE;
    case Ostersonntag:
    return FALSE;
    case Ostermontag:
    return FALSE;
    [...]
    [...]
    [...]
    case Arbeitstag:
    return TRUE;
    default:
    break;
    }
    return TRUE;
    echo 'Bestellen Sie jetzt und Sie erhalten Ihre Lieferung voraussichtlich am '. date('l d.m.Y', strtotime('+1 day')) . ' oder ' . date('l d.m.Y', strtotime('+2 day'));
    }
     
    Grüße

    Torsten

    Markus

    • modified Team
    • Beiträge: 1.396
    • Geschlecht:
    Erweiterte Anzeige der Lieferzeit
    Antwort #9 am: 27. Oktober 2009, 11:36:02
    Hi Torsten,

    jetzt bin ich baff ... danke schön ;-)

    aber irgendwie steh ich jetzt auf dem Schlauch wie ich das ganze in die product_info reinwurste  :mrgreen:

    Markus

    Tomcraft

    • modified Team
    • Gravatar
    • Beiträge: 46.369
    • Geschlecht:
    Erweiterte Anzeige der Lieferzeit
    Antwort #10 am: 27. Oktober 2009, 14:36:58
    Na das obere gibt dir die Feiertage aus. Und dann brauchst du noch einen Switch, was passiert wann. ;-)

    Die echos sind natürlich überflüssig.

    Los! :D

    Markus

    • modified Team
    • Beiträge: 1.396
    • Geschlecht:
    Erweiterte Anzeige der Lieferzeit
    Antwort #11 am: 27. Oktober 2009, 15:44:57
    Hi ..

    ich glabu ich bin da heute zu blöd für  :mrgreen:

    ich habe nicht wirklich den Plan wie ich dem ganzen jetzt erkläre dass er einfach alle Datumsangaben überspringt welche $tmp != 'Arbeitstag' haben.

    Markus

    0 Antworten
    2341 Aufrufe
    11. September 2012, 15:20:47 von Nobody24
    9 Antworten
    3025 Aufrufe
    06. November 2010, 11:59:05 von klickerhannes
    8 Antworten
    4330 Aufrufe
    06. Oktober 2010, 11:38:57 von Bcoola
    2 Antworten
    2716 Aufrufe
    14. November 2010, 20:18:59 von SanPedro
               
    anything