Update version numbers to 4.4 and lint php
[civicrm-core.git] / api / v3 / Constant.php
1 <?php
2
3 /*
4 +--------------------------------------------------------------------+
5 | CiviCRM version 4.4 |
6 +--------------------------------------------------------------------+
7 | Copyright CiviCRM LLC (c) 2004-2013 |
8 +--------------------------------------------------------------------+
9 | This file is a part of CiviCRM. |
10 | |
11 | CiviCRM is free software; you can copy, modify, and distribute it |
12 | under the terms of the GNU Affero General Public License |
13 | Version 3, 19 November 2007 and the CiviCRM Licensing Exception. |
14 | |
15 | CiviCRM is distributed in the hope that it will be useful, but |
16 | WITHOUT ANY WARRANTY; without even the implied warranty of |
17 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. |
18 | See the GNU Affero General Public License for more details. |
19 | |
20 | You should have received a copy of the GNU Affero General Public |
21 | License and the CiviCRM Licensing Exception along |
22 | with this program; if not, contact CiviCRM LLC |
23 | at info[AT]civicrm[DOT]org. If you have questions about the |
24 | GNU Affero General Public License or the licensing of CiviCRM, |
25 | see the CiviCRM license FAQ at http://civicrm.org/licensing |
26 +--------------------------------------------------------------------+
27 */
28
29 /**
30 * CiviCRM APIv3 pseudoconstants - DEPRECATED
31 *
32 * @package CiviCRM_APIv3
33 * @subpackage API_Constant
34 * @copyright CiviCRM LLC (c) 2004-2013
35 * @version $Id: Constant.php 30171 2010-10-14 09:11:27Z mover $
36 *
37 */
38
39 /**
40 * This api is DEPRECATED as of CiviCRM 4.4.
41 * It's recommended to use the api getoptions action instead
42 *
43 * @param string Name of a public static method of
44 * CRM_Core_PseudoContant: one of
45 * <ul>
46 * <li>activityStatus</li>
47 * <li>activityType</li>
48 * <li>addressee</li>
49 * <li>allGroup</li>
50 * <li>country</li>
51 * <li>countryIsoCode</li>
52 * <li>county</li>
53 * <li>currencyCode</li>
54 * <li>currencySymbols</li>
55 * <li>customGroup</li>
56 * <li>emailGreeting</li>
57 * <li>fromEmailAddress</li>
58 * <li>gender</li>
59 * <li>group</li>
60 * <li>groupIterator</li>
61 * <li>honor</li>
62 * <li>IMProvider</li>
63 * <li>individualPrefix</li>
64 * <li>individualSuffix</li>
65 * <li>locationType</li>
66 * <li>locationVcardName</li>
67 * <li>mailProtocol</li>
68 * <li>mappingTypes</li>
69 * <li>paymentProcessor</li>
70 * <li>paymentProcessorType</li>
71 * <li>pcm</li>
72 * <li>phoneType</li>
73 * <li>postalGreeting</li>
74 * <li>priority</li>
75 * <li>relationshipType</li>
76 * <li>stateProvince</li>
77 * <li>stateProvinceAbbreviation</li>
78 * <li>stateProvinceForCountry</li>
79 * <li>staticGroup</li>
80 * <li>tag</li>
81 * <li>tasks</li>
82 * <li>ufGroup</li>
83 * <li>visibility</li>
84 * <li>worldRegion</li>
85 * <li>wysiwygEditor</li>
86 * </ul>
87 * @example ConstantGet.php
88 * {@getfields constant_get}
89 */
90 function civicrm_api3_constant_get($params) {
91
92 $name = $params['name'];
93 // all the stuff about classes should be adequately replaced by the bit in the 'else'
94 //ie $values = call_user_func(array('CRM_Utils_PseudoConstant', 'getConstant'), $name);
95 // once tests are 100% can try removing the first block & a similar block from Generic:getoptions
96
97
98 // Whitelist approach is safer
99 $allowedClasses = array(
100 'CRM_Core_PseudoConstant',
101 'CRM_Event_PseudoConstant',
102 'CRM_Contribute_PseudoConstant',
103 'CRM_Member_PseudoConstant',
104 );
105 $className = $allowedClasses[0];
106 if (!empty($params['class']) && in_array($params['class'], $allowedClasses)) {
107 $className = $params['class'];
108 }
109 $callable = "$className::$name";
110 if (is_callable($callable)) {
111 if (empty($params)) {
112 $values = call_user_func(array($className, $name));
113 }
114 else {
115 $values = call_user_func(array($className, $name));
116 //@TODO XAV take out the param the COOKIE, Entity, Action and so there are only the "real param" in it
117 //$values = call_user_func_array( array( $className, $name ), $params );
118 }
119 return civicrm_api3_create_success($values, $params);
120 }
121 else{
122 $values = call_user_func(array('CRM_Utils_PseudoConstant', 'getConstant'), $name);
123 if(!empty($values)){
124 return civicrm_api3_create_success($values, $params);
125 }
126 }
127 return civicrm_api3_create_error('Unknown civicrm constant or method not callable');
128 }
129
130 function _civicrm_api3_constant_get_spec(&$params) {
131
132 $params = (array
133 ('name' => array(
134 'api.required' => 1,
135 'options' =>
136 'activityStatus',
137 'activityType',
138 'addressee',
139 'allGroup',
140 'country',
141 'countryIsoCode',
142 'county',
143 'currencyCode',
144 'currencySymbols',
145 'customGroup',
146 'emailGreeting',
147 'fromEmailAddress',
148 'gender',
149 'group',
150 'groupIterator',
151 'honor',
152 'IMProvider',
153 'individualPrefix',
154 'individualSuffix',
155 'locationType',
156 'locationVcardName',
157 'mailProtocol',
158 'mappingTypes',
159 'paymentInstrument',
160 'paymentProcessor',
161 'paymentProcessorType',
162 'pcm',
163 'phoneType',
164 'postalGreeting',
165 'priority',
166 'relationshipType',
167 'stateProvince',
168 'stateProvinceAbbreviation',
169 'stateProvinceForCountry',
170 'staticGroup',
171 'tag',
172 'tasks',
173 'ufGroup',
174 'visibility',
175 'worldRegion',
176 'wysiwygEditor',
177 ))
178 );
179 }
180