d49e767b511fce30a8eb7f015c978541f366c863
4 +--------------------------------------------------------------------+
5 | CiviCRM version 4.6 |
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 api notice
41 * @return string to indicate this entire api entity is deprecated
43 function _civicrm_api3_constant_deprecation() {
44 return 'The constant api is deprecated as of CiviCRM 4.4. Please use the getoptions api action instead.';
48 * @deprecated as of CiviCRM 4.4.
49 * It's recommended to use the api getoptions action instead
51 * @param string Name of a public static method of
52 * CRM_Core_PseudoConstant: one of
54 * <li>activityStatus</li>
55 * <li>activityType</li>
59 * <li>countryIsoCode</li>
61 * <li>currencyCode</li>
62 * <li>currencySymbols</li>
63 * <li>customGroup</li>
64 * <li>emailGreeting</li>
65 * <li>fromEmailAddress</li>
68 * <li>groupIterator</li>
71 * <li>individualPrefix</li>
72 * <li>individualSuffix</li>
73 * <li>locationType</li>
74 * <li>locationVcardName</li>
75 * <li>mailProtocol</li>
76 * <li>mappingTypes</li>
77 * <li>paymentProcessor</li>
78 * <li>paymentProcessorType</li>
81 * <li>postalGreeting</li>
83 * <li>relationshipType</li>
84 * <li>stateProvince</li>
85 * <li>stateProvinceAbbreviation</li>
86 * <li>stateProvinceForCountry</li>
87 * <li>staticGroup</li>
92 * <li>worldRegion</li>
93 * <li>wysiwygEditor</li>
96 * @example ConstantGet.php
97 * {@getfields constant_get}
99 function civicrm_api3_constant_get($params) {
101 $name = $params['name'];
102 // all the stuff about classes should be adequately replaced by the bit in the 'else'
103 //ie $values = call_user_func(array('CRM_Utils_PseudoConstant', 'getConstant'), $name);
104 // once tests are 100% can try removing the first block & a similar block from Generic:getoptions
106 // Whitelist approach is safer
107 $allowedClasses = array(
108 'CRM_Core_PseudoConstant',
109 'CRM_Event_PseudoConstant',
110 'CRM_Contribute_PseudoConstant',
111 'CRM_Member_PseudoConstant',
113 $className = $allowedClasses[0];
114 if (!empty($params['class']) && in_array($params['class'], $allowedClasses)) {
115 $className = $params['class'];
117 $callable = "$className::$name";
118 if (is_callable($callable)) {
119 if (empty($params)) {
120 $values = call_user_func(array($className, $name));
123 $values = call_user_func(array($className, $name));
124 //@TODO XAV take out the param the COOKIE, Entity, Action and so there are only the "real param" in it
125 //$values = call_user_func_array( array( $className, $name ), $params );
127 return civicrm_api3_create_success($values, $params, 'constant');
130 $values = call_user_func(array('CRM_Utils_PseudoConstant', 'getConstant'), $name);
132 return civicrm_api3_create_success($values, $params, 'constant');
135 return civicrm_api3_create_error('Unknown civicrm constant or method not callable');
139 * @param array $params
141 function _civicrm_api3_constant_get_spec(&$params) {
168 'paymentProcessorType',
175 'stateProvinceAbbreviation',
176 'stateProvinceForCountry',
187 'title' => 'Constant Name',
190 'options' => array_combine($options, $options)