*
activityStatus
* activityType
* addressee
* allGroup
* country
* countryIsoCode
* county
* currencyCode
* currencySymbols
* customGroup
* emailGreeting
* fromEmailAddress
* gender
* group
* groupIterator
* honor
* IMProvider
* individualPrefix
* individualSuffix
* locationType
* locationVcardName
* mailProtocol
* mappingTypes
* paymentProcessor
* paymentProcessorType
* pcm
* phoneType
* postalGreeting
* priority
* relationshipType
* stateProvince
* stateProvinceAbbreviation
* stateProvinceForCountry
* staticGroup
* tag
* tasks
* ufGroup
* visibility
* worldRegion
* wysiwygEditor
*
* @example ConstantGet.php
* {@getfields constant_get}
*/
function civicrm_api3_constant_get($params) {
$name = $params['name'];
// all the stuff about classes should be adequately replaced by the bit in the 'else'
//ie $values = call_user_func(array('CRM_Utils_PseudoConstant', 'getConstant'), $name);
// once tests are 100% can try removing the first block & a similar block from Generic:getoptions
// Whitelist approach is safer
$allowedClasses = array(
'CRM_Core_PseudoConstant',
'CRM_Event_PseudoConstant',
'CRM_Contribute_PseudoConstant',
'CRM_Member_PseudoConstant',
);
$className = $allowedClasses[0];
if (!empty($params['class']) && in_array($params['class'], $allowedClasses)) {
$className = $params['class'];
}
$callable = "$className::$name";
if (is_callable($callable)) {
if (empty($params)) {
$values = call_user_func(array($className, $name));
}
else {
$values = call_user_func(array($className, $name));
//@TODO XAV take out the param the COOKIE, Entity, Action and so there are only the "real param" in it
//$values = call_user_func_array( array( $className, $name ), $params );
}
return civicrm_api3_create_success($values, $params);
}
else{
$values = call_user_func(array('CRM_Utils_PseudoConstant', 'getConstant'), $name);
if(!empty($values)){
return civicrm_api3_create_success($values, $params);
}
}
return civicrm_api3_create_error('Unknown civicrm constant or method not callable');
}
function _civicrm_api3_constant_get_spec(&$params) {
$params = (array
('name' => array(
'api.required' => 1,
'options' =>
'activityStatus',
'activityType',
'addressee',
'allGroup',
'country',
'countryIsoCode',
'county',
'currencyCode',
'currencySymbols',
'customGroup',
'emailGreeting',
'fromEmailAddress',
'gender',
'group',
'groupIterator',
'honor',
'IMProvider',
'individualPrefix',
'individualSuffix',
'locationType',
'locationVcardName',
'mailProtocol',
'mappingTypes',
'paymentInstrument',
'paymentProcessor',
'paymentProcessorType',
'pcm',
'phoneType',
'postalGreeting',
'priority',
'relationshipType',
'stateProvince',
'stateProvinceAbbreviation',
'stateProvinceForCountry',
'staticGroup',
'tag',
'tasks',
'ufGroup',
'visibility',
'worldRegion',
'wysiwygEditor',
))
);
}