private static function loadHolidaysSettings() { global $AppUI; if (is_null(self::$holiday_manual)) { // Query database for settings $q = new w2p_Database_Query(); $q->addTable("holiday_settings"); $q->addQuery("holiday_manual, holiday_auto, holiday_driver, holiday_filter"); $settings = $q->loadHash(); self::$holiday_manual = $settings['holiday_manual']; self::$holiday_auto = $settings['holiday_auto']; self::$holiday_driver = $settings['holiday_driver']; self::$holiday_filter = $settings['holiday_filter']; } if (self::$holiday_auto && self::$holiday_filter >= 0 && is_null(self::$holiday_filter_instance)) { $filters_alloc = Date_Holidays::getInstalledFilters(); require_once dirname(__FILE__) . "/PEAR/Holidays/Filter/" . str_replace("_", "/", $filters_alloc[self::$holiday_filter]['title']) . ".php"; $filterclass = "Date_Holidays_Filter_" . $filters_alloc[self::$holiday_filter]['title']; self::$holiday_filter_instance = new $filterclass(); } if (self::$holiday_auto && self::$holiday_driver >= 0 && is_null(self::$holiday_driver_instance)) { $drivers_alloc = Date_Holidays::getInstalledDrivers(); self::$holiday_driver_instance = Date_Holidays::factory($drivers_alloc[self::$holiday_driver]['title'], null, $AppUI->user_locale); } }
function isHoliday($date = 0) { // Query database for settings $holiday_manual = db_loadResult('SELECT holiday_manual FROM holiday_settings'); $holiday_auto = db_loadResult('SELECT holiday_auto FROM holiday_settings'); $holiday_driver = db_loadResult('SELECT holiday_driver FROM holiday_settings'); if (!$date) { $date = new CDate(); } if ($holiday_manual) { // Check whether the date is blacklisted $sql = "SELECT * FROM holiday "; $sql .= "WHERE ( date(holiday_start_date) <= '"; $sql .= $date->format('%Y-%m-%d'); $sql .= "' AND date(holiday_end_date) >= '"; $sql .= $date->format('%Y-%m-%d'); $sql .= "' AND holiday_white=0 ) "; $sql .= "OR ( "; $sql .= " DATE_FORMAT(holiday_start_date, '%m-%d') <= '"; $sql .= $date->format('%m-%d'); $sql .= "' AND DATE_FORMAT(holiday_end_date, '%m-%d') >= '"; $sql .= $date->format('%m-%d'); $sql .= "' AND holiday_annual=1"; $sql .= " AND holiday_white=0 ) "; if (db_loadResult($sql)) { return 0; } // Check if we have a whitelist item for this date $sql = "SELECT * FROM holiday "; $sql .= "WHERE ( date(holiday_start_date) <= '"; $sql .= $date->format('%Y-%m-%d'); $sql .= "' AND date(holiday_end_date) >= '"; $sql .= $date->format('%Y-%m-%d'); $sql .= "' AND holiday_white=1 ) "; $sql .= "OR ( "; $sql .= " DATE_FORMAT(holiday_start_date, '%m-%d') <= '"; $sql .= $date->format('%m-%d'); $sql .= "' AND DATE_FORMAT(holiday_end_date, '%m-%d') >= '"; $sql .= $date->format('%m-%d'); $sql .= "' AND holiday_annual=1"; $sql .= " AND holiday_white=1 ) "; if (db_loadResult($sql)) { return 1; } } if ($holiday_auto) { // Still here? Ok, lets poll the automatic system $drivers_alloc = Date_Holidays::getInstalledDrivers(); $driver_object = Date_Holidays::factory($drivers_alloc[$holiday_driver]['title'], $date->getYear(), 'en_EN'); if (!Date_Holidays::isError($driver_object)) { if ($driver_object->getHolidayForDate($date)) { return 1; } } } // No hits, must be a working day return 0; }
/** * Return list of all available holidays drivers. * * @return array The available holidays. */ protected function _getAllHolidays() { $this->_allHolidays = array(); if (!empty($GLOBALS['conf']['holidays']['enable'])) { if (class_exists('Date_Holidays')) { $dh = new Date_Holidays(); foreach ($dh->getInstalledDrivers() as $driver) { if ($driver['id'] == 'Composite') { continue; } $this->_allHolidays[$driver['id']] = new Kronolith_Calendar_Holiday(array('driver' => $driver)); ksort($this->_allHolidays); } } } return $this->_allHolidays; }
## Vegard Fiksdal (fiksdal@sensorlink.no) ## $action = @$_REQUEST["action"]; if ($action == "update") { $holiday_manual = $_POST["holiday_manual"]; $holiday_auto = $_POST["holiday_auto"]; $holiday_driver = $_POST["holiday_driver"]; db_exec("UPDATE holiday_settings SET holiday_manual=" . ($holiday_manual + 0)); db_exec("UPDATE holiday_settings SET holiday_auto=" . ($holiday_auto + 0)); db_exec("UPDATE holiday_settings SET holiday_driver=" . ($holiday_driver + 0)); $AppUI->setMsg("Settings updated"); $AppUI->redirect(); } require_once 'PEAR/Holidays.php'; // Filter out available driver titles (TODO: Bother checking up the proper API) $drivers_alloc = Date_Holidays::getInstalledDrivers(); for ($i = 0; $drivers_alloc[$i]; $i++) { $drivers_available[$i] = $drivers_alloc[$i]['title']; } // Query database $holiday_manual = db_loadResult('SELECT holiday_manual FROM holiday_settings'); $holiday_auto = db_loadResult('SELECT holiday_auto FROM holiday_settings'); $holiday_driver = db_loadResult('SELECT holiday_driver FROM holiday_settings'); ?> <form name="AddEdit" method="post"> <input name="action" type="hidden" value="update"> <table border="1" cellpadding="4" cellspacing="0" width="100%" class="std"> <tr> <td><?php