13x bewertet

PHP Kalender

von P@ck  |  02.12.2009 um 22:03 h
Skriptverwendung
Typ: Skriptverwendung
Stufe:Einfach Mittelmäßig
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.1
Eine 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)



11 Kommentare




monkeybox

Super Tutorial! Smilie
Schöne Erklärungen, super Ergebnis! Smilie
am 02.12.2009 um 22:06 Uhr


shaWii

Vielen dank... sowas hab ich mal gesucht Smilie
am 02.12.2009 um 22:35 Uhr


Gianluca

Dankeschön :)
Ist echt ein tolles Tutorial Smilie
am 03.12.2009 um 05:28 Uhr


Akira

Hey wow.
sowas hab ich echt schon lange gesucht,
auch viel gefunden, aber nie verstanden.
Aber jetzt endlich :)
herzlichen dank Smilie
am 03.12.2009 um 13:18 Uhr


Sasuke

Echt Gaill :) 6 Sterne Smilie
am 03.12.2009 um 13:51 Uhr


Nuckellinchen

danach hab ich immer gesucht <3
am 03.12.2009 um 18:02 Uhr


SmaX

Super Tutorial! Kann man echt immer brauchen!! 6P
am 03.12.2009 um 21:21 Uhr


Andy

Super Tutorial Smilie Werd ich bestimmt mal einbauen in meine Page Smilie 6 Sterne
am 04.12.2009 um 13:22 Uhr


werock2040

Tolles Tutorial, könntest du evtl auch noch eine Funktion dazu bastelj, wo man auch events einfügen kann, kategorisch geordnet natürlich. Also z.B
Feiertage,Eventart 1, Eventart 2, Eventart 3, Eventart 4?
und evtl noch einige Angaben zum Event?
am 22.12.2009 um 10:33 Uhr


Blue

Schade, man kann das Script nicht mehr downloaden x.x Hätte sehr gern die calendar.class.php gehabt... Hat sie wer vielleicht noch?ˆˆ

Blue
am 07.05.2010 um 21:25 Uhr


P@ck

Beispiel und Script ist wieder oben! :) Viel Spaß damit!

@All: Würde mich btw interessieren, wo es so zum Einsatz kommt! ;)
am 27.05.2010 um 19:24 Uhr