function _field_conditional_state_get_element_settings in Field Conditional States 7.2
Returns the path to the actual input element within the $element array.
Return value
array array with two keys: -form_elements: "Path" to the actual input/select elements within the array The first element here is used as actual trigger element. -field_data: Path to the fields data (#entity_type, #bundle, #field_name)
6 calls to _field_conditional_state_get_element_settings()
- field_conditional_state_controled_field_is_supported in ./
field_conditional_state.module - Checks whether the given widget is supported as controled field.
- field_conditional_state_control_field_is_supported in ./
field_conditional_state.module - Checks whether the given widget is supported as control field.
- field_conditional_state_element_after_build in ./
field_conditional_state.module - Finds the actual element and adds the #pre_render callback to it.
- field_conditional_state_form_field_ui_widget_type_form_alter in ./
field_conditional_state.module - Implements hook_form_FORMID_alter() for field_ui_widget_type_form().
- field_conditional_state_settings_form in ./
field_conditional_state.admin.inc - Builds the settings form for a particular field instance.
File
- ./
field_conditional_state.module, line 69 - Main functions of this module.
Code
function _field_conditional_state_get_element_settings($widget_type = NULL) {
$cached =& drupal_static(__FUNCTION__, array());
$settings = array();
if (!empty($cached)) {
$settings = $cached;
}
else {
$settings_default = array(
'form_elements' => array(),
'field_data' => array(),
// If reprocess_from_root is set to true, the field will be reprocessed
// during the after_build phase of the form root.
'reprocess_from_root' => FALSE,
'field_states' => array(),
'trigger_states' => array(),
'trigger_value_widget' => '_field_conditional_state_default_trigger_value_widget',
'trigger_value_submit' => '_field_conditional_state_default_trigger_value_submit',
);
$settings['addressfield_standard'] = $settings_default;
$settings['addressfield_standard']['form_elements'][] = array(
'street_block',
'thoroughfare',
);
$settings['addressfield_standard']['form_elements'][] = array(
'street_block',
'premise',
);
$settings['addressfield_standard']['form_elements'][] = array(
'locality_block',
'locality',
);
$settings['addressfield_standard']['form_elements'][] = array(
'country',
);
$settings['addressfield_standard']['form_elements'][] = array(
'organisation_block',
'organisation_name',
);
$settings['addressfield_standard']['form_elements'][] = array(
'name_block',
'name_line',
);
$settings['addressfield_standard']['form_elements'][] = array(
'name_block',
'first_name',
);
$settings['addressfield_standard']['form_elements'][] = array(
'name_block',
'last_name',
);
$settings['enfield_widget'] = $settings_default;
$settings['enfield_widget']['form_elements'][] = array(
'fid',
);
$settings['enfield_widget']['field_data'] = array(
'fid',
);
$settings['enfield_widget']['reprocess_from_root'] = TRUE;
$settings['entityreference_autocomplete'] = $settings_default;
$settings['entityreference_autocomplete']['form_elements'][] = array(
'target_id',
);
$settings['entityreference_autocomplete']['field_data'] = array(
'target_id',
);
$settings['entityreference_autocomplete']['reprocess_from_root'] = TRUE;
$settings['entityreference_autocomplete_tags'] = $settings_default;
$settings['entityreference_autocomplete_tags']['form_elements'][] = array();
$settings['email_textfield'] = $settings_default;
$settings['email_textfield']['form_elements'][] = array(
'email',
);
$settings['email_textfield']['field_data'] = array();
$settings['file_generic'] = $settings_default;
$settings['file_generic']['form_elements'][] = array(
0,
'upload',
);
$settings['file_generic']['field_data'] = array(
0,
);
$settings['file_generic']['reprocess_from_root'] = TRUE;
$settings['image_image'] = $settings_default;
$settings['image_image']['form_elements'][] = array(
0,
'upload',
);
$settings['image_image']['field_data'] = array(
0,
);
$settings['image_image']['reprocess_from_root'] = TRUE;
$settings['starrating_rating_widget'] = $settings_default;
$settings['starrating_rating_widget']['form_elements'][] = array(
'value',
);
$settings['starrating_rating_widget']['field_data'] = array(
'value',
);
$settings['link_field'] = $settings_default;
$settings['link_field']['form_elements'][] = array(
'title',
);
$settings['link_field']['form_elements'][] = array(
'url',
);
$settings['link_field']['reprocess_from_root'] = TRUE;
$settings['number'] = $settings_default;
$settings['number']['form_elements'][] = array(
'value',
);
$settings['number']['field_data'] = array(
'value',
);
$settings['number']['reprocess_from_root'] = TRUE;
$settings['options_buttons'] = $settings_default;
$settings['options_buttons']['form_elements'][] = array();
$settings['options_onoff'] = $settings_default;
$settings['options_onoff']['form_elements'][] = array();
$settings['options_select'] = $settings_default;
$settings['options_select']['form_elements'][] = array();
$settings['options_select']['trigger_value_widget'] = '_field_conditional_state_select_trigger_value_widget';
$settings['options_select']['trigger_value_submit'] = '_field_conditional_state_select_trigger_value_submit';
$settings['text_textfield'] = $settings_default;
$settings['text_textfield']['form_elements'][] = array(
'value',
);
$settings['text_textfield']['field_data'] = array(
'value',
);
$settings['text_textfield']['reprocess_from_root'] = TRUE;
$settings['url_external'] = $settings_default;
$settings['url_external']['form_elements'][] = array(
'value',
);
$settings['url_external']['field_data'] = array();
$settings['video_embed_field_video'] = $settings_default;
$settings['video_embed_field_video']['form_elements'][] = array(
'video_url',
);
$settings['video_embed_field_video']['field_data'] = array();
$settings['taxonomy_autocomplete'] = $settings_default;
$settings['taxonomy_autocomplete']['form_elements'][] = array();
$settings['text_textarea'] = $settings_default;
$settings['text_textarea']['form_elements'][] = array(
'value',
);
$settings['text_textarea']['reprocess_from_root'] = TRUE;
$settings['text_textarea_with_summary'] = $settings_default;
$settings['text_textarea_with_summary']['form_elements'][] = array(
'value',
);
$settings['text_textarea_with_summary']['form_elements'][] = array(
'format',
);
$settings['text_textarea_with_summary']['form_elements'][] = array(
'summary',
);
$settings['text_textarea_with_summary']['reprocess_from_root'] = TRUE;
foreach ($settings as $field => &$data) {
$data['field_states'] = _field_conditional_state_get_field_states($field);
$data['trigger_states'] = _field_conditional_state_get_trigger_states($field);
}
drupal_alter('field_conditional_state_settings', $settings);
foreach ($settings as &$data) {
if (!isset($data['field_states'])) {
$data['field_states'] = array();
}
else {
$data['field_states'] = _field_conditional_state_create_label_mapping($data['field_states']);
}
if (!isset($data['trigger_states'])) {
$data['trigger_states'] = array();
}
else {
$data['trigger_states'] = _field_conditional_state_create_label_mapping($data['trigger_states']);
}
}
$cached = $settings;
}
if (is_null($widget_type) || empty($settings[$widget_type])) {
return $settings;
}
else {
return $settings[$widget_type];
}
}