Merge branch '2014.11' into 2015.11
[tine20] / tine20 / ExampleApplication / Config.php
1 <?php
2 /**
3  * @package     ExampleApplication
4  * @subpackage  Config
5  * @license     http://www.gnu.org/licenses/agpl.html AGPL Version 3
6  * @author      Philipp Schüle <p.schuele@metaways.de>
7  * @copyright   Copyright (c) 2011 Metaways Infosystems GmbH (http://www.metaways.de)
8  */
9
10 /**
11  * ExampleApplication config class
12  * 
13  * @package     ExampleApplication
14  * @subpackage  Config
15  */
16 class ExampleApplication_Config extends Tinebase_Config_Abstract
17 {
18     /**
19      * ExampleApplication Status
20      * 
21      * @var string
22      */
23     const EXAMPLE_STATUS = 'exampleStatus';
24
25     const EXAMPLE_REASON = 'exampleReason';
26     
27     /**
28      * (non-PHPdoc)
29      * @see tine20/Tinebase/Config/Definition::$_properties
30      */
31     protected static $_properties = array(
32         self::EXAMPLE_STATUS => array(
33                                    //_('Status Available')
34             'label'                 => 'Status Available',
35                                    //_('Possible status. Please note that additional status might impact other ExampleApplication systems on export or syncronisation.')
36             'description'           => 'Possible status. Please note that additional status might impact other ExampleApplication systems on export or syncronisation.',
37             'type'                  => 'keyFieldConfig',
38             'options'               => array('recordModel' => 'ExampleApplication_Model_Status'),
39             'clientRegistryInclude' => true,
40             'setByAdminModule'      => true,
41             'setBySetupModule'      => false,
42             'default'               => array(
43                 'records' => array(
44                     array('id' => 'COMPLETED',    'value' => 'Completed',   'is_open' => 0, 'icon' => 'images/oxygen/16x16/actions/ok.png',                   'system' => true), //_('Completed')
45                     array('id' => 'CANCELLED',    'value' => 'Cancelled',   'is_open' => 0, 'icon' => 'images/oxygen/16x16/actions/dialog-cancel.png',        'system' => true), //_('Cancelled')
46                     array('id' => 'IN-PROCESS',   'value' => 'In process',  'is_open' => 1, 'icon' => 'images/oxygen/16x16/actions/view-refresh.png',         'system' => true), //_('In process')
47                 ),
48                 'default' => 'IN-PROCESS'
49             )
50         ),
51
52         self::EXAMPLE_REASON => array(
53             //_('Reasons Available')
54             'label'                 => 'Reasons Available',
55             //_('Possible status reasons.')
56             'description'           => 'Possible status reasons.',
57             'type'                  => 'keyFieldConfig',
58             'options'               => array(
59                 'parentField'     => 'status'
60             ),
61             'clientRegistryInclude' => true,
62             'setByAdminModule'      => true,
63             'setBySetupModule'      => false,
64             'default'               => array(
65                 'records' => array(
66                     array('id' => 'COMPLETED:CHANGE',           'value' => 'Change'), //_('Change')
67                     array('id' => 'COMPLETED:DOCU',             'value' => 'Documentation'), //_('Documentation')
68                     array('id' => 'CANCELLED:REQCHANGE',        'value' => 'Requirement Changed'), //_('Requirement Changed')
69                     array('id' => 'CANCELLED:NOTPOSSIBLE',      'value' => 'Not Possible'), //_('Not Possible')
70                     array('id' => 'IN-PROCESS:IMPLEMENTATION',  'value' => 'Implementation'), //_('Implementation')
71                     array('id' => 'IN-PROCESS:REVIEW',          'value' => 'Review'), //_('Review')
72                     array('id' => 'IN-PROCESS:INTEGRATION',     'value' => 'Integration'), //_('Integration')
73                 ),
74                 'default' => array('COMPLETED:CHANGE', 'CANCELLED:REQCHANGE', 'IN-PROCESS:IMPLEMENTATION'),
75             )
76         ),
77     );
78     
79     /**
80      * (non-PHPdoc)
81      * @see tine20/Tinebase/Config/Abstract::$_appName
82      */
83     protected $_appName = 'ExampleApplication';
84     
85     /**
86      * holds the instance of the singleton
87      *
88      * @var Tinebase_Config
89      */
90     private static $_instance = NULL;
91     
92     /**
93      * the constructor
94      *
95      * don't use the constructor. use the singleton 
96      */    
97     private function __construct() {}
98     
99     /**
100      * the constructor
101      *
102      * don't use the constructor. use the singleton 
103      */    
104     private function __clone() {}
105     
106     /**
107      * Returns instance of Tinebase_Config
108      *
109      * @return Tinebase_Config
110      */
111     public static function getInstance() 
112     {
113         if (self::$_instance === NULL) {
114             self::$_instance = new self();
115         }
116         
117         return self::$_instance;
118     }
119     
120     /**
121      * (non-PHPdoc)
122      * @see tine20/Tinebase/Config/Abstract::getProperties()
123      */
124     public static function getProperties()
125     {
126         return self::$_properties;
127     }
128 }