1: <?php
2: /**
3: * Copyright 2006-2012 Horde LLC (http://www.horde.org/)
4: *
5: * See the enclosed file COPYING for license information (GPL). If you
6: * did not receive this file, see http://www.horde.org/licenses/gpl.
7: *
8: * @see http://pear.php.net/packages/Date_Holidays
9: * @author Stephan Hohmann <webmaster@dasourcerer.net>
10: * @package Kronolith
11: */
12: class Kronolith_Event_Holidays extends Kronolith_Event
13: {
14: /**
15: * The type of the calender this event exists on.
16: *
17: * @var string
18: */
19: public $calendarType = 'holiday';
20:
21: /**
22: * The status of this event.
23: *
24: * @var integer
25: */
26: public $status = Kronolith::STATUS_FREE;
27:
28: /**
29: * Whether this is an all-day event.
30: *
31: * @var boolean
32: */
33: public $allday = true;
34:
35: /**
36: * Parse in an event from the driver.
37: *
38: * @param Date_Holidays_Holiday $dhEvent A holiday returned
39: * from the driver
40: */
41: public function fromDriver($dhEvent)
42: {
43: $this->stored = true;
44: $this->initialized = true;
45: $this->title = $dhEvent->getTitle();
46: $this->start = new Horde_Date($dhEvent->getDate()->getDate());
47: $this->end = new Horde_Date($this->start);
48: $this->end->mday++;
49: $this->id = $dhEvent->getInternalName() . '-' . $this->start->dateString();
50: }
51:
52: /**
53: * Encapsulates permissions checking.
54: *
55: * @param integer $permission The permission to check for.
56: * @param string $user The user to check permissions for.
57: *
58: * @return boolean
59: */
60: public function hasPermission($permission, $user = null)
61: {
62: switch ($permission) {
63: case Horde_Perms::SHOW:
64: case Horde_Perms::READ:
65: return true;
66:
67: default:
68: return false;
69: }
70: }
71:
72: /**
73: * Return this events title.
74: *
75: * @return string The title of this event
76: */
77: public function getTitle()
78: {
79: return $this->title;
80: }
81:
82: /**
83: * Is this event an all-day event?
84: *
85: * Since there are no holidays lasting only a few hours, this is always
86: * true.
87: *
88: * @return boolean <code>true</code>
89: */
90: public function isAllDay()
91: {
92: return true;
93: }
94:
95: }
96: