<?php
/////////////////////////////////////
// VERSION 1.0 af Jens Stigaard //
/////////////////////////////////////
//
// AFTALER
// Datoen skal indsættes i formatet:
// "ÅÅÅÅMMDD" => "din aftale",
// - se lige under her, hvis du ikke forstår det
$appointments = array(
"20080504" => "Jens 16 års fødselsdag",
"20081223" => "Lille jule aften",
"20081224" => "Juleaften",
"20080321" => "Lukas 7 år",
"20080325" => "Skal jo skrive et eller andet?",
"20080322" => "Københavnstur",
);
// Ugens dage (første er altid 0 (nul), derfor søndag først, men også sidst
$days = array("søndag", "mandag", "tirsdag", "onsdag", "torsdag", "fredag", "lørdag", "søndag");
// Årets måneder (første er December, igen fordi vi starter på nul)
$months = array("December", "Januar", "Februar", "Marts", "April", "Maj", "Juni", "Juli", "August", "September", "Oktober", "November", "December");
$this_day = date("d"); //Lægger dag variabel
$this_month = date("m"); //Lægger måned variabel
$this_year = date("Y"); //Lægger år variabel
if((is_numeric($_GET['month']))&&(is_numeric($_GET['year']))) // Hvis der er ændret måned og år bliver variablerne med måned og år erstatet
{
$this_month = $_GET['month'];
$this_year = $_GET['year'];
}
$month_title = $months["".date("n", mktime(0,0,0,$this_month,1,$this_year)).""]; //Her gives månedens navn
$days_in_month = cal_days_in_month(CAL_GREGORIAN,$this_month,$this_year); // Antal dage der er i den pågældende måned
$action_day = 1; // Vi starter på dag 1
print"<table>"; // Start på tabellen
print"<tr>"; // Vores første row starter
print"<td colspan=\"3\" style=\"text-align:center;\">"; // Første celle indeholder vores månedskifter
print"<a href=\"?"; // Start på 1. link (forrige måned)
if($this_month == 1) // Hvis vi har måned et (januar) så skal vi tilbage til december (måned 12) forrige år
{
print"month=12&year=".($this_year-1);
}
elseif($this_month > 1 && $this_month < 13) // Ellers hvis vi har en måned der er større end 1, og desuden mindre end 12, skal vi blot minusse en måned
{
print"month=";
if($this_month <10) // Hvis måneden er mindre end 10 skal vi sætte 0 foran for at få korrekt url
{
print"0";
}
print($this_month-1)."&year=".$this_year;
}
print"\">« Forrige måned</a>"; // Selve linket
print" - <strong>".$month_title." ".$this_year."</strong> - "; // Her for vi printet selve den aktuelle måneds titel
print"<a href=\"?"; // Start på 2. link (næste måned)
if($this_month == 12) // Hvis vi har måned 12 (december) skal vi gå til januar det næste år
{
print"month=01&year=".($this_year+1);
}
elseif($this_month > 0 && $this_month < 12) // Ellers hvis vi har en måned der er større end 0 og mindre end 12, skal der blot lægges en måned til
{
print"month=";
if($this_month <10) // Hvis måneden er mindre end 10 skal vi sætte 0 foran for at få korrekt url
{
print"0";
}
print($this_month+1)."&year=".$this_year;
}
print"\" target=\"_self\">Næste måned »</a>"; // Selve linket
print"</td>"; // Slut på celle med måned-skift
print"<td width=\"60\"></td>"; // Den næste og sidste celle kommer til at indeholde ugenumre, men den holder vi blank her
print"</tr>"; // Slut på header rækken
// Så starter vi endelig på at selve dagene skal printes; dagens nummer skal være lig eller mindre end antal dage i måneden
while ($action_day <= $days_in_month)
{
if($action_day < 10) // Hvis dagen er mindre end 10 tilføjer vi et 0 (nul) foran
{
$action_day = "0".$action_day;
}
$action_day_ts = mktime(0,0,0,$this_month,$action_day,$this_year); // Vi laver et UNIX string af dagen
$action_day_name = $days["".date("w", $action_day_ts).""]; // Dagens navn (fx mandag)
if(date("w", $action_day_ts) == 1) // Hvis det er ugens første dag, laves et break
{
print"<tr><td colspan=\"10\" class=\"break\"><hr /></td></tr>";
}
print"<tr>"; // Så starter vi på den række hvor al dataen kommer ind på
print"<td>"; // Den 1. celle; Indeholder dagens tal
if($this_year.$this_month.$action_day == date("Ymd"))// Hvis denne aktuelle dag er lig med den dag vi viser i kalenderen så laver vi et plus
{
print "+";
}
print $action_day; // Dagen (fx. 01)
print"</td>"; // Slut på navnet på dagens celle
print"<td>".$action_day_name."</td>"; // Den 2. celle; Indeholder dagens navn (mandag - søndag)
print"<td>"; // Den 3. celle er med vores aftale, som bliver hentet fra arrayet øverst på siden
foreach($appointments as $appointment_day => $appointment) // Vi henter alle aftaler i arrayet; en ad gangen
{
if($appointment_day == $this_year.$this_month.$action_day) // Hvis den aftalte dato og den nuværende dag er ens printes aftalen
{
print $appointment;
}
}
print"</td>"; // Slut på aftalens celle
print"<td>";// Den 4. celle som indeholder ugentallet hvis det er mandag
if (date("w", $action_day_ts) == 1) //
{
print "uge: ".date("W",$action_day_ts);
}
print"</td>"; // Slut på 4. celle med ugenummer
print"</tr>"; // Slut på vores række med data
$action_day++; // Vi ændrer dagsnummeret med ++ (+1)
}
print"</table>"; // Slut på tabellen
?>