Documentation

Kronolith_Icalendar_Handler_Dav extends Kronolith_Icalendar_Handler_Base
in package

Wraps logic responsible for importing iCalendar data via DAV taking into account necessary steps to deal with recurrence series and exceptions.

Tags
author

Michael J Rubinsky mrubinsk@horde.org

license

http://www.horde.org/licenses/gpl GPL

category

Horde

Table of Contents

$_calendar  : string
The calendar id to be imported into.
$_dav  : Horde_Dav_Storage_Base
The DAV storage driver.
$_driver  : Kronolith_Driver
$_exceptions  : array<string|int, mixed>
$_existingEvent  : Kronolith_Event
Temporary cache of the existing copy of an event being replaced.
$_iCal  : Horde_Icalendar
The iCalendar data.
$_noItips  : array<string|int, mixed>
List of attendees that should not be sent iTip notifications.
$_oldAttendees  : Kronolith_Attendee_List
List of attendess that have been previously invited. Used to detect if attendees are removed and to send ITIP_CANCEL to these attendees.
$_params  : array<string|int, mixed>
$_storage  : Kronolith_Icalendar_Storage
The iCalendar storage driver.
__construct()  : mixed
process()  : array<string|int, mixed>
Perform the import.
_postSave()  : mixed
Responsible for any logic needed after each event is saved. Only called when base event (or an event with no recurrence) is saved. Exception events are not passed.
_preSave()  : bool
Responsible for any logic needed before the event is saved. Called for EVERY component in the iCalendar object. Returning false from this method will cause the current component to be ignored. Returning true causes it to be processed.
_process()  : array<string|int, mixed>
Process the iCalendar data.
_relevantEventChanges()  : bool
Is an event update worthy of an Itip update?

Properties

$_calendar

The calendar id to be imported into.

protected string $_calendar

$_dav

The DAV storage driver.

protected Horde_Dav_Storage_Base $_dav

$_exceptions

protected array<string|int, mixed> $_exceptions = array()

$_existingEvent

Temporary cache of the existing copy of an event being replaced.

protected Kronolith_Event $_existingEvent

$_iCal

The iCalendar data.

protected Horde_Icalendar $_iCal

$_noItips

List of attendees that should not be sent iTip notifications.

protected array<string|int, mixed> $_noItips = array()

$_oldAttendees

List of attendess that have been previously invited. Used to detect if attendees are removed and to send ITIP_CANCEL to these attendees.

protected Kronolith_Attendee_List $_oldAttendees

$_params

protected array<string|int, mixed> $_params

Methods

__construct()

public __construct(Horde_Icalendar $iCal, Kronolith_Driver $driver, Kronolith_Icalendar_Storage $storage[, array<string|int, mixed> $params = [] ]) : mixed
Parameters
$iCal : Horde_Icalendar

The iCalendar data.

$driver : Kronolith_Driver

The Kronolith driver.

$storage : Kronolith_Icalendar_Storage

The raw Icalendar Storage driver.

$params : array<string|int, mixed> = []

Any additional parameters needed for the importer. For this driver we require: 'object' - contains the DAV identifier for the (base) event.

Return values
mixed

process()

Perform the import.

public process() : array<string|int, mixed>
Return values
array<string|int, mixed>

A hash of UID => id.

_postSave()

Responsible for any logic needed after each event is saved. Only called when base event (or an event with no recurrence) is saved. Exception events are not passed.

protected _postSave(Kronolith_Event $event) : mixed
Parameters
$event : Kronolith_Event

The event object.

Return values
mixed

_preSave()

Responsible for any logic needed before the event is saved. Called for EVERY component in the iCalendar object. Returning false from this method will cause the current component to be ignored. Returning true causes it to be processed.

protected _preSave(Horde_Icalendar $component) : bool
Parameters
$component : Horde_Icalendar

The iCalendar component.

Return values
bool

True to continue processing, false to ignore.

_process()

Process the iCalendar data.

protected _process() : array<string|int, mixed>
Tags
throws
Kronolith_Exception
Return values
array<string|int, mixed>

A hash of UID => id.

_relevantEventChanges()

Is an event update worthy of an Itip update?

protected _relevantEventChanges(Kronolith_Event $event[, Kronolith_Event $existing = null ]) : bool

TODO: Factor out to separate class Prevent update itip spam for minor changes Relevant:

  • change of attendee list or resources
  • title
  • description
  • location
  • recurrences and exceptions
  • url
  • private flag changes
  • timezone
  • start & end time

Irrelevant:

  • noop updates
  • alerts & snoozes
  • X- attributes
  • tags
  • status
  • everything else
Parameters
$event : Kronolith_Event
$existing : Kronolith_Event = null
Return values
bool

Search results