PHP oop Kalender med aftale objekter i et array?
hejsa,jeg har prøvet at udvikle en kalender, som vi kender den fra diverse reklamerende virksomheder der sender deres papkalendere ud til folk med posten... dette er mit første forsøg på at lave noget med objektorienteret php, da jeg ville lege lidt med det...
se kalenderen her:
http://www.pixel8.dk/pages/skb/
jeg har nu det problem at jeg skal have aftaler i min kalender...
Dette må jo så være aftale objekter...?
jeg kan ikke rigtigt greje hvordan jeg skal lave en liste af aftaler som så kan findes frem ved at der søges på den dato man er på, så jeg savner lidt hjælp til hvordan jeg griber det an...
I får lige min kalender kode her.:
[code]
require_once($_SERVER['DOCUMENT_ROOT']. "/pages/skb/classes/appointment.php");
class Calendar extends Appointment {
var $months;
var $month;
var $year;
function Calendar() {
}
function dayConvert($day) {
if($day == "7") { $day = "Sø"; }
if($day == "1") { $day = "Ma"; }
if($day == "2") { $day = "Ti"; }
if($day == "3") { $day = "On"; }
if($day == "4") { $day = "To"; }
if($day == "5") { $day = "Fr"; }
if($day == "6") { $day = "Lø"; }
return $day;
}
function getStart() {
return $this->month;
}
function daysOfMonth() {
$mo = $this->month;
$ye = $this->year;
return cal_days_in_month( CAL_GREGORIAN, $mo, $ye );
}
function thisDay() {
$mo = $this->month;
$t = mktime(0, 0, 0, $mo, $this->day, $this->year);
return $this->dayConvert(date("N",$t));
}
function isWeekend() {
$t = mktime(0, 0, 0, $this->month, $this->day, $this->year);
$r = date("N",$t);
if($r == 6) {
return 'sa';
} elseif($r == 7) {
return 'su';
}
}
function thisMonth() {
$mo = $this->month;
$ye = $this->year;
$t = mktime(0, 0, 0, $mo, date("d"), $ye);
return date("F",$t);
}
function thisYear() {
$mo = $this->month;
$ye = $this->year;
$t = mktime(0, 0, 0, $mo, date("d"), $ye);
return date("Y",$t);
}
function showCalendar() {
for($co= 0; $co < $this->months ; $co++) {
if($this->month >12) { $this->month = 1; $this->year++; }
echo "<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" style=\"float:left;\" class=\"calendar\">\n";
echo "<tr>\n";
echo "<td class=\"month\" colspan=\"3\">".$this->thisMonth()." ". $this->thisYear()."</td>\n</tr>\n";
$this->day = 1;
for ($y= 1; $y <= $this->daysOfMonth(); $y++) {
echo "<tr>\n";
echo "<td class=\"day1".$this->isWeekend()."\" align=\"left\">".$this->thisDay()."</td>\n";
echo "<td class=\"day".$this->isWeekend()."\" align=\"right\">".$y."</td>\n";
echo "<td class=\"event".$this->isWeekend()."\" align=\"left\"></td>\n";
echo "</tr>\n";
$this->day++;
}
for($z= $this->daysOfMonth(); $z < 31; $z++) {
echo "<tr>\n<td colspan=\"3\" class=\"none\"> </td>\n</tr>\n";
}
echo "</table>\n";
$this->month++;
}
}
}
[/code]
når den opretter en td, skal den så søge efter om der er nogle aftaler på den dato..
Jeg regner med at køre det fra en mysql når jeg er færdig, men skal jeg så bare helt droppe at bruge aftale objekter og så bare lave en funktion der søger på dato og udskriver aftale på td'en... så er det vel ikke rigtigt oop længere? og så skal der også ske et mysql kald for hver dag jeg har i min kalender, istedet for at gøre det hele af én gang?
eller skal jeg lade db'en køre alle aftaler igennem af én gang, gemme objekterne i et array og så på én eller anden måde søge i dette array af objekter og udskrive aftalen til en given dato..? og i så fald - hvordan griber jeg det an?
på forhånd tak!
min kalender bliver nu oprettet således.:
[code]
$ap1 = new Appointment("13-1-2009","Test");
$ar1 = new ArrayList();
$ar1->add($ap1);
// det virker ikke så godt :-)
$cal = new Calendar();
$cal->months = 6;
$cal->month = date("m");
$cal->year = 2009;
$cal->showCalendar();
[/code]
håber nogle kan hjælpe mig da jeg er helt ny i oop...
på forhånd tak!
