Okt
2009
Hier mal ein kleines Bespiel aus einem Kundenauftrag.
Gewünscht war, eine sehr lange Seite in 5 Verschidene Bereiche zu teilen und diese automatisch Täglich wechseln zu lassen. Ich mich entschieden diese Bereiche in 5 Div´s aufzuteilen man hätte sicher auch p oder span nutzen können.
Nun kommt am Anfang der Seite ein kleines PHP Script das mir die Berechnung der Täglichen Anzeige der Div´s abnimmt:
<?php
error_reporting(E_ALL);
$anzahl = 5;
$startDate = mktime(0,0,0, 10, 5, 2009);
$time = time();
$diffDate = ($time-$startDate);
$rest =($diffDate/86400)%$anzahl+1;
?>
Kurze Erklärung was das Script macht.
$anzahl
hier geben wir an wieviele anzuzeigene Elemente wir haben. (Es können natürlich auch mehr oder als 5 sein.)
$startDate
hier geben wir an ab welchen Tag das Script anfangen soll zu rechnen. mktime gibt den Unix-Timestamp entsprechend der gegebenen Argumente zurück. Das heisst die Sekunden seit dem 01.01.1970 bis zu dem Datum das wir als Start angegeben haben.
$time
gibt den aktuellen Unix-Timestamp/Zeitstempel zurück. Das heisst die Sekunden seit dem 01.01.1970 bis heute.
$diffDate
hier wird eine Differenz aus den beiden Sekundenwerten berechnet.
$rest
jetzt kommt die berechnung des Restwertes und die Angabe ob man einen Täglichen oder Wöchentlichen wechseln haben möchte. Für einen Täglichen Wechseln nehmen wir $diffDate/86400 (Sekunden einen Tages, 60*60*24) und für einen Wöchentlichen Wechseln $diffDate/604800 (Sekunden in einer Woche 60*60*24*7). Zum Schluss noch den Modulo aus $anzahl+1.
Zur Ausgabe der Div´s:
Hier gibt es 2 Möglichkeiten, etweda über den Weg der if Abfrage und der Erstellung einer Variable die bei True display:auto; oder bei False display:hidden ausgibt.
if ($rest== 1) $anzeige1 = "style='display:auto'"; else $anzeige1 = "style='display:none'";
if ($rest== 2) $anzeige2 = "style='display:auto'"; else $anzeige2 = "style='display:none'";
if ($rest== 3) $anzeige3 = "style='display:auto'"; else $anzeige3 = "style='display:none'";
if ($rest== 4) $anzeige4 = "style='display:auto'"; else $anzeige4 = "style='display:none'";
if ($rest== 5) $anzeige5 = "style='display:auto'"; else $anzeige5 = "style='display:none'";
?>
Dann braucht man im Body nur noch die 5 Div´s anlegen und mit den $anzeige1-5 zu versehen.
<div <? print $anzeige1; ?>>Div 1</div>
<div <? print $anzeige2; ?>>Div 2</div>
<div <? print $anzeige3; ?>>Div 3</div>
<div <? print $anzeige4; ?>>Div 4</div>
<div <? print $anzeige5; ?>>Div 5</div>
Ich habe mich für eine andere Variante entschieden. Undzwar die if Abfragen dierekt im Body zu machen:
<? if(isset($rest) && $rest == "1"){ ?>
<div style="border: 2px dashed #000; padding: 15px; width: 400px; height: 30px;">Das ist der erste Div...</div>
<? } ?>
Das wiederholt man für die restlichen Div´s und fertig.

Kommentare
Kommentar hinzufügen