static $map = array(
- 'hk' => 'http://www.1823.gov.hk/common/ical/gc/en.ics'
+ 'hk' => 'http://www.1823.gov.hk/common/ical/gc/en.ics',
+ 'cny' => 'https://raw.githubusercontent.com/andrewlkho/cny.ics/master/cny.ics', // CNY
);
+
+ function applyFilters($q, $au, $roo)
+ {
+ if (isset($q['date_from'])) {
+ $dt = date("Y-m-d",strtotime($q['date_from']));
+ $this->whereAdd("holiday_date > '$dt'");
+ }
+ if (isset($q['date_to'])) {
+ $dt = date("Y-m-d",strtotime($q['date_to']));
+ $this->whereAdd("holiday_date < '$dt'");
+ }
+
+
+ }
+
+
function updateHolidays($country)
{
- $data = file_get_contents("http://www.1823.gov.hk/common/ical/gc/en.ics");
+ $data = file_get_contents("https://www.1823.gov.hk/common/ical/gc/en.ics", false,
+ stream_context_create(array(
+ "ssl"=>array(
+ "verify_peer"=>false,
+ "verify_peer_name"=>false,
+ ),
+ ))
+ );
$vevents = explode('BEGIN:VEVENT', $data);
$fmt = substr($matches[1], 0, 4) . "-" . substr($matches[1], 4, 2) . "-" . substr($matches[1], 6, 2);
$end_dt = date('Y-m-d', strtotime($fmt));
}
-
+ if(preg_match('/^SUMMARY[^:]*:(.*)/', $line, $matches)){
+ $name = trim($matches[1]);
+ }
}
if(empty($start_dt) || empty($end_dt)){
continue;
}
-
+ //DB_DataObject::DebugLevel(1);
//var_dump($start_dt); var_dump($end_dt); exit;
for ($i = strtotime($start_dt); $i < strtotime($end_dt) ; $i += (60 * 60 * 24)) {
$d->holiday_date = date('Y-m-d', $i);
if (!$d->count()) {
$d->insert();
- }
+
+ } else {
+ $d->find(true);
+ $dd = clone($d);
+ $d->name = $name;
+ $d->update($dd);
+ }
}
}
}
+ function isHoliday($country, $date)
+ {
+ $d = DB_DataObject::Factory('core_holiday');
+ $d->country = $country;
+ $d->holiday_date = $date;
+ return $d->count();
+ }
}