1 | <?php |
---|
2 | |
---|
3 | |
---|
4 | class UIXMLCalendar{ |
---|
5 | |
---|
6 | function UIXMLCalendar(){ |
---|
7 | // Domingo = 0 -> Sabado = 6 |
---|
8 | $this -> daysofweek = array ("Dom ", "Segunda", "Terça", "Quarta", "Quinta", "Sexta", "Sábado"); |
---|
9 | $this -> workweekstarts = 0; |
---|
10 | $this -> workweekends = 6; |
---|
11 | $this -> workdaystarts = 8; |
---|
12 | $this -> workdayends = 19; |
---|
13 | $this -> weekDate = array(); |
---|
14 | |
---|
15 | |
---|
16 | } |
---|
17 | function getUserCalendar($type,$date, $userId){ |
---|
18 | $calendarUser = array ( |
---|
19 | "20071008" => array( |
---|
20 | "0900" => "Cafe da Manha", |
---|
21 | "1100" => "Lanche da Manhã", |
---|
22 | "1600" => "Almoco Executivo", |
---|
23 | "1500" => "Cafe da Tarde" |
---|
24 | ), |
---|
25 | "20071009" => array(), |
---|
26 | "20071126" => array( |
---|
27 | "0800" => "Cafe da Manha", |
---|
28 | "1000" => "Lanche da Manhã", |
---|
29 | "1200" => "Almoco Executivo", |
---|
30 | "1530" => "Cafe da Tarde", |
---|
31 | "1800" => "Hora de ir embora" |
---|
32 | ), |
---|
33 | "20071011" => array(), |
---|
34 | "20071012" => array(), |
---|
35 | "20071013" => array( |
---|
36 | "1000" => "Cafe da Manha", |
---|
37 | "1400" => "Almoco Executivo", |
---|
38 | "1700" => "Cafe da Tarde", |
---|
39 | ), |
---|
40 | "20071014" => array() |
---|
41 | ); |
---|
42 | if($type == 'week') |
---|
43 | return $calendarUser; |
---|
44 | elseif($type == 'day') |
---|
45 | return $calendarUser[$date]; |
---|
46 | } |
---|
47 | |
---|
48 | function getWorkDay($date){ |
---|
49 | $workday = ''; |
---|
50 | for($i = $this->workdaystarts; $i <= $this->workdayends; $i = $i + 0.5){ |
---|
51 | if($i == intval($i)) |
---|
52 | $workday.= "<workday><timeid>".($i < 10 ? "0" : "").intval($i)."00</timeid><hour>".($i < 10 ? "0" : "").intval($i).":00</hour></workday>"; |
---|
53 | else |
---|
54 | $workday.= "<workday><timeid>".($i < 10 ? "0" : "").intval($i)."30</timeid><hour>".($i < 10 ? "0" : "").intval($i).":30</hour></workday>"; |
---|
55 | } |
---|
56 | return $workday; |
---|
57 | } |
---|
58 | |
---|
59 | function getWorkWeek(){ |
---|
60 | $workweek = ''; |
---|
61 | for($i = $this->workweekstarts; $i <= $this->workweekends; $i++){ |
---|
62 | $workweek.= "<workweek><dayid>".$this -> weekDate[$i]."</dayid><dayofweek>".$this->daysofweek[$i]."</dayofweek></workweek>"; |
---|
63 | } |
---|
64 | return $workweek; |
---|
65 | } |
---|
66 | |
---|
67 | function getViewDay($params){ |
---|
68 | $userId = $params['userId']; |
---|
69 | $date = $params['date']; |
---|
70 | $calendarUser = $this->getUserCalendar('day',$date, $userId); |
---|
71 | $return = "<today>$date</today>"; |
---|
72 | |
---|
73 | if($calendarUser) { |
---|
74 | foreach($calendarUser as $time => $title) { |
---|
75 | $return.= "<hourofday><timeid>$date$time</timeid><title>$title</title></hourofday>"; |
---|
76 | } |
---|
77 | } |
---|
78 | |
---|
79 | return $return.$this->getWorkDay($date); |
---|
80 | } |
---|
81 | |
---|
82 | function getViewWeek($params){ |
---|
83 | $userId = $params['userId']; |
---|
84 | $date = $params['date']; |
---|
85 | $tstamp=mktime(0,0,0,substr($date,4,2),substr($date,6,2),substr($date,0,4)); |
---|
86 | $Tdate = getdate($tstamp); |
---|
87 | $calendarUser = $this->getUserCalendar('week',$date, $userId); |
---|
88 | $return = "<today>$date</today>"; |
---|
89 | |
---|
90 | for ($dayofweek = 0; $dayofweek < 7; $dayofweek++){ |
---|
91 | $offset = $Tdate['wday'] - $dayofweek; |
---|
92 | $weekday = getdate($tstamp - ($offset*86400)); |
---|
93 | $this -> weekDate[$dayofweek] = $weekday['year'].($weekday['mon'] < 10 ? "0" : "" ).$weekday['mon'].($weekday['mday'] < 10 ? "0" : "" ).$weekday['mday']; |
---|
94 | if($calendarUser[$this -> weekDate[$dayofweek]]) { |
---|
95 | foreach($calendarUser[$this -> weekDate[$dayofweek]] as $time => $title) { |
---|
96 | $return.= "<hourofday><datetime>".$this -> weekDate[$dayofweek]."$time</datetime><title>$title</title></hourofday>"; |
---|
97 | } |
---|
98 | } |
---|
99 | } |
---|
100 | return $return.$this->getWorkDay($date).$this->getWorkWeek($date); |
---|
101 | } |
---|
102 | |
---|
103 | function getViewMonth($params){ |
---|
104 | $userId = $params['userId']; |
---|
105 | return ''; |
---|
106 | } |
---|
107 | function getViewYear($params){ |
---|
108 | $userId = $params['userId']; |
---|
109 | return ''; |
---|
110 | } |
---|
111 | } |
---|
112 | ?> |
---|