4 +--------------------------------------------------------------------+
5 | CiviCRM version 4.5 |
6 +--------------------------------------------------------------------+
7 | Copyright CiviCRM LLC (c) 2004-2014 |
8 +--------------------------------------------------------------------+
9 | This file is a part of CiviCRM. |
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. |
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. |
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 +--------------------------------------------------------------------+
30 * CiviCRM APIv3 pseudoconstants
33 * @package CiviCRM_APIv3
34 * @subpackage API_Constant
35 * @copyright CiviCRM LLC (c) 2004-2014
36 * @version $Id: Constant.php 30171 2010-10-14 09:11:27Z mover $
40 * @deprecated as of CiviCRM 4.4.
41 * It's recommended to use the api getoptions action instead
43 * @param string Name of a public static method of
44 * CRM_Core_PseudoContant: one of
46 * <li>activityStatus</li>
47 * <li>activityType</li>
51 * <li>countryIsoCode</li>
53 * <li>currencyCode</li>
54 * <li>currencySymbols</li>
55 * <li>customGroup</li>
56 * <li>emailGreeting</li>
57 * <li>fromEmailAddress</li>
60 * <li>groupIterator</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>
73 * <li>postalGreeting</li>
75 * <li>relationshipType</li>
76 * <li>stateProvince</li>
77 * <li>stateProvinceAbbreviation</li>
78 * <li>stateProvinceForCountry</li>
79 * <li>staticGroup</li>
84 * <li>worldRegion</li>
85 * <li>wysiwygEditor</li>
88 * @example ConstantGet.php
89 * {@getfields constant_get}
91 function civicrm_api3_constant_get($params) {
93 $name = $params['name'];
94 // all the stuff about classes should be adequately replaced by the bit in the 'else'
95 //ie $values = call_user_func(array('CRM_Utils_PseudoConstant', 'getConstant'), $name);
96 // once tests are 100% can try removing the first block & a similar block from Generic:getoptions
99 // Whitelist approach is safer
100 $allowedClasses = array(
101 'CRM_Core_PseudoConstant',
102 'CRM_Event_PseudoConstant',
103 'CRM_Contribute_PseudoConstant',
104 'CRM_Member_PseudoConstant',
106 $className = $allowedClasses[0];
107 if (!empty($params['class']) && in_array($params['class'], $allowedClasses)) {
108 $className = $params['class'];
110 $callable = "$className::$name";
111 if (is_callable($callable)) {
112 if (empty($params)) {
113 $values = call_user_func(array($className, $name));
116 $values = call_user_func(array($className, $name));
117 //@TODO XAV take out the param the COOKIE, Entity, Action and so there are only the "real param" in it
118 //$values = call_user_func_array( array( $className, $name ), $params );
120 return civicrm_api3_create_success($values, $params);
123 $values = call_user_func(array('CRM_Utils_PseudoConstant', 'getConstant'), $name);
125 return civicrm_api3_create_success($values, $params);
128 return civicrm_api3_create_error('Unknown civicrm constant or method not callable');
131 function _civicrm_api3_constant_get_spec(&$params) {
162 'paymentProcessorType',
169 'stateProvinceAbbreviation',
170 'stateProvinceForCountry',