= " . $date; $ret = $db->getResultArray($queryStr); return $ret; } function getEventsInInterval($start, $stop){ global $db; $queryStr = "SELECT * FROM tblEvents WHERE ( start <= " . (int) $start . " AND stop >= " . (int) $start . " ) ". "OR ( start <= " . (int) $stop . " AND stop >= " . (int) $stop . " ) ". "OR ( start >= " . (int) $start . " AND stop <= " . (int) $stop . " )"; $ret = $db->getResultArray($queryStr); return $ret; } function addEvent($from, $to, $name, $comment ){ global $db,$user; $queryStr = "INSERT INTO tblEvents (name, comment, start, stop, date, userID) VALUES ". "(".$db->qstr($name).", ".$db->qstr($comment).", ".(int) $from.", ".(int) $to.", ".mktime().", ".$user->getID().")"; $ret = $db->getResult($queryStr); return $ret; } function getEvent($id){ if (!is_numeric($id)) return false; global $db; $queryStr = "SELECT * FROM tblEvents WHERE id = " . (int) $id; $ret = $db->getResultArray($queryStr); if (is_bool($ret) && $ret == false) return false; else if (count($ret) != 1) return false; return $ret[0]; } function editEvent($id, $from, $to, $name, $comment ){ if (!is_numeric($id)) return false; global $db; $queryStr = "UPDATE tblEvents SET start = " . (int) $from . ", stop = " . (int) $to . ", name = " . $db->qstr($name) . ", comment = " . $db->qstr($comment) . ", date = " . mktime() . " WHERE id = ". (int) $id; $ret = $db->getResult($queryStr); return $ret; } function delEvent($id){ if (!is_numeric($id)) return false; global $db; $queryStr = "DELETE FROM tblEvents WHERE id = " . (int) $id; $ret = $db->getResult($queryStr); return $ret; } // utilities /////////////////////////////////////////////////////////////////// function generateCalendarArrays() { global $dayNames,$monthNames,$dayNamesLong; $monthNames = array( getMLText("january"), getMLText("february"), getMLText("march"), getMLText("april"), getMLText("may"), getMLText("june"), getMLText("july"), getMLText("august"), getMLText("september"), getMLText("october"), getMLText("november"), getMLText("december") ); $dayNamesLong = array( getMLText("sunday"), getMLText("monday"), getMLText("tuesday"), getMLText("wednesday"), getMLText("thursday"), getMLText("friday"), getMLText("saturday") ); $dayNames = array(); foreach ( $dayNamesLong as $dn ){ $dayNames[] = substr($dn,0,2); } } // Calculate the number of days in a month, taking into account leap years. function getDaysInMonth($month, $year) { if ($month < 1 || $month > 12) return 0; $daysInMonth = array(31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31); $d = $daysInMonth[$month - 1]; if ($month == 2){ if ($year%4 == 0){ if ($year%100 == 0){ if ($year%400 == 0) $d = 29; } else $d = 29; } } return $d; } // Adjust dates to allow months > 12 and < 0 and day<0 or day>days of the month function adjustDate(&$day,&$month,&$year) { $d=getDate(mktime(12,0,0, $month, $day, $year)); $month=$d["mon"]; $day=$d["mday"]; $year=$d["year"]; } // output ////////////////////////////////////////////////////////////////////// // Generate the HTML for a given month function getMonthHTML($month, $year) { global $dayNames,$monthNames,$settings; if (!isset($monthNames)) generateCalendarArrays(); if (!isset($dayNames)) generateCalendarArrays(); $startDay = $settings->_firstDayOfWeek; $day=1; adjustDate($day,$month,$year); $daysInMonth = getDaysInMonth($month, $year); $date = getdate(mktime(12, 0, 0, $month, 1, $year)); $first = $date["wday"]; $monthName = $monthNames[$month - 1]; $s = "\n"; $s .= "\n"; $s .= "\n"; ; $s .= "\n"; $s .= "\n"; $s .= "\n"; $s .= "\n"; $s .= "\n"; $s .= "\n"; $s .= "\n"; $s .= "\n"; $s .= "\n"; $s .= "\n"; // We need to work out what date to start at so that the first appears in the correct column $d = $startDay + 1 - $first; while ($d > 1) $d -= 7; // Make sure we know when today is, so that we can use a different CSS style $today = getdate(time()); while ($d <= $daysInMonth) { $s .= "\n"; for ($i = 0; $i < 7; $i++){ $class = ($year == $today["year"] && $month == $today["mon"] && $d == $today["mday"]) ? "today" : ""; $s .= "\n"; $d++; } $s .= "\n"; } $s .= "
".$monthName."
" . $dayNames[($startDay)%7] . "" . $dayNames[($startDay+1)%7] . "" . $dayNames[($startDay+2)%7] . "" . $dayNames[($startDay+3)%7] . "" . $dayNames[($startDay+4)%7] . "" . $dayNames[($startDay+5)%7] . "" . $dayNames[($startDay+6)%7] . "
"; if ($d > 0 && $d <= $daysInMonth){ $s .= "".$d.""; } else $s .= " "; $s .= "
\n"; return $s; } function printYearTable($year) { print "\n"; print ""; print "\n"; print "\n"; print "\n"; print "\n"; print "\n"; print "\n"; print "\n"; print "\n"; print "\n"; print "\n"; print "\n"; print "\n"; print "\n"; print "\n"; print "\n"; print "\n"; print "\n"; print "
" . getMonthHTML(1 , $year) ."" . getMonthHTML(2 , $year) ."" . getMonthHTML(3 , $year) ."" . getMonthHTML(4 , $year) ."
" . getMonthHTML(5 , $year) ."" . getMonthHTML(6 , $year) ."" . getMonthHTML(7 , $year) ."" . getMonthHTML(8 , $year) ."
" . getMonthHTML(9 , $year) ."" . getMonthHTML(10, $year) ."" . getMonthHTML(11, $year) ."" . getMonthHTML(12, $year) ."
\n"; } ?>