function hook_user_register_user_attributes
Search API
7.x user.api.php | hook_user_register_user_attributes() |
6.x user.api.php | hook_user_register_user_attributes() |
Sample hook other modules implement to register a user attribute.
Simply return an array as illustrated below to register your module's content types.
IMPORTNAT: The attribute's machine name must be a valid variable name. No spaces or symbols.
Values are saved to the user_attributes table automatically as name__fieldname In the example below, the value would be saved under visa_status__visa
File
- modules/
user/ user.api.php, line 22
Code
function hook_user_register_user_attributes() {
$arr ['visa_status'] = array(
'title' => 'Visa Status',
'description' => 'Determines the visa status of the user.',
'settings' => array(
'large_profile' => TRUE,
'large_profile_editable' => TRUE,
'mini_profile' => TRUE,
'mini_profile_editable' => FALSE,
'user_type' => 'student', // Can be "student", "faculty", or "all"
),
);
$arr ['fun_field'] = array(
'title' => 'Enter any text you like:',
'settings' => array(
'user_type' => 'student',
'large_profile_editable' => TRUE,
),
);
// If we are in a popup (dialog)...
if (@$_GET ['window_mode'] == 'popup') {
// We want to make sure we redirect to our handler URL, which will close the dialog.
$arr ['visa_status']['settings']['#redirect'] = array(
'path' => 'content-dialog-handle-after-save',
'query' => '',
);
$arr ['fun_field']['settings']['#redirect'] = array(
'path' => 'content-dialog-handle-after-save',
'query' => '',
);
/**
* // To do all attributes at once...
foreach ($arr as $attr => $details) {
$arr[$attr]['settings']['#redirect'] = array(
'path' => 'content-dialog-handle-after-save',
'query' => '',
);
}
*/
}
$fields = array();
$fields ['visa'] = array(
'type' => 'select',
'label' => 'Status:',
'options' => array(
'open' => t('Open'),
'closed' => t('Closed'),
),
'required' => TRUE,
'hide_please_select' => TRUE,
'weight' => 20,
);
$arr ['visa_status']['fields'] = $fields;
// ** required! **
// Display settings
$arr ['visa_status']['display']['visa'] = array(
'label' => 'Visa Status:',
'value' => 'Selected: <i>@value</i>', // We can make use of HTML and replacement patterns.
// @value means whatever was selected / typed in. @key means they key from an options field.
// If 'value' is ommitted, we display @value by default.
);
//////////////////////////////////////////////////
$fields = array();
$fields ['fun_field_val'] = array(
'type' => 'textfield',
'label' => 'Fun Field:',
);
$arr ['fun_field']['display']['fun_field_val'] = array(
'label' => 'Fun Field:',
);
$arr ['fun_field']['fields'] = $fields;
return $arr;
}