function pcp_get_tagged_profile_fields in Profile Complete Percent 7
Same name and namespace in other branches
- 5 pcp.module \pcp_get_tagged_profile_fields()
- 6.2 pcp.module \pcp_get_tagged_profile_fields()
- 6 pcp.module \pcp_get_tagged_profile_fields()
Get all the profile fields that have been tagged. If an $fiid is passed in, only the data for that field will be returned.
Parameters
$fiid: (optional) NULL The field instance id of the field data should be returned for. If null, all fields are returned.
$entity_type: (optional) NULL The type of entity to return fields for.
$bundle: (optional) NULL The bundle to return fields for.
Return value
field identifier (entity_type:bundle:field_name) and name(s).
3 calls to pcp_get_tagged_profile_fields()
- pcp_admin_settings_form_data in includes/
pcp.admin.inc - Function that sets up parameters to be used when the pcp_admin_settings_form() function is executed.
- pcp_form_field_ui_field_edit_form_alter in ./
pcp.module - Implements hook_form_FORM_ID_alter().
- pcp_get_complete_percentage_data in ./
pcp.module - Get the profile complete percentage data for a given user.
File
- ./
pcp.module, line 302 - Allows users with valid permissions to tag profile fields (core fields or Profile2 fields) for a users profile to be considered complete.
Code
function pcp_get_tagged_profile_fields($entity_type = NULL, $bundle = NULL, $field_name = NULL) {
$enabled_fields = variable_get('pcp_enabled_fields', array());
if (empty($enabled_fields)) {
return array();
}
$query = db_select('field_config_instance', 'fci');
$query
->addField('fci', 'field_name', 'field_name');
$query
->condition('fci.deleted', 0);
$or = db_or();
foreach ($enabled_fields as $enabled_field_identifier) {
$enabled_field_name_elements = explode(':', $enabled_field_identifier);
if (count($enabled_field_name_elements) > 2) {
$or
->condition('fci.field_name', $enabled_field_name_elements[2]);
}
}
$query
->condition($or);
if (isset($entity_type)) {
$query
->condition('entity_type', $entity_type);
}
if (isset($bundle)) {
$query
->condition('bundle', $bundle);
}
if (isset($field_name)) {
$query
->condition('field_name', $field_name);
}
$result = $query
->execute();
$fields = array();
foreach ($result as $row) {
$fields[$entity_type . ':' . $bundle . ':' . $row->field_name] = $row->field_name;
}
return $fields;
}