From c6d4d949c68c965366fdec55211b2df0e3bacb92 Mon Sep 17 00:00:00 2001 From: Jan Schneider Date: Fri, 13 Mar 2009 17:19:26 +0100 Subject: [PATCH] Implement getEvent(). --- kronolith/lib/Driver/Holidays.php | 25 +++++++++++++++++++++++-- kronolith/lib/Event/Holidays.php | 3 +-- 2 files changed, 24 insertions(+), 4 deletions(-) diff --git a/kronolith/lib/Driver/Holidays.php b/kronolith/lib/Driver/Holidays.php index ed3b51c9c..8152cdd6a 100644 --- a/kronolith/lib/Driver/Holidays.php +++ b/kronolith/lib/Driver/Holidays.php @@ -78,6 +78,28 @@ class Kronolith_Driver_Holidays extends Kronolith_Driver return $results; } + public function getEvent($eventId = null) + { + list($id, $date) = explode('-', $eventId, 2); + $year = substr($date, 0, 4); + + $dh = Date_Holidays::factory($this->_calendar, $year, $this->_params['language']); + if (Date_Holidays::isError($dh)) { + Horde::logMessage(sprintf('Factory was unable to produce driver object for driver %s in year %s with locale %s', + $this->_calendar, $year, $this->_params['language']), + __FILE__, __LINE__, PEAR_LOG_ERR); + return false; + } + $dh->addTranslation($this->_params['language']); + + $event = $dh->getHoliday($id); + if (is_a($event, 'PEAR_Error')) { + return $event; + } + + return new Kronolith_Event_Holidays($this, $event); + } + private function _getEvents($dh, $startDate, $endDate) { $events = array(); @@ -96,8 +118,7 @@ class Kronolith_Driver_Holidays extends Kronolith_Driver } foreach ($holidays as $holiday) { - $event = new Kronolith_Event_Holidays($this); - $event->fromDriver($holiday); + $event = new Kronolith_Event_Holidays($this, $holiday); $events[] = $event; } } diff --git a/kronolith/lib/Event/Holidays.php b/kronolith/lib/Event/Holidays.php index 97fe409ad..f384c8814 100644 --- a/kronolith/lib/Event/Holidays.php +++ b/kronolith/lib/Event/Holidays.php @@ -36,11 +36,10 @@ class Kronolith_Event_Holidays extends Kronolith_Event $this->stored = true; $this->initialized = true; $this->setTitle(String::convertCharset($dhEvent->getTitle(), 'UTF-8')); - $this->setId($dhEvent->getInternalName()); - $this->start = new Horde_Date($dhEvent->_date->getTime()); $this->end = new Horde_Date($this->start); $this->end->mday++; + $this->setId($dhEvent->getInternalName() . '-' . $this->start->dateString()); } /** -- 2.11.0