Adventskalender mit SVG und PHP
Hallo
Ich habe mir heute mal ein einfaches Konzept überlegt, wie ich einen Adventskalender aufbaue.
Das Ergebnis wäre hier zu bewundern.
nevada-fields.de/advent/
Prinzip ein Hintergrundbild in einer SVG Datei was entweder durch ein Feld zum öffnen oder ein Bild überlagert wird.
Anhand eines Parameters einer dezimalen Zahl wird überprüft ob das Feld bereits angeklickt worden ist. Ersatzweise wäre da auch eine binäre Zahl mit 24 Stellen möglich.
Die robots.txt enthält einen Eintrag zur Sperrung der Urls mit Parameter.
Benötigt wird ein Array mit den Angaben die wechseln wie Bild welche Position unter Umständen Link und so weiter und natürlich welches Türchen geöffnet wird.
Die Keys in diesem Array sind so aufgebaut das für jeden Tag die Zahl des Tages minus eins die Potenz zu dem Faktor 2 darstellt.
Also der Key für den 24.12. wäre dann 8388608
Im Prinzip wird die Überprüfung ob das Türchen offen ist durch folgende Abfragen bewerkstelligt.
return new DateTime(null, new DateTimeZone('Europe/Berlin')) > new DateTime('2013-12-'.str_pad($tag, 2, "0", STR_PAD_LEFT).' 00:00:00', new DateTimeZone('Europe/Berlin'));
und in einer foreach Schleife läuft dann die Kontrolle ob das Türchen geöffnet worden ist.
$bin = str_split(str_pad(decbin($_GET['tag']), 24, "0", STR_PAD_LEFT));
if ($bin[24-$tag])
#Türchen ist geöffnet worden
Der vollständige Code enthält eben weitere Sicherheitsabfragen und so weiter und ich denke das Prinzip ist ausreichend geschildert worden.
Auf eine mögliche Alternative mit Javascript und speziell Ajax und Local Storage hatte ich keine Lust und auch keine Zeit nur um die Parameter nicht setzen zu müssen.
Ein Nachteil der Javascript Variante wäre auf jeden Fall gewesen das erst nach Auslesen des Local Storages bereits geöffnete Türchen per Ajax wieder aufgerufen werden müssten.
SVG erschien mir als Basis auch die geeignerte Variante gegenüber Alternativen wie Formular , Imagemap oder Hantieren mit div containern und absoluter Positionierung.
Gruß
Jörg
Zufällige Umleitung zu der Startseite einer meiner Domains
Meine ungewöhnlichen Tools
Beitrag erstellen
EinloggenKostenlos registrieren