b4a58c3cc833738eb9afb75a270e9c00b9025573
[tine20] / tine20 / Calendar / Config.php
1 <?php
2 /**
3  * @package     Calendar
4  * @subpackage  Config
5  * @license     http://www.gnu.org/licenses/agpl.html AGPL Version 3
6  * @author      Cornelius Weiss <c.weiss@metaways.de>
7  * @copyright   Copyright (c) 2011 Metaways Infosystems GmbH (http://www.metaways.de)
8  */
9
10 /**
11  * calendar config class
12  * 
13  * @package     Calendar
14  * @subpackage  Config
15  */
16 class Calendar_Config extends Tinebase_Config_Abstract
17 {
18     /**
19      * Fixed Calendars
20      * 
21      * @var string
22      */
23     const FIXED_CALENDARS = 'fixedCalendars';
24     
25     /**
26      * Attendee Status Available
27      * 
28      * @var string
29      */
30     const ATTENDEE_STATUS = 'attendeeStatus';
31     
32     /**
33      * Attendee Roles Available
34      * 
35      * @var string
36      */
37     const ATTENDEE_ROLES = 'attendeeRoles';
38     
39     /**
40      * (non-PHPdoc)
41      * @see tine20/Tinebase/Config/Definition::$_properties
42      */
43     protected static $_properties = array(
44         self::FIXED_CALENDARS => array(
45                                    //_('Fixed Calendars')
46             'label'                 => 'Fixed Calendars',
47                                    //_('Calendars always selected regardless of all filter parameters. A valid use case might be to force the display of an certain holiday calendar.')
48             'description'           => 'Calendars always selected regardless of all filter parameters. A valid use case might be to force the display of an certain holiday calendar.',
49             'type'                  => 'array',
50             'contents'              => 'string', // in fact this are ids of Tinebase_Model_Container of app Calendar and we might what to have te ui to autocreate pickers panel here? x-type? -> later
51             'clientRegistryInclude' => TRUE,
52         
53         ),
54         self::ATTENDEE_STATUS => array(
55                                    //_('Attendee Status Available')
56             'label'                 => 'Attendee Status Available',
57                                    //_('Possible event attendee status. Please note that additional attendee status might impact other calendar systems on export or syncronisation.')
58             'description'           => 'Possible event attendee status. Please note that additional attendee status might impact other calendar systems on export or syncronisation.',
59             'type'                  => 'keyFieldConfig',
60             'options'               => array('recordModel' => 'Calendar_Model_AttendeeStatus'),
61             'clientRegistryInclude' => TRUE,
62             'default'               => 'NEEDS-ACTION'
63         ),
64         self::ATTENDEE_ROLES => array(
65                                    //_('Attendee Roles Available')
66             'label'                 => 'Attendee Roles Available',
67                                    //_('Possible event attendee roles. Please note that additional attendee roles might impact other calendar systems on export or syncronisation.')
68             'description'           => 'Possible event attendee roles. Please note that additional attendee roles might impact other calendar systems on export or syncronisation.',
69             'type'                  => 'keyFieldConfig',
70             'options'               => array('recordModel' => 'Calendar_Model_AttendeeRole'),
71             'clientRegistryInclude' => TRUE,
72             'default'               => 'REQ'
73         ),
74     );
75     
76     /**
77      * (non-PHPdoc)
78      * @see tine20/Tinebase/Config/Abstract::$_appName
79      */
80     protected $_appName = 'Calendar';
81     
82     /**
83      * holds the instance of the singleton
84      *
85      * @var Tinebase_Config
86      */
87     private static $_instance = NULL;
88     
89     /**
90      * the constructor
91      *
92      * don't use the constructor. use the singleton 
93      */    
94     private function __construct() {}
95     
96     /**
97      * the constructor
98      *
99      * don't use the constructor. use the singleton 
100      */    
101     private function __clone() {}
102     
103     /**
104      * Returns instance of Tinebase_Config
105      *
106      * @return Tinebase_Config
107      */
108     public static function getInstance() 
109     {
110         if (self::$_instance === NULL) {
111             self::$_instance = new self();
112         }
113         
114         return self::$_instance;
115     }
116     
117     /**
118      * (non-PHPdoc)
119      * @see tine20/Tinebase/Config/Abstract::getProperties()
120      */
121     public static function getProperties()
122     {
123         return self::$_properties;
124     }
125 }