b7987c3b8aebfae567f24ecde26704ecc73e1998
4 +--------------------------------------------------------------------+
5 | CiviCRM version 4.3 |
6 +--------------------------------------------------------------------+
7 | Copyright CiviCRM LLC (c) 2004-2013 |
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 * File for CiviCRM APIv3 pseudoconstants
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 $
40 * Generic file to retrieve all the constants and
41 * pseudo constants used in CiviCRM
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>
87 * @example ConstantGet.php
88 * {@getfields constant_get}
90 function civicrm_api3_constant_get($params) {
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
98 // Whitelist approach is safer
99 $allowedClasses = array(
100 'CRM_Core_PseudoConstant',
101 'CRM_Event_PseudoConstant',
102 'CRM_Contribute_PseudoConstant',
103 'CRM_Member_PseudoConstant',
105 $className = $allowedClasses[0];
106 if (!empty($params['class']) && in_array($params['class'], $allowedClasses)) {
107 $className = $params['class'];
109 $callable = "$className::$name";
110 if (is_callable($callable)) {
111 if (empty($params)) {
112 $values = call_user_func(array($className, $name));
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 );
119 return civicrm_api3_create_success($values, $params);
122 $values = call_user_func(array('CRM_Utils_PseudoConstant', 'getConstant'), $name);
124 return civicrm_api3_create_success($values, $params);
127 return civicrm_api3_create_error('Unknown civicrm constant or method not callable');
130 function _civicrm_api3_constant_get_spec(&$params) {
161 'paymentProcessorType',
168 'stateProvinceAbbreviation',
169 'stateProvinceForCountry',