Mir kam heut die Idee einen Termin Kalender zu coden, den ich als Startseite nutze und ich alle Termine somit auf einem Blick habe.
Hier der code, ist durch css etwas aufgepeppt. Bei Fragen oder verbesserungen posten.
<?
//### Termin Kalender ###\\
class kalender {
var $tag_zz; //zur Zeit: Tag im Monat 1-31
var $monat_zz; //zur Zeit: Monat im Jahr 1-12
var $jahr_zz; //zur Zeit: Jahr
var $monat; //Monat im Jahr 1-12
var $jahr; //Jahr >= 2006
var $tage; //Anzahl der Tage im Monat 28-31
var $arr_termine = array(); //Array in dem die Termine gespeichert werden
function termin ($tag) {
$arr_termine[31][12][$this->jahr][] = "Sylvester";
if(is_array($arr_termine[$tag][$this->monat][$this->jahr]))
{
$termine .= "<ul>";
foreach ($arr_termine[$tag][$this->monat][$this->jahr] as $value) {
$termine .= '<li>'.$value.'</li>';
}
$termine .= "</ul>";
}
return $termine;
}
function tageimmonat() {
//Gibt die Anzahl der Tge im Monat
return date("t", mktime(0, 0, 0, $this->monat, 1, $this->jahr));
}
function wochentag ($tag) {
//Gibt den Wochentag zurück
$wochentag = date("w", mktime(0, 0, 0, $this->monat, $tag, $this->jahr));
if($wochentag == 0) return 7;
else return $wochentag;
}
function wochennummer ($tag) {
//Gibt die Wochennummer des Jahres zurück
return date("W", mktime(0, 0, 0, $this->monat, $tag, $this->jahr));
}
function monatsname ($monat) {
switch ($monat) {
case 1: $name = "Januar";
break;
case 2: $name = "Februar";
break;
case 3: $name = "März";
break;
case 4: $name = "April";
break;
case 5: $name = "Mai";
break;
case 6: $name = "Juni";
break;
case 7: $name = "Juli";
break;
case 8: $name = "August";
break;
case 9: $name = "September";
break;
case 10: $name = "Oktober";
break;
case 11: $name = "November";
break;
case 12: $name = "Dezember";
break;
}
return $name;
}
function monatwechseln ($do) {
//kontrolliert den Jahressprung
if($do == "next"
{
if($this->monat != 12)
{
$neuermonat = $this->monat+1;
$neuesjahr = $this->jahr;
}
else
{
$neuermonat = 1;
$neuesjahr = $this->jahr+1;
}
}
elseif($do == "last"
{
if($this->monat != 1)
{
$neuermonat = $this->monat-1;
$neuesjahr = $this->jahr;
}
else
{
$neuermonat = 12;
$neuesjahr = $this->jahr-1;
}
}
return '<a href="kalender.php?monat='.$neuermonat.'&jahr='.$neuesjahr.'">'.$this->monatsname($neuermonat).' '.$neuesjahr.'</a>';
}
function zeilenstart ($tag) {
if($tag == 1) {
// Wieviel freie Tage am Anfang des Monats sind
$count = $this->wochentag(1)-1;
if($this->wochentag(1) != 1)
{
echo '<tr>';
echo '<td align="center" class="wochennummer"><span class="bigfont">'.$this->wochennummer($tag).'</span></td>';
}
for($i = 1; $i <= $count; $i++) {
echo '<td class="freietage"> </td>';
}
}
//Beginnt eine neue Zeile
if($this->wochentag($tag) == 1)
{
echo "<tr>";
//Wochennummer
echo '<td align="center" class="wochennummer"><span class="bigfont">'.$this->wochennummer($tag).'</span></td>';
}
}
function zeilenende ($tag) {
//Beendet eine Zeile
if($this->wochentag($tag) == 7) echo "</tr>";
if($tag == $this->tage)
{
//Wieviel freie Tage am Ende des Monats sind
$count = 7-$this->wochentag($this->tage);
for($i = 1; $i <= $count; $i++) {
echo '<td class="freietage"> </td>';
}
if($this->wochentag($this->tage) != 7) echo '</tr>';
}
}
function heute ($tag) {
//Heute wird hervorgehoben
if($tag == $this->tag_zz && $this->monat == $this->monat_zz && $this->jahr == $this->jahr_zz) return '<td class="heute"><span class="bigfont">'.$tag.'</span><br><span class="terminfont">'.$this->termin($tag).'</span></td>';
else return '<td class="tage"><span class="smallfont">'.$tag.'</span><br><span class="terminfont">'.$this->termin($tag).'</span></td>';
}
function header () {
echo '<tr>';
echo '<td class="monat" colspan="8" align="center"><span class="bigfont">'.$this->monatsname($this->monat).' '.$this->jahr.'</span></td>';
echo '</tr>';
echo '<tr>';
echo '<td class="lastmonat" colspan="4" align="center">'.$this->monatwechseln("last".'</td>';
echo '<td class="nextmonat" colspan="4" align="center">'.$this->monatwechseln("next".'</td>';
echo '</tr>';
echo '<tr>';
echo '<td align="center" width="12%" class="freietage"><a href="http://www.rebelweb.biz">Rebelweb</a></td>';
echo '<td align="center" width="12%" class="wochentage"><span class="bigfont">Mo</span></td>';
echo '<td align="center" width="12%" class="wochentage"><span class="bigfont">Di</span></td>';
echo '<td align="center" width="12%" class="wochentage"><span class="bigfont">Mi</span></td>';
echo '<td align="center" width="12%" class="wochentage"><span class="bigfont">Do</span></td>';
echo '<td align="center" width="12%" class="wochentage"><span class="bigfont">Fr</span></td>';
echo '<td align="center" width="12%" class="wochentage"><span class="bigfont">Sa</span></td>';
echo '<td align="center" width="12%" class="wochentage"><span class="bigfont">So</span></td>';
echo '</tr>';
}
function ausgabe () {
//Setzt den Kalender zusammen und gibt ihn aus
echo '<div align="center"><table width="100%" height="100%" border="0" cellspacing="1" cellpadding="2">';
$this->header();
for($i = 1; $i <= $this->tage; $i++) {
$this->zeilenstart($i);
echo $this->heute($i);
$this->zeilenende($i);
}
echo '</table></div>';
}
function kalender ($monat, $jahr) {
$this->tag_zz = date("d"
$this->monat_zz = date("m"
$this->jahr_zz = date("Y"
$this->monat = $monat;
$this->jahr = $jahr;
$this->tage = $this->tageimmonat();
$this->ausgabe();
}
}
if(empty($_GET['monat'])) $monat = date("m"
else $monat = $_GET['monat'];
if(empty($_GET['jahr'])) $jahr = date("Y"
else $jahr = $_GET['jahr'];
?>
<head>
<title>Kalender</title>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1252" />
<style type="text/css">
<!--
body {
color: #000000;
background-color: #ffffff;
font-size: 12px;
font-family: Tahoma,Verdana,Arial,Helvetiva,sans-serif;
}
a:link, body a:visited, body a:active {
color: #000000;
text-decoration: underline;
font-family: Tahoma,Verdana,Arial,Helvetiva,sans-serif;
font-size: 12px;
font-weight: bold;
}
.heute {
border-left: 2px #5555ff solid;
border-top: 2px #5555ff solid;
border-right: 3px #0000ff solid;
border-bottom: 3px #0000ff solid;
}
.terminfont {
color: #000000;
font-family: Tahoma,Verdana,Arial,Helvetiva,sans-serif;
font-size: 12px;
}
.smallfont {
color: #000000;
font-family: Tahoma,Verdana,Arial,Helvetiva,sans-serif;
font-size: 12px;
font-weight: bold;
}
.bigfont {
color: #000000;
font-family: Tahoma,Verdana,Arial,Helvetiva,sans-serif;
font-size: 18px;
font-weight: bold;
}
.tage {
border-left: 1px #777777 solid;
border-top: 1px #777777 solid;
border-right: 1px #777777 solid;
border-bottom: 1px #777777 solid;
}
.wochentage {
font-weight: bold;
border-left: 2px #ff5555 solid;
border-top: 2px #ff5555 solid;
border-right: 3px #ff0000 solid;
border-bottom: 3px #ff0000 solid;
}
.wochennummer {
font-weight: bold;
border-left: 2px #01dc01 solid;
border-top: 2px #01dc01 solid;
border-right: 3px #00c000 solid;
border-bottom: 3px #00c000 solid;
}
.freietage {
background-color: #cccccc;
border-left: 1px #777777 solid;
border-top: 1px #777777 solid;
border-right: 1px #777777 solid;
border-bottom: 1px #777777 solid;
}
.monat {
font-weight: bold;
border-left: 2px #5555ff solid;
border-top: 2px #5555ff solid;
border-right: 3px #0000ff solid;
border-bottom: 3px #0000ff solid;
}
.nextmonat {
font-weight: bold;
border-left: 1px #777777 solid;
border-top: 1px #777777 solid;
border-right: 1px #777777 solid;
border-bottom: 1px #777777 solid;
}
.lastmonat {
font-weight: bold;
border-left: 1px #777777 solid;
border-top: 1px #777777 solid;
border-right: 1px #777777 solid;
border-bottom: 1px #777777 solid;
}
-->
</style>
</head>
<body>
<?PHP
$kalender = new kalender($monat, $jahr); //mm, jjjj
?>
</body>
</html>