Kronolith_Driver_Sql
extends Kronolith_Driver
in package
The Kronolith_Driver_Sql class implements the Kronolith_Driver API for a SQL backend.
Copyright 1999-2017 Horde LLC (http://www.horde.org/)
See the enclosed file LICENSE for license information (GPL). If you did not receive this file, see http://www.horde.org/licenses/gpl.
Tags
Table of Contents
- $backgroundColor : string
- The HTML background color to be used for this event.
- $calendar : string
- The current calendar.
- $foregroundColor : string
- The HTML foreground color to be used for this event.
- $_cache : array<string|int, mixed>
- Cache events as we fetch them to avoid fetching the same event from the DB twice.
- $_columns : array<string|int, mixed>
- Column information as Horde_Db_Adapter_Base_Column objects.
- $_db : Horde_Db_Adapter
- The object handle for the current database connection.
- $_eventClass : string
- The class name of the event object to instantiate.
- $_params : array<string|int, mixed>
- A hash containing any parameters for the current driver.
- $_errormsg : string
- An error message to throw when something is wrong.
- __construct() : mixed
- Constructor.
- backgroundColor() : string
- Returns the background color of the current calendar.
- colors() : array<string|int, mixed>
- Returns the colors of the current calendar.
- convertBlobs() : array<string|int, mixed>
- Converts TEXT/CLOB fields in an event.
- convertFromDriver() : mixed
- Converts a value from the driver's charset to the default charset.
- convertToDriver() : mixed
- Converts a value from the default charset to the driver's charset.
- countEvents() : int
- Returns the number of events in the current calendar.
- delete() : mixed
- Delete all of a calendar's events.
- deleteEvent() : mixed
- Deletes an event.
- exists() : string|bool
- Checks if the event's UID already exists and returns all event ids with that UID.
- filterEventsByCalendar() : array<string|int, mixed>
- Filters a list of events to return only those that belong to certain calendars.
- getByUID() : Kronolith_Event
- Get an event or events with the given UID value.
- getEvent() : mixed
- Stub to be overridden in the child class.
- getParam() : mixed
- Returns a configuration for this driver.
- initialize() : mixed
- Attempts to open a connection to the SQL server.
- listAlarms() : array<string|int, mixed>
- Stub to be overridden in the child class.
- listEvents() : mixed
- Lists all events in the time range, optionally restricting results to only events with alarms.
- move() : mixed
- Moves an event to a new calendar.
- nextRecurrence() : Horde_Date|bool
- Finds the next recurrence of $eventId that's after $afterDate.
- open() : mixed
- Selects a calendar as the currently opened calendar.
- removeUserData() : mixed
- Stub for child class to override if it can implement.
- saveEvent() : string
- Saves an event in the backend.
- search() : mixed
- Searches a calendar.
- setParam() : mixed
- Sets a configuration for this driver.
- setParams() : mixed
- Sets all configuration parameters for this driver.
- supportsTimezones() : bool
- Returns whether this driver supports per-event timezones.
- synchronize() : mixed
- Synchronize if driver needs to.
- _addEvent() : string
- Adds an event to the backend.
- _addTags() : mixed
- Helper function to add tags from a newly creted event to the tagger.
- _buildEventHistory() : array<string|int, mixed>
- Builds a history hash for a modified event.
- _deleteEvent() : Kronolith_Event
- Deletes an event.
- _handleNotifications() : mixed
- Wrapper for sending notifications, so that we can overwrite this action in Kronolith_Driver_Resource.
- _listEvents() : mixed
- Lists all events in the time range, optionally restricting results to only events with alarms.
- _move() : Kronolith_Event
- Moves an event to a new calendar.
- _updateEvent() : string
- Updates an existing event in the backend.
- _updateTags() : mixed
- Helper function to update an existing event's tags to tagger storage.
- _listEventsConditional() : array<string|int, mixed>
- Lists all events that satisfy the given conditions.
Properties
$backgroundColor
The HTML background color to be used for this event.
public
string
$backgroundColor
= '#ddd'
$calendar
The current calendar.
public
string
$calendar
$foregroundColor
The HTML foreground color to be used for this event.
public
string
$foregroundColor
= '#000'
$_cache
Cache events as we fetch them to avoid fetching the same event from the DB twice.
protected
array<string|int, mixed>
$_cache
= array()
$_columns
Column information as Horde_Db_Adapter_Base_Column objects.
protected
array<string|int, mixed>
$_columns
= array()
$_db
The object handle for the current database connection.
protected
Horde_Db_Adapter
$_db
$_eventClass
The class name of the event object to instantiate.
protected
string
$_eventClass
= 'Kronolith_Event_Sql'
Can be overwritten by sub-classes.
$_params
A hash containing any parameters for the current driver.
protected
array<string|int, mixed>
$_params
= array()
$_errormsg
An error message to throw when something is wrong.
private
string
$_errormsg
Methods
__construct()
Constructor.
public
__construct([array<string|int, mixed> $params = array() ][, string $errormsg = null ]) : mixed
Just stores the $params in our newly-created object. All other work is done by .
Parameters
- $params : array<string|int, mixed> = array()
-
Any parameters needed for this driver.
- $errormsg : string = null
-
A custom error message to use.
Return values
mixed —backgroundColor()
Returns the background color of the current calendar.
public
backgroundColor() : string
Return values
string —The calendar color.
colors()
Returns the colors of the current calendar.
public
colors() : array<string|int, mixed>
Return values
array<string|int, mixed> —The calendar background and foreground color.
convertBlobs()
Converts TEXT/CLOB fields in an event.
public
convertBlobs(array<string|int, mixed> $event) : array<string|int, mixed>
Parameters
- $event : array<string|int, mixed>
-
An event hash with TEXT/CLOB columns.
Return values
array<string|int, mixed> —The event with TEXT/CLOB columns converted to strings.
convertFromDriver()
Converts a value from the driver's charset to the default charset.
public
convertFromDriver(mixed $value) : mixed
Parameters
- $value : mixed
-
A value to convert.
Return values
mixed —The converted value.
convertToDriver()
Converts a value from the default charset to the driver's charset.
public
convertToDriver(mixed $value) : mixed
Parameters
- $value : mixed
-
A value to convert.
Return values
mixed —The converted value.
countEvents()
Returns the number of events in the current calendar.
public
countEvents() : int
Tags
Return values
int —The number of events.
delete()
Delete all of a calendar's events.
public
delete(string $calendar) : mixed
Parameters
- $calendar : string
-
The name of the calendar to delete.
Tags
Return values
mixed —deleteEvent()
Deletes an event.
public
deleteEvent(mixed $eventId[, bool $silent = false ]) : mixed
Parameters
- $eventId : mixed
-
Either the event id to delete, or the event object.
- $silent : bool = false
-
Don't send notifications, used when deleting events in bulk from maintenance tasks.
Tags
Return values
mixed —exists()
Checks if the event's UID already exists and returns all event ids with that UID.
public
exists(string $uid[, string $calendar_id = null ]) : string|bool
Parameters
- $uid : string
-
The event's uid.
- $calendar_id : string = null
-
Calendar to search in.
Tags
Return values
string|bool —Returns a string with event_id or false if not found.
filterEventsByCalendar()
Filters a list of events to return only those that belong to certain calendars.
public
filterEventsByCalendar(array<string|int, mixed> $uids, array<string|int, mixed> $calendar) : array<string|int, mixed>
Parameters
- $uids : array<string|int, mixed>
-
A list of event UIDs.
- $calendar : array<string|int, mixed>
-
A list of calendar IDs.
Tags
Return values
array<string|int, mixed> —Event UIDs filtered by calendar IDs.
getByUID()
Get an event or events with the given UID value.
public
getByUID(string $uid[, array<string|int, mixed> $calendars = null ][, bool $getAll = false ]) : Kronolith_Event
Parameters
- $uid : string
-
The UID to match
- $calendars : array<string|int, mixed> = null
-
A restricted array of calendar ids to search
- $getAll : bool = false
-
Return all matching events?
Tags
Return values
Kronolith_Event —getEvent()
Stub to be overridden in the child class.
public
getEvent([mixed $eventId = null ]) : mixed
Parameters
- $eventId : mixed = null
Tags
Return values
mixed —getParam()
Returns a configuration for this driver.
public
getParam(string $param) : mixed
Parameters
- $param : string
-
A parameter name.
Return values
mixed —The parameter value or null if not set.
initialize()
Attempts to open a connection to the SQL server.
public
initialize() : mixed
Tags
Return values
mixed —listAlarms()
Stub to be overridden in the child class.
public
listAlarms(Horde_Date $date[, bool $fullevent = false ]) : array<string|int, mixed>
Parameters
- $date : Horde_Date
-
The date to list alarms for
- $fullevent : bool = false
-
Return the full event objects?
Tags
Return values
array<string|int, mixed> —An array of event ids, or Kronolith_Event objects
listEvents()
Lists all events in the time range, optionally restricting results to only events with alarms.
public
listEvents([Horde_Date $startDate = null ][, Horde_Date $endDate = null ][, array<string|int, mixed> $options = array() ]) : mixed
Parameters
- $startDate : Horde_Date = null
-
The start of range date.
- $endDate : Horde_Date = null
-
The end of date range.
- $options : array<string|int, mixed> = array()
-
Additional options:
- show_recurrence: (boolean) Return every instance of a recurring event? DEFAULT: false (Only return recurring events once inside $startDate - $endDate range)
- has_alarm: (boolean) Only return events with alarms. DEFAULT: false (Return all events)
- json: (boolean) Store the results of the event's toJson() method? DEFAULT: false
- cover_dates: (boolean) Add the events to all days that they cover? DEFAULT: true
- hide_exceptions: (boolean) Hide events that represent exceptions to a recurring event. DEFAULT: false (Do not hide exception events)
- fetch_tags: (boolean) Fetch tags for all events. DEFAULT: false (Do not fetch event tags)
Tags
Return values
mixed —move()
Moves an event to a new calendar.
public
move(string $eventId, string $newCalendar) : mixed
Parameters
- $eventId : string
-
The event to move.
- $newCalendar : string
-
The new calendar.
Tags
Return values
mixed —nextRecurrence()
Finds the next recurrence of $eventId that's after $afterDate.
public
nextRecurrence(string $eventId, Horde_Date $afterDate) : Horde_Date|bool
Parameters
- $eventId : string
-
The ID of the event to fetch.
- $afterDate : Horde_Date
-
Return events after this date.
Tags
Return values
Horde_Date|bool —The date of the next recurrence or false if the event does not recur after $afterDate.
open()
Selects a calendar as the currently opened calendar.
public
open(string $calendar) : mixed
Parameters
- $calendar : string
-
A calendar identifier.
Return values
mixed —removeUserData()
Stub for child class to override if it can implement.
public
removeUserData(mixed $user) : mixed
Parameters
- $user : mixed
Tags
Return values
mixed —saveEvent()
Saves an event in the backend.
public
saveEvent(Kronolith_Event $event) : string
If it is a new event, it is added, otherwise the event is updated.
Parameters
- $event : Kronolith_Event
-
The event to save.
Tags
Return values
string —The event id.
search()
Searches a calendar.
public
search(object $query[, bool $json = false ]) : mixed
Parameters
- $query : object
-
An object with the criteria to search for.
- $json : bool = false
-
Store the results of the events' toJson() method?
Tags
Return values
mixed —An array of Kronolith_Events.
setParam()
Sets a configuration for this driver.
public
setParam(string $param, mixed $value) : mixed
Parameters
- $param : string
-
A parameter name.
- $value : mixed
-
The parameter value.
Return values
mixed —setParams()
Sets all configuration parameters for this driver.
public
setParams(string $params) : mixed
Parameters
- $params : string
-
A parameters hash.
Return values
mixed —supportsTimezones()
Returns whether this driver supports per-event timezones.
public
supportsTimezones() : bool
Return values
bool —Whether this drivers suppports per-event timezones.
synchronize()
Synchronize if driver needs to.
public
synchronize([bool $force = false ][, string $token = false ]) : mixed
Parameters
- $force : bool = false
-
If true, forces synchronization, even if we have already done so.
- $token : string = false
-
A synchroniziation token, if available.
Return values
mixed —_addEvent()
Adds an event to the backend.
protected
_addEvent(Kronolith_Event $event) : string
Parameters
- $event : Kronolith_Event
-
The event to save.
Tags
Return values
string —The event id.
_addTags()
Helper function to add tags from a newly creted event to the tagger.
protected
_addTags(Kronolith_Event $event) : mixed
Parameters
- $event : Kronolith_Event
-
The event to save tags to storage for.
Return values
mixed —_buildEventHistory()
Builds a history hash for a modified event.
protected
_buildEventHistory(Kronolith_Event $event) : array<string|int, mixed>
We don't write it in here because we don't want to commit history before the actual changes are made.
Parameters
- $event : Kronolith_Event
-
The event to log.
Tags
Return values
array<string|int, mixed> —The change log.
_deleteEvent()
Deletes an event.
protected
_deleteEvent(string $eventId[, bool $silent = false ]) : Kronolith_Event
Parameters
- $eventId : string
-
The ID of the event to delete.
- $silent : bool = false
-
Don't send notifications, used when deleting events in bulk from maintenance tasks.
Tags
Return values
Kronolith_Event —Returns the deleted event.
_handleNotifications()
Wrapper for sending notifications, so that we can overwrite this action in Kronolith_Driver_Resource.
protected
_handleNotifications(Kronolith_Event $event, string $action) : mixed
Parameters
- $event : Kronolith_Event
- $action : string
Return values
mixed —_listEvents()
Lists all events in the time range, optionally restricting results to only events with alarms.
protected
_listEvents([Horde_Date $startDate = null ][, Horde_Date $endDate = null ][, array<string|int, mixed> $options = array() ]) : mixed
Parameters
- $startDate : Horde_Date = null
-
The start of range date.
- $endDate : Horde_Date = null
-
The end of date range.
- $options : array<string|int, mixed> = array()
-
Additional options:
- show_recurrence: (boolean) Return every instance of a recurring event? DEFAULT: false (Only return recurring events once inside $startDate - $endDate range)
- has_alarm: (boolean) Only return events with alarms. DEFAULT: false (Return all events)
- json: (boolean) Store the results of the event's toJson() method? DEFAULT: false
- cover_dates: (boolean) Add the events to all days that they cover? DEFAULT: true
- hide_exceptions: (boolean) Hide events that represent exceptions to a recurring event. DEFAULT: false (Do not hide exception events)
- fetch_tags: (boolean) Fetch tags for all events. DEFAULT: false (Do not fetch event tags)
Tags
Return values
mixed —_move()
Moves an event to a new calendar.
protected
_move(string $eventId, string $newCalendar) : Kronolith_Event
Parameters
- $eventId : string
-
The event to move.
- $newCalendar : string
-
The new calendar.
Tags
Return values
Kronolith_Event —The old event.
_updateEvent()
Updates an existing event in the backend.
protected
_updateEvent(Kronolith_Event $event) : string
Parameters
- $event : Kronolith_Event
-
The event to save.
Tags
Return values
string —The event id.
_updateTags()
Helper function to update an existing event's tags to tagger storage.
protected
_updateTags(Kronolith_Event $event) : mixed
Parameters
- $event : Kronolith_Event
-
The event to update
Return values
mixed —_listEventsConditional()
Lists all events that satisfy the given conditions.
private
_listEventsConditional([Horde_Date $startInterval = null ][, Horde_Date $endInterval = null ][, string $conditions = '' ][, array<string|int, mixed> $vals = array() ]) : array<string|int, mixed>
Parameters
- $startInterval : Horde_Date = null
-
Start of range date object.
- $endInterval : Horde_Date = null
-
End of range data object.
- $conditions : string = ''
-
Conditions, given as SQL clauses.
- $vals : array<string|int, mixed> = array()
-
SQL bind variables for use with $conditions clauses.
Tags
Return values
array<string|int, mixed> —Events in the given time range satisfying the given conditions.