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 factory for the calendars handler.
 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:  * @author  Gunnar Wrobel <wrobel@pardus.de>
 9:  * @package Kronolith
10:  */
11: class Kronolith_Factory_Calendars
12: {
13:     /**
14:      * Calendars drivers already created.
15:      *
16:      * @var array
17:      */
18:     private $_instances = array();
19: 
20:     /**
21:      * The injector.
22:      *
23:      * @var Horde_Injector
24:      */
25:     private $_injector;
26: 
27:     /**
28:      * Constructor.
29:      *
30:      * @param Horde_Injector $injector  The injector to use.
31:      */
32:     public function __construct(Horde_Injector $injector)
33:     {
34:         $this->_injector = $injector;
35:     }
36: 
37:     /**
38:      * Return a Kronolith_Calendars instance.
39:      *
40:      * @return Kronolith_Calendars
41:      */
42:     public function create()
43:     {
44:         if (!isset($GLOBALS['conf']['calendars']['driver'])) {
45:             $driver = 'Default';
46:         } else {
47:             $driver = Horde_String::ucfirst($GLOBALS['conf']['calendars']['driver']);
48:         }
49:         if (empty($this->_instances[$driver])) {
50:             $class = 'Kronolith_Calendars_' . $driver;
51:             if (class_exists($class)) {
52:                 $params = array();
53:                 switch ($driver) {
54:                 case 'Default':
55:                     $params['identity'] = $this->_injector->getInstance('Horde_Core_Factory_Identity')->create();
56:                     break;
57:                 }
58:                 $this->_instances[$driver] = new $class(
59:                     $GLOBALS['kronolith_shares'],
60:                     $GLOBALS['registry']->getAuth(),
61:                     $params
62:                 );
63:             } else {
64:                 throw new Kronolith_Exception(sprintf('Unable to load the definition of %s.', $class));
65:             }
66:         }
67:         return $this->_instances[$driver];
68:     }
69: }
API documentation generated by ApiGen