[632] | 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 | ?> |
---|