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);
     }
 }
Exemplo n.º 2
0
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;
}
Exemplo n.º 3
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;
 }
Exemplo n.º 4
0
## 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