Heute gibt es ein Skript für einen PHP-basierenden Kalender! Das Skript selbst erkläre ich nicht, da es den Rahmen mehr als sprengen würde. Allerdings erkläre ich euch, wie einfach es Anzuwenden ist!
 | Wichtig!: |
Es gibt ein neues Update! Erklärung der neuen Funktion befindet sich ganz unten!
 | Was Du brauchst: |
PHP-fähigen Webspace
Das Skript (Vers. 1.0) ( Download )
oder
Das Skript (Vers. 1.1.1) ( Download )
Als ersters solltet Ihr das Skript
includen.
<?php
include('calendar.class.php');
?>
Nun müsst Ihr ein neues Objekt instanzieren. Das heisst nichts anderes, als den Kalender aufzurufen und in einer Variable fest zu halten.
<?php
$kalender = new Punkt16_Calendar();
?>
Jetzt noch die Funktion
getCalendar aufrufen, und mit
echo ausgeben:
<?php
echo $kalender->getCalendar();
?>
Der komplette Code für den Standard-Kalender sieht wie folgt aus:
<?php
include('calendar.class.php');
$kalender = new Punkt16_Calendar();
echo $kalender->getCalendar();
?>
Ihr habt nun aber englische Monats- und Tagesnamen. Um diese zu ändern, müsst Ihr beim instanzieren des Objekts ein Array mit den deutschen Namen übergeben.
Euer Array sieht so aus:
<?php
$deutscheDaten = array(
'daysLong' => array(
'Montag',
'Dienstag',
'Mittwoch',
'Donnerstag',
'Freitag',
'Samstag',
'Sonntag'
),
'daysShort' => array(
'Mo',
'Di',
'Mi',
'Do',
'Fr',
'Sa',
'So',
),
'monthsLong' => array(
'Januar',
'Februar',
'März',
'April',
'Mai',
'Juni',
'Juli',
'August',
'September',
'Oktober',
'November',
'Dezember'
),
'monthsShort' => array(
'Jan',
'Feb',
'März',
'Apr',
'Mai',
'Juni',
'Juli',
'Aug',
'Sep',
'Okt',
'Nov',
'Dez'
)
);
?>
Falls Ihr euren Code nicht so aufblähen möchtet, hier die kurze Fassung:
<?php
$deutscheDaten=array('daysLong'=>array('Montag','Dienstag','Mittwoch','Donnerstag','Freitag','Samstag','Sonntag'),'daysShort'=>array('Mo','Di','Mi','Do','Fr','Sa','So',),'monthsLong'=>array('Januar','Februar','März','April','Mai','Juni','Juli','August','September','Oktober','November','Dezember'),'monthsShort'=>array('Jan','Feb','März','Apr','Mai','Juni','Juli','Aug','Sep','Okt','Nov','Dez'));
?>
Übergebt nun dem Objekt diese Daten:
<?php
$kalender = new Punkt16_Calendar($deutscheDaten);
?>
Kompletter Code:
<?php
include('calendar.class.php');
$deutscheDaten=array('daysLong'=>array('Montag','Dienstag','Mittwoch','Donnerstag','Freitag','Samstag','Sonntag'),'daysShort'=>array('Mo','Di','Mi','Do','Fr','Sa','So',),'monthsLong'=>array('Januar','Februar','März','April','Mai','Juni','Juli','August','September','Oktober','November','Dezember'),'monthsShort'=>array('Jan','Feb','März','Apr','Mai','Juni','Juli','Aug','Sep','Okt','Nov','Dez'));
$kalender = new Punkt16_Calendar($deutscheDaten);
echo $kalender->getCalendar();
?>
Eure Ausgabe sieht wohl noch etwas sehr weiss aus. Deswegen benötigt Ihr noch eine passende CSS, welche dem Download oben beiliegt:
table.calendar { width:210px; border:1px solid #a6c9e2; margin:50px auto auto;}
table.calendar table.title { width:100%; height:30px; broder:1px solid #c5dbec; background:#5c9ccc; text-align:center;}
table.calendar table.title td.monthBackwardA { width:30px; color:#fff; }
table.calendar table.title td.monthBackwardA a { font-size:18px; color:#fff; width:30px; height:30px; line-height:30px; display:block; text-decoration:none; }
table.calendar table.title td.monthYear { font-size:14px; line-height:30px; color:#fff;}
table.calendar table.title td.monthForwardA { width:30px; color:#fff;}
table.calendar table.title td.monthForwardA a { font-size:18px; color:#fff; width:30px; height:30px; line-height:30px; display:block; text-decoration:none;}
table.calendar td.dayName { text-align:center; font-weight:bold; }
table.calendar td.dayA { border:1px solid #c5dbec; background:#dfeffc; color:#2e6e9e; text-align:center;}
table.calendar td.dayA.dayTodayA { border:1px solid #fad42e; background:#fbec88; color:#363636;}
table.calendar td.dayA.dayOther { border:1px solid #e6f4ff; background:#f6fbff; color:#98d3ff; }
Ein Beispiel mit deutschen Namen könnt ihr euch hier ansehen:
http://examples.punkt16.de/PHP/Kalender1.0/Version 1.1Eine neue Funktion des PHP Kalenders ist die Möglichkeit, Feiertage einzutragen!
Als Beispiel fügen wir Silvester dieses Jahres hinzu. Da Silvester jedes Jahr statt findet, verwenden wir für die Jahreszahl ein Sternchen ( * ). Diese Sternchen könnt ihr Nutzen wie Ihr möchtet, d.h. auch für Tage und Monate.
<?php
$kalender->addHoliday('Silvester', '31.12.*');
?>
Oder habt Ihr vllt an jedem 5. Tag im Monat ein Fest?
<?php
$kalender->addHoliday('Monats-Party', '05.*.*');
?>
 | Wichtig!: |
Schon gewusst?
Ihr könnt noch zwei Paramter bei "addHoliday" übergeben:
Eine URL, welche beim Klick auf den Eintrag auf eine Seite weiterleitet
Eine CSS-Klasse, welche dieser Tag bekommen soll!
So könnt Ihr z.B. Weihnachten (welches schon fest hinterlegt ist ;)) schön hinterlegen:
<?php
$kalender->addHoliday('Weihnachten', '24.12.*',
'http://deineseite.de/weihnachten.html', 'weihnachten');
?>
Der 24.12. wird zu http://deineseite.de/weihnachten.html verlinkt und bekommt die Klasse "weihnachten", welche diesen Tag vielleicht rot hinterlegt? :)
Möchtet Ihr einen eingetragenen Feiertag wieder löschen, wie zum Beispiel "Heilige drei Könige" (fest Eingetragen), verwendet Ihr folgende Funktion:
<?php
$kalender->removeHoliday('06.1.*');
?>
So werden genau die Feiertage ausgetragen, welche am 06.1.* stattfinden.
Weiter habt ihr die Möglichkeit, ganze Ferien einzutragen:
<?php
$kalender->addVacation('26.12.2009', '29.12.2009', 'Testferien');
?>
Das erste Datum ist der Beginn, das zweite Datum das Ende (wird markiert). Der Dritte Parameter "Testferien" ist der Name dieser Ferien.
Hier könnt Ihr auch, wie oben im WICHTIG-Kasten, weitere zwei Parameter anhängen, welche eine URL und eine CSS-Klasse behinhalten.
Ferien könnt ihr löschen, in dem Ihr beim Funktionsaufruf von removeVacation den Namen dieser Ferien übergebt:
<?php
$kalender->removeVacation('Testferien');
?>
Ein kompletter Code könnt nun so aussehen:
<?php
$deutscheDaten=array('daysLong'=>array('Montag','Dienstag','Mittwoch','Donnerstag','Freitag','Samstag','Sonntag'),'daysShort'=>array('Mo','Di','Mi','Do','Fr','Sa','So',),'monthsLong'=>array('Januar','Februar','März','April','Mai','Juni','Juli','August','September','Oktober','November','Dezember'),'monthsShort'=>array('Jan','Feb','März','Apr','Mai','Juni','Juli','Aug','Sep','Okt','Nov','Dez'));
$kalender= new Punkt16_Calendar($deutscheDaten);
$kalender->addHoliday('Silvester', '31.12.*');
$kalender->addHoliday('Monats-Party', '05.*.*');
$kalender->removeHoliday('06.1.*');
$kalender->addVacation('26.12.2009', '29.12.2009', 'Testferien');
$kalender->removeVacation('Testferien');
echo $kalender->getCalendar(); ?>
Ein Beispiel mit den neuen Funktionen könnt ihr euch hier ansehen:
http://examples.punkt16.de/PHP/Kalender1.1.1/Ein Backlink zu www.punkt16.de ist erwünscht, aber nicht Pflicht!Lg,
Florian Palme (via
@Punkt16)
monkeybox
Super Tutorial!Schöne Erklärungen, super Ergebnis!