Overview

Packages

  • Kronolith
  • None

Classes

  • Kronolith
  • Kronolith_Ajax_Application
  • Kronolith_Ajax_Imple_ContactAutoCompleter
  • Kronolith_Ajax_Imple_Embed
  • Kronolith_Ajax_Imple_TagActions
  • Kronolith_Ajax_Imple_TagAutoCompleter
  • Kronolith_Api
  • Kronolith_Calendar
  • Kronolith_Calendar_External
  • Kronolith_Calendar_External_Tasks
  • Kronolith_Calendar_Holiday
  • Kronolith_Calendar_Internal
  • Kronolith_Calendar_Remote
  • Kronolith_Calendar_Resource
  • Kronolith_Calendars_Base
  • Kronolith_Calendars_Default
  • Kronolith_Calendars_Kolab
  • Kronolith_Day
  • Kronolith_Driver
  • Kronolith_Driver_Holidays
  • Kronolith_Driver_Horde
  • Kronolith_Driver_Ical
  • Kronolith_Driver_Kolab
  • Kronolith_Driver_Mock
  • Kronolith_Driver_Resource
  • Kronolith_Driver_Sql
  • Kronolith_Event
  • Kronolith_Event_Holidays
  • Kronolith_Event_Horde
  • Kronolith_Event_Ical
  • Kronolith_Event_Kolab
  • Kronolith_Event_Resource
  • Kronolith_Event_Sql
  • Kronolith_Exception
  • Kronolith_Factory_Calendars
  • Kronolith_Factory_Geo
  • Kronolith_Form_CreateCalendar
  • Kronolith_Form_CreateResource
  • Kronolith_Form_CreateResourceGroup
  • Kronolith_Form_DeleteCalendar
  • Kronolith_Form_DeleteResource
  • Kronolith_Form_DeleteResourceGroup
  • Kronolith_Form_EditCalendar
  • Kronolith_Form_EditRemoteCalendar
  • Kronolith_Form_EditResource
  • Kronolith_Form_EditResourceGroup
  • Kronolith_Form_SubscribeRemoteCalendar
  • Kronolith_Form_UnsubscribeRemoteCalendar
  • Kronolith_FreeBusy
  • Kronolith_FreeBusy_View
  • Kronolith_FreeBusy_View_Day
  • Kronolith_FreeBusy_View_Month
  • Kronolith_FreeBusy_View_Week
  • Kronolith_FreeBusy_View_Workweek
  • Kronolith_Geo_Base
  • Kronolith_Geo_Mysql
  • Kronolith_Geo_Sql
  • Kronolith_LoginTasks_SystemTask_Upgrade
  • Kronolith_LoginTasks_Task_PurgeEvents
  • Kronolith_Notification_Listener_AjaxStatus
  • Kronolith_Resource
  • Kronolith_Resource_Base
  • Kronolith_Resource_Group
  • Kronolith_Resource_Single
  • Kronolith_Storage
  • Kronolith_Storage_Kolab
  • Kronolith_Storage_Sql
  • Kronolith_Tagger
  • Kronolith_Test
  • Kronolith_View_Day
  • Kronolith_View_DeleteEvent
  • Kronolith_View_EditEvent
  • Kronolith_View_Event
  • Kronolith_View_ExportEvent
  • Kronolith_View_Month
  • Kronolith_View_Week
  • Kronolith_View_WorkWeek
  • Kronolith_View_Year
  • Overview
  • Package
  • Class
  • Tree
  1: <?php
  2: /**
  3:  * The Kronolith_View_Event:: class provides an API for viewing events.
  4:  *
  5:  * @author  Chuck Hagenbuch <chuck@horde.org>
  6:  * @package Kronolith
  7:  */
  8: class Kronolith_View_Event
  9: {
 10:     /**
 11:      *
 12:      * @var Kronolith_Event
 13:      */
 14:     protected $_event;
 15: 
 16:     /**
 17:      * @param Kronolith_Event $event
 18:      */
 19:     public function __construct(Kronolith_Event $event)
 20:     {
 21:         $this->_event = $event;
 22:     }
 23: 
 24:     public function __get($property)
 25:     {
 26:         switch ($property) {
 27:         case 'event':
 28:             return $this->_event;
 29:         default:
 30:             throw new Kronolith_Exception('Property does not exist.');
 31:         }
 32:     }
 33: 
 34:     public function getTitle()
 35:     {
 36:         if (!$this->_event) {
 37:             return _("Not Found");
 38:         }
 39:         if (is_string($this->_event)) {
 40:             return $this->_event;
 41:         }
 42:         return $this->_event->getTitle();
 43:     }
 44: 
 45:     public function link()
 46:     {
 47:         return $this->_event->getViewUrl();
 48:     }
 49: 
 50:     public function html($active = true)
 51:     {
 52:         if (!$this->_event) {
 53:             echo '<h3>' . _("Event not found") . '</h3>';
 54:             exit;
 55:         }
 56:         if (is_string($this->_event)) {
 57:             echo '<h3>' . $this->_event . '</h3>';
 58:             exit;
 59:         }
 60: 
 61:         global $conf, $prefs;
 62: 
 63:         $createdby = '';
 64:         $modifiedby = '';
 65:         $userId = $GLOBALS['registry']->getAuth();
 66:         if ($this->_event->uid) {
 67:             /* Get the event's history. */
 68:             try {
 69:                 $log = $GLOBALS['injector']->getInstance('Horde_History')
 70:                     ->getHistory('kronolith:' . $this->_event->calendar . ':' . $this->_event->uid);
 71:                 foreach ($log as $entry) {
 72:                     switch ($entry['action']) {
 73:                     case 'add':
 74:                         $created = new Horde_Date($entry['ts']);
 75:                         if ($userId != $entry['who']) {
 76:                             $createdby = sprintf(_("by %s"), Kronolith::getUserName($entry['who']));
 77:                         } else {
 78:                             $createdby = _("by me");
 79:                         }
 80:                         break;
 81: 
 82:                     case 'modify':
 83:                         $modified = new Horde_Date($entry['ts']);
 84:                         if ($userId != $entry['who']) {
 85:                             $modifiedby = sprintf(_("by %s"), Kronolith::getUserName($entry['who']));
 86:                         } else {
 87:                             $modifiedby = _("by me");
 88:                         }
 89:                         break;
 90:                     }
 91:                 }
 92:             } catch (Exception $e) {}
 93:         }
 94: 
 95:         $creatorId = $this->_event->creator;
 96:         $description = $this->_event->description;
 97:         $location = $this->_event->location;
 98:         $eventurl = $this->_event->url;
 99:         $private = $this->_event->isPrivate();
100:         $owner = Kronolith::getUserName($creatorId);
101:         $status = Kronolith::statusToString($this->_event->status);
102:         $attendees = $this->_event->attendees;
103:         $resources = $this->_event->getResources();
104:         if ($datetime = Horde_Util::getFormData('datetime')) {
105:             $datetime = new Horde_Date($datetime);
106:             $month = $datetime->month;
107:             $year = $datetime->year;
108:         } else {
109:             $month = (int)Horde_Util::getFormData('month', date('n'));
110:             $year = (int)Horde_Util::getFormData('year', date('Y'));
111:         }
112: 
113:         $dateFormat = $prefs->getValue('date_format');
114:         $timeFormat = $prefs->getValue('twentyFour') ? 'G:i' : 'g:ia';
115: 
116:         // Tags
117:         $tags = implode(', ', $this->_event->tags);
118: 
119: 
120:         echo '<div id="Event"' . ($active ? '' : ' style="display:none"') . '>';
121:         require KRONOLITH_TEMPLATES . '/view/view.inc';
122:         echo '</div>';
123: 
124:         if ($active && $GLOBALS['browser']->hasFeature('dom')) {
125:             /* We check for read permissions, because we can always save a
126:              * copy if we can read the event. */
127:             if ($this->_event->hasPermission(Horde_Perms::READ) &&
128:                 Kronolith::getDefaultCalendar(Horde_Perms::EDIT)) {
129:                 $edit = new Kronolith_View_EditEvent($this->_event);
130:                 $edit->html(false);
131:             }
132:             if ($this->_event->hasPermission(Horde_Perms::DELETE)) {
133:                 $delete = new Kronolith_View_DeleteEvent($this->_event);
134:                 $delete->html(false);
135:             }
136:         }
137:     }
138: 
139:     public function getName()
140:     {
141:         return 'Event';
142:     }
143: 
144: }
145: 
API documentation generated by ApiGen