*
  • 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
  • * * @return array * @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'); } /** * @param $params */ 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', )) ); }