| GNU Affero General Public License or the licensing of CiviCRM, |
| see the CiviCRM license FAQ at http://civicrm.org/licensing |
+--------------------------------------------------------------------+
-*/
+ */
/**
*
* Array for valid combinations of data_type & descriptions
*
* @var array
- * @static
*/
public static $_dataType = NULL;
* Array for valid combinations of data_type & html_type
*
* @var array
- * @static
*/
public static $_dataToHtml = NULL;
* Array to hold (formatted) fields for import
*
* @var array
- * @static
*/
public static $_importFields = NULL;
/**
- * Build and retrieve the list of data types and descriptions
- *
- * @param NULL
+ * Build and retrieve the list of data types and descriptions.
*
* @return array
* Data type => Description
- * @static
*/
public static function &dataType() {
if (!(self::$_dataType)) {
}
/**
- * Takes an associative array and creates a custom field object
+ * Takes an associative array and creates a custom field object.
*
* This function is invoked from within the web form layer and also from the api layer
*
* @param array $params
* (reference) an assoc array of name/value pairs.
*
- * @return CRM_Core_DAO_CustomField object
- * @static
+ * @return CRM_Core_DAO_CustomField
*/
public static function create(&$params) {
$origParams = array_merge(array(), $params);
$customField->is_searchable = CRM_Utils_Array::value('is_searchable', $params, FALSE);
$customField->in_selector = CRM_Utils_Array::value('in_selector', $params, FALSE);
$customField->is_search_range = CRM_Utils_Array::value('is_search_range', $params, FALSE);
- $customField->is_active = CRM_Utils_Array::value('is_active', $params, FALSE);
+ //CRM-15792 - Custom field gets disabled if is_active not set
+ $customField->is_active = CRM_Utils_Array::value('is_active', $params, TRUE);
$customField->is_view = CRM_Utils_Array::value('is_view', $params, FALSE);
$customField->save();
}
/**
- * Fetch object based on array of properties
+ * Fetch object based on array of properties.
*
* @param array $params
* (reference ) an assoc array of name/value pairs.
* @param array $defaults
* (reference ) an assoc array to hold the flattened values.
*
- * @return CRM_Core_DAO_CustomField object
- * @static
+ * @return CRM_Core_DAO_CustomField
*/
public static function retrieve(&$params, &$defaults) {
return CRM_Core_DAO::commonRetrieve('CRM_Core_DAO_CustomField', $params, $defaults);
}
/**
- * Update the is_active flag in the db
+ * Update the is_active flag in the db.
*
* @param int $id
* Id of the database record.
* @return Object
* DAO object on sucess, null otherwise
*
- * @static
*/
public static function setIsActive($id, $is_active) {
* @return string
* name
*
- * @static
*/
public static function getTitle($id) {
return CRM_Core_DAO::getFieldValue('CRM_Core_DAO_CustomField', $id, 'label');
* @return array
* an array of active custom fields.
*
- * @static
*/
public static function &getFields(
$customDataType = 'Individual',
* @return array
*
*
- * @static
*/
public static function &getFieldsForImport(
$contactType = 'Individual',
}
/**
- * Get the field id from an import key
+ * Get the field id from an import key.
*
* @param string $key
* The key to parse.
*
* @param bool $all
- * @return int|null The id (if exists)
- * @static
+ * @return int|null
+ * The id (if exists)
*/
public static function getKeyID($key, $all = FALSE) {
$match = array();
}
/**
- * Use the cache to get all values of a specific custom field
+ * Use the cache to get all values of a specific custom field.
*
* @param int $fieldID
* The custom field ID.
*
- * @return CRM_Core_DAO_CustomField $field the field object
- * @static
- * public
+ * @return CRM_Core_DAO_CustomField
+ * The field object.
*/
public static function getFieldObject($fieldID) {
$field = new CRM_Core_DAO_CustomField();
}
/**
- * This function for building custom fields
+ * This function for building custom fields.
*
* @param CRM_Core_Form $qf
* Form object (reference).
* @param string $label
* Label for custom field.
*
- * @static
*/
public static function addQuickFormElement(
&$qf,
*
* @param object $field
* The field object.
- *
- * @return boolean
- *
- * @static
*/
public static function deleteField($field) {
CRM_Utils_System::flushCache();
$field->delete();
CRM_Core_BAO_UFField::delUFField($field->id);
CRM_Utils_Weight::correctDuplicateWeights('CRM_Core_DAO_CustomField');
-
- return;
}
/**
* @return string
* the display value
*
- * @static
*/
public static function getDisplayValue($value, $id, &$options, $contactID = NULL, $fieldID = NULL) {
$option = &$options[$id];
*
* @return array|mixed|null|string
*/
- static function getDisplayValueCommon(
+ public static function getDisplayValueCommon(
$value,
&$option,
$html_type,
break;
case 'File':
- if ($contactID) {
- $url = self::getFileURL($contactID, $fieldID, $value);
- if ($url) {
- $display = $url['file_url'];
- }
+ if ($value) {
+ $icons = CRM_Core_BAO_File::paperIconAttachment('*', $value);
+ $display = $icons[$value];
}
break;
}
/**
- * Set default values for custom data used in profile
+ * Set default values for custom data used in profile.
*
* @param int $customFieldId
* Custom field id.
* If passed - dont fetch value from db,.
* just format the given value
*
- * @static
*/
- static function setProfileDefaults(
+ public static function setProfileDefaults(
$customFieldId,
$elementName,
&$defaults,
}
/**
- * Format custom fields before inserting
+ * Format custom fields before inserting.
*
* @param int $customFieldId
* Custom field id.
* @param bool $includeViewOnly
* If true, fields marked 'View Only' are included. Required for APIv3.
*
- * @return array
+ * @return array|NULL
* formatted custom field array
- * @static
*/
- static function formatCustomField(
+ public static function formatCustomField(
$customFieldId, &$customFormatted, $value,
$customFieldExtend, $customValueId = NULL,
$entityId = NULL,
);
if (!array_key_exists($customFieldId, $customFields)) {
- return;
+ return NULL;
}
// return if field is a 'code' field
if (!$includeViewOnly && !empty($customFields[$customFieldId]['is_view'])) {
- return;
+ return NULL;
}
list($tableName, $columnName, $groupID) = self::getTableColumnGroup($customFieldId);
}
/**
- * Determine whether it would be safe to move a field
+ * Determine whether it would be safe to move a field.
*
* @param int $fieldID
* FK to civicrm_custom_field.
* @param int $newGroupID
* FK to civicrm_custom_group.
*
- * @return array(
- * string) or TRUE
+ * @return array
+ * array(string) or TRUE
*/
public static function _moveFieldValidate($fieldID, $newGroupID) {
$errors = array();
}
/**
- * Get the database table name and column name for a custom field
+ * Get the database table name and column name for a custom field.
*
* @param int $fieldID
* The fieldID of the custom field.
*
* @return array
* fatal is fieldID does not exists, else array of tableName, columnName
- * @static
*/
public static function getTableColumnGroup($fieldID, $force = FALSE) {
$cacheKey = "CRM_Core_DAO_CustomField_CustomGroup_TableColumn_{$fieldID}";
}
/**
- * Get custom option groups
+ * Get custom option groups.
*
* @param array $includeFieldIds
* Ids of custom fields for which.
- * option groups must be included.
+ * option groups must be included.
*
* Currently this is required in the cases where option groups are to be included
* for inactive fields : CRM-5369
*
*
- * @return mixed $customOptionGroup
- * @static
+ * @return mixed
*/
public static function &customOptionGroup($includeFieldIds = NULL) {
static $customOptionGroup = NULL;
}
/**
- * Fix orphan groups
+ * Fix orphan groups.
*
* @param int $customFieldId
* Custom field id.
* Option group id.
*
* @return void
- * @static
*/
public static function fixOptionGroups($customFieldId, $optionGroupId) {
// check if option group belongs to any custom Field else delete
* Option group id.
*
* @return void
- * @static
*/
public static function checkOptionGroup($optionGroupId) {
$query = "
*
* @return array
*/
- static function postProcess(
+ public static function postProcess(
&$params,
&$customFields,
$entityID,
*
* @param array $params
* Custom data submitted.
- * ie array( 'custom_1' => 'validate me' );
+ * ie array( 'custom_1' => 'validate me' );
*
* @return array
* validation errors.
- * @static
*/
public static function validateCustomData($params) {
$errors = array();
// FIXME: Currently the only way to know if data is serialized is by looking at the html_type. It would be cleaner to decouple this.
return ($field['html_type'] == 'CheckBox' || strpos($field['html_type'], 'Multi') !== FALSE);
}
+
}