xampp 1.7.2 Beta1

Vorgestern ist einen neue Beta-Version von xampp erschienen. Die wichtigste Änderung ist wohl der Umstieg auf PHP5.3.0. Dazu kommt noch ein Update von MySQL, auf Version 5.1.36, und ein Update von phpMyAdmin, auf Version 3.2.0.1. Ansonsten hat sich kaum was geändert.

Tun Sie sich nur vor dem Update einen Gefallen und machen Backups! Sowohl von den Datenbanken als auch von dem „htdocs“-Verzeichnis!

Eine kleine Änderung scheint es bei der Installation zu geben, zumindest unter Windows. Konnte man früher ein Verzeichnis auswählen in dem xampp installiert wurde. Jetzt kommt die eigentliche Tücke. Wird nun der Pfad „C:\\xampp“ angegeben, so wird vom Installer noch ein Verzeichnis „xampp“ angelegt. Somit ist xampp nun unter „C:\\xampp\xampp“ zu finden. Ich meine es war früher anders.

jQuery – Externe Link im neuen Fenster öffnen

Manche mögen es und andere wiederrum nicht. Man klickt auf einen Link und es öffnet sich eine neue Seite, oder Tab. Den Betreiber der Seite freut es vielleicht, da die eigene Seite immer noch offen ist. Den Besucher der Seite ärgert es eventuell. Ich persönlich entscheide sehr gerne selbst wo ich die verlinkte Seite aufrufen möchte. Jedoch ist es manchmal durchaus sinnvoll fremden Inhalt deutlich von der eigenen Seite abzugrenzen.

 

Webhoster Wechsel: Von Strato zu ALL-INKL.COM

Nun ist es endlich soweit: Ich habe Strato den Rücken zugekehrt und bin zu ALL-INKL.COM gewechselt. Es ist sicherlich jedem, der regelmäßig meinen Blog besucht, aufgefallen wie langsam sie Seite doch ist. Damit ist nun Schluss! Selbst ich war von dem Geschwindigkeitsunterschied überrascht.

Geburtstage und Abschlussfeiern

Geburtstage und Abschlussfeiern

Nun habe ich die halbe Woche fast überstanden. Sie fragen sich sicherlich, wieso es diese Woche keinen neuen Beitrag gab. Das ist eigentlich ganz einfach: Ende Juni haben die meisten meiner Freunde Geburtstag, mich eingeschlossen und ich habe nun endlich mein Abitur bestanden!

Zwischen den zahlreichen Geburtstagen finden/fanden auch einige Feiern statt: ABI-Streich, die ABI-Zeugnis-Ausgabe, und natürlich der ABI-Ball. Und all findet zwischen dem 20. Juni und dem 01. Juli statt.

 

Google Chart API – wenn’s mal schnell gehen muss

Wer kennt das nicht. Man schreibt einen Artikel und will dort einige Diagramme unterbringen. Doch wie soll man da am besten vorgehen? Klar, man könnte sie Diagramme mit Excel erstellen lassen und diese dann als Grafik dem Artikel hinzufügen. Das ist jedoch mehr als unflexibel. In solchen Momenten ist Google Chart genau das richtige. Mit der API lassen sich sowohl Linien-, Balken-, Kreis- und andere Diagramme erstellen. Man muss lediglich die notwendigen Parameter übergeben. Wie das nun genau funktioniert erfahren Sie in diesem Artikel.

Ich wünsche Ihnen viel Spaß beim Lesen.

Einfacher Kalender mit PHP in 100 Zeilen

Einfacher Kalender mit PHP in 100 Zeilen

Heute möchte ich euch zeigen, wie man einen einfachen Kalender mit Hilfe von PHP erstellen kann. Dieser Kalender ist bei meiner Arbeit an einem Projekt entstanden und wird in einer angepassten Form dort verwendet. Und ich möchte euch dieses Script selbstverständlich nicht vorenthalten. Dabei gehe ich, anders als bei meinen ersten Beiträgen, jeden Schritt einzeln durch und versuche alles möglichst genau zu erklären.

Beschreibung

Der Kalender wird in einer Tabelle generiert. Dies ist natürlich keine Voraussetzung, aber für dieses Beispiel am besten geeignet. Dabei befinden sich zwei Links und die aktuelle Monats- und Jahresanzeige im Kopfbereich der Tabelle. In der nächsten Zeile werden die Wochentage aufgelistet und in den nachfolgenden die Tage.

Demo: Einfacher Kalender mit PHP

Dieser Artikel wurde im Januar 2013 komplett überarbeitet. Die Kommentare vor 2013 beziehen sich auf den alten Inhalt.

Vorbereitungen

Als erstes sollte man den Monat und das Jahr bestimmen, die standardmäßig angezeigt werden sollen, wenn keinen weiteren Parameter übergeben wurden. Sinnvoll wäre es hier den aktuellen Monat zu wählen.

2
3
4
5
6
// Wenn kein Monat übergeben wird, gehen wir von dem aktuellen aus
$month = isset($_GET['month']) ? intval($_GET['month']) : date('n');
 
// Wenn kein Jahr übergeben wird, gehen wir von dem aktuellen aus
$year = isset($_GET['year']) ? intval($_GET['year']) : date('Y');

Somit heißt es nun: Ist eine GET-Variable „month“ und/oder „year“ übergeben, so werden deren Werte genommen, andernfalls wird der aktuelle Monat/das aktuelle Jahr genommen.

Wir möchten die Wochentage und Monate, unabhängig von den Servereinstellungen, am liebsten auf deutsch ausgeben. Aus diesem Grund müssen wir auch diese im Array definieren.

9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
// Wochentage (Bei den meisten Servern liefert die PHP Funktion englische Namen)
$weekdays = array('Mo', 'Di', 'Mi', 'Do', 'Fr', 'Sa', 'So');
 
// Monatsnamen (Bei den meisten Servern liefert die PHP Funktion englische Namen)
$months = array(
  '01' => 'Januar',
  '02' => 'Februar',
  '03' => 'März',
  '04' => 'April',
  '05' => 'Mai',
  '06' => 'Juni',
  '07' => 'Juli',
  '08' => 'August',
  '09' => 'September',
  '10' => 'Oktober',
  '11' => 'November',
  '12' => 'Dezember'
);

Jetzt sollte man die nötigen Informationen, zur Darstellung des Kalenders, berechnen. Dazu gehören die Anzahl der Tage in diesem Monat und welcher Tag der 1. des Monats ist. Diese Angaben werden nun in der Variablem „$total_days“ und „$day_offset“ festgehalten.

27
28
29
30
31
// Anzahl der Tage im Monat
$total_days = date('t', mktime(0, 0, 0, $month, 1, $year));
 
// Den ersten Tag des Monats auf den richtigen Wochentag ausrichten
$day_offset = date('w', mktime(0, 0, 0, $month, (1-1), $year));

Jetzt fehlen uns nur noch drei Sachen um die Ausgabe des Kalenders zu beginnen. Dazu gehören die beiden Links zu dem vorherigen/nachfolgenden Monaten und eine Möglichkeit um schnell zu prüfen, ob ein Tag in dem Monat auch dem jetzigen entspricht.

Also definieren wir drei neue Variablen „$n_month“, „$n_year „ und „$n_day“ und übergeben ihnen den aktuellen Monat, das aktuelle Jahr und den aktuellen Tag.

33
34
// Aktuellen Tag, Monat und Jahr bestimmmen
list($n_month, $n_year, $n_day) = explode(', ', strftime('%m, %Y, %d'));

Nun berechnen wir den Monat vor und den Monat nach dem jetzigen. Diese Angaben brauchen wir gleich, um die Navigation im Kalender abzubilden.

36
37
38
39
40
// Berechnen von dem vorherigen Monat
list($n_prev_month, $n_prev_year) = explode(', ', strftime('%m, %Y', mktime(0, 0, 0, $month - 1, 1, $year)));
 
// Berechnen von dem kommenden Monat
list($n_next_month, $n_next_year) = explode(', ', strftime('%m, %Y', mktime(0, 0, 0, $month + 1, 1, $year)));

Ausgabe

Nun kommen wir nun endlich zu der Ausgabe des Kalenders. Es wird zuerst der Kopf der Tabelle mit dem Titel, der Beschreibung, der Navigation und der Anzeige des Monats und Jahres ausgegeben.

Kalender
« »

Gleich nach dem Tabellenkopf folgt die Ausgabe der Wochentage im Tabellenkörker.

127
 

Da längst nicht immer der erste Tag des Monats ein Montag ist, müssen wir die zuvorkommenden Wochentage der Woche mit leeren Zellen füllen. Dazu haben wir bei den Vorbereitungen die Variable $day_offset angelegt, die den numerischer Tag einer Woche des 1. Tages im Monat gespeichert hat. Kleines Beispiel: Der 1. Januar 2013 war ein Dienstag, somit hat die Variable $day_offset den Wer 1.

Ist $day_offset größer als 0, so kann der Monat nicht an einem Montag beginnen und wir müssen den Montag mit einer leeren Zelle ausgeben. Das erledigt für uns folgende, simple, Abfrage.

129
130
131
132
133
<!--?php // Erste Woche mit leeren Zeilen ausfüllen, wenn der erste Tag kein Montag ist ?-->
<!--?php if($day_offset --> 0):?&gt;
  <!--?php for($i = 0; $i < $day_offset; $i++):?--> 
  <!--?php endfor;?-->
<!--?php endif;?-->

Sind wir bei dem ersten Tag im Monat angekommen, starten wir eine for-Schleife von 1 bis zur Anzahl der Tage im Monat und prüfen bei jedem Durchlauf, ob der Tag dem aktuellen Datum entspricht. Ist das der Fall, so fügen wir die HTML Klasse „today“ hinzu. Dabei müssen wir lediglich darauf achten, dass immer nach 7 Tagen eine neue Zeile beginnt.

Bei jedem Durchlauf der Schleife addieren wir der Variabel $day_offset 1 hinzu. Erreicht die Variable den Wert 7, so wird eine neue Zeile begonnen und die Variable wird wieder auf 0 gesetzt.

136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
<!--?php // Die Tage ausgeben ?-->
<!--?php for($day = 1; $day <= $total_days; $day++):?-->
 
  <!--?php $class = array();?-->
 
  <!--?php // Wenn das aktuelle Datum dem "Schleifeninhalt" entspricht ?-->
  <!--?php if(($n_month == $month) &#038;& ($n_year == $year) &#038;& ($day == $n_day)):?-->
    <!--?php $class[] = 'today';?-->
  <!--?php endif;?--> 
 
  <!--?php $day_offset++;?-->
 
  <!--?php // Für neue Woche eine neue Zeile beginnen ?-->
  <!--?php if($day_offset == 7):?-->
    <!--?php $day_offset = 0;?-->
    <!--?php if($day < $total_days):?-->

Jetzt fehlt und lediglich das Ende der Tabelle. Und zwar müssen nun die letzten Wochentage der letzten Zeile, die nicht mehr zu diesem Monat gehören, als leere Zellen ausgegeben werden. Dazu gucken wir wie viele Tage bis zum Ende der Woche uns noch fehlen.

172
173
174
<!--?php if($day_offset --> 0):?&gt;
  <!--?php $day_offset = 7 - $day_offset;?-->
<!--?php endif;?-->

Und lassen eine for-Schleife die Anzahl der fehlenden Tage durchlaufen und eine leere Zelle hinzufügen.

175
176
177
178
179
<!--?php // Letzte Woche mit leeren Zeilen ausfüllen ?-->
<!--?php if($day_offset --> 0):?&gt;
  <!--?php for($i = 0; $i < $day_offset; $i++):?--> 
  <!--?php endfor;?-->
<!--?php endif;?-->

Und zu guter Letzt wird die Tabelle geschlossen.

181
 

Somit wäre der einfache Kalender mit PHP fertig!

Demo: Einfacher Kalender mit PHP

Dieser Artikel wurde im Januar 2013 komplett überarbeitet. Die Kommentare vor 2013 beziehen sich auf den alten Inhalt.

Events ausgeben

Da ich regelmäßig gefragt werde, wie man in diesem Kalender Events ausgeben könnte, habe ich eine kleine Erweiterung für diesen Artikel geschrieben: Einfachen PHP Event-Kalender erstellen

 

Bilder hosten auf pic-hoster.net

Heute möchte ich Ihnen einen relativ neuen Bild-Hoster vorstellen. Pic-hoster.net erlaubt, unregistrierten Nutzern, das Hochladen von bis zu 4MB großen Bildern in den Formaten GIF, PNG und JPG. Registrierte Benutzer profitieren durch die unlimitierten Uploads. Jeder registrierte Benutzer kann die Bilder in bis zu 10 Galerien einsortieren und werbefrei extern verlinken.

Die Macht der .htaccess-Datei

Was genau ist eine .htacces-Datei überhaupt.  .htaccess ist eine Konfigurationsdatei mit der Sie verzeichnisspezifische Einstellungen vornehmen können. Seien es HTTP-Fehlerdokumente, Verzeichnisoptionen, URL-Umleitungen, Verzeichnisdarstellungen oder der Passwortschutz. All das mache eine simple .htaccess-Datei möglich.

 

Anleitungen und Klassen: Google Analytics API

Google Analytics
Google Analytics

Ungefähr zwei Wochen nach der Veröffentlichung der neuen Google Analytics API finden sich bereits zahlreiche Anleitungen und Klassen im Internet, die den Zugriff erleichtern sollen. Ich habe mich auf die Suche gemacht und möchte Ihnen nun meine Ergebnisse präsentieren.

Facebook API

Kurz nachdem Google die Analytics API öffentlich zugänglich gemacht hat, folgt auch die neue Facebook API. Über die API kann man auf alle öffentliche Inhalte und freigegeben Nutzerdaten zugreifen. Ich bin jetzt schon gespannt, wann die erste Desktop-Applikation für Facebook erscheint.

Auf Facebook Developers wurden bereits einige Tutorials, Baupläne und PHP-Bibliotheken zusammengestellt. Damit soll der Einstieg in die Entwicklung erleichtert werden.