function advanced_link_process in Advanced Link 6
Process the advanced_link type element before displaying the field.
Build the form element. When creating a form using FAPI #process, note that $element['#value'] is already set.
The $fields array is in $form['#field_info'][$element['#field_name']].
1 string reference to 'advanced_link_process'
- advanced_link_elements in ./
advanced_link.module - Implements hook_elements().
File
- ./
advanced_link.module, line 311 - Defines simple advanced_link widget.
Code
function advanced_link_process($element, $edit, $form_state, $form) {
$urls_allowed = $element['#field']['widget']['urls_allowed'];
$field_name = $element['#field_name'];
$type_name = $element['#type_name'];
$field = $form['#field_info'][$element['#field_name']];
$delta = $element['#delta'];
$element['url'] = array(
'#type' => 'textfield',
'#maxlength' => LINK_URL_MAX_LENGTH,
'#title' => t('URL'),
// Increase width of field.
'#attributes' => array(
'style' => 'width: 100%',
),
'#description' => $element['#description'],
'#required' => $delta == 0 && $field['url'] !== 'optional' ? $element['#required'] : FALSE,
'#default_value' => isset($element['#value']['url']) ? $element['#value']['url'] : NULL,
);
if ($urls_allowed != ADVANCED_LINK_EXTERNAL && advanced_link_autocomplete_access()) {
$element['url']['#autocomplete_path'] = 'advanced_link/autocomplete/' . $element['#field_name'] . '/' . $element['#type_name'];
}
if ($field['title'] != 'none' && $field['title'] != 'value') {
if (isset($field['widget']['title_list']) && trim($field['widget']['title_list'])) {
$final_array_word = advanced_link_extract_allowed_values($field['widget']['title_list']);
$element['title'] = array(
'#type' => 'select',
'#options' => $final_array_word,
'#title' => t('Title'),
'#required' => $delta == 0 && $field['title'] == 'required' ? $field['required'] : FALSE,
'#default_value' => isset($element['#value']['title']) ? $element['#value']['title'] : NULL,
);
}
else {
$element['title'] = array(
'#type' => 'textfield',
'#maxlength' => $element['#field']['widget']['title_lenght'],
'#title' => t('Title'),
'#required' => $delta == 0 && $field['title'] == 'required' ? $field['required'] : FALSE,
'#default_value' => isset($element['#value']['title']) ? $element['#value']['title'] : NULL,
);
}
}
// Initialize field attributes as an array if it is not an array yet.
if (!is_array($field['attributes'])) {
$field['attributes'] = array();
}
// Add default atrributes.
$field['attributes'] += _advanced_link_default_attributes();
$attributes = isset($element['#value']['attributes']) ? $element['#value']['attributes'] : $field['attributes'];
if (!empty($field['attributes']['target']) && $field['attributes']['target'] == LINK_TARGET_USER) {
$element['attributes']['target'] = array(
'#type' => 'checkbox',
'#title' => t('Open URL in a New Window'),
'#return_value' => LINK_TARGET_NEW_WINDOW,
'#default_value' => $attributes['target'],
);
}
return $element;
}