function entityreference_view_widget_field_widget_settings_form in Entity Reference View Widget 7
Same name and namespace in other branches
- 7.2 entityreference_view_widget.module \entityreference_view_widget_field_widget_settings_form()
Implements hook_field_widget_settings_form().
File
- ./
entityreference_view_widget.module, line 134
Code
function entityreference_view_widget_field_widget_settings_form($field, $instance) {
// Only fields with unlimited cardinality are supported at the moment.
if ($field['cardinality'] != FIELD_CARDINALITY_UNLIMITED) {
drupal_set_message(t("The selected widget only supports fields with 'Number of values' set to 'Unlimited'. Otherwise it won't get displayed on the entity form."), 'warning');
}
$widget = $instance['widget'];
$settings = $widget['settings'];
$target_type = $field['settings']['target_type'];
$info = entity_get_info($target_type);
$target_base_table = $info['base table'];
if ($widget['type'] == 'entityreference_view_widget') {
// Get a list of all views that contain a "Entityreference View Widget" display.
$options = array();
$displays = views_get_applicable_views('entityreference view display');
foreach ($displays as $data) {
list($view, $display_id) = $data;
$view_name = !empty($view->human_name) ? $view->human_name : $view->name;
$options[$view->name . '|' . $display_id] = check_plain($view_name . ' | ' . $view->display_handler->display->display_title);
}
$element['view'] = array(
'#type' => 'select',
'#title' => t('View'),
'#description' => t('Specify the View to use for selecting items. Only views that have an "Entityreference View Widget" display are shown.'),
'#options' => $options,
'#default_value' => $settings['view'],
'#required' => TRUE,
);
$element['pass_argument'] = array(
'#type' => 'checkbox',
'#title' => t('Pass selected entity ids to View'),
'#description' => t('If enabled, the View will get all selected entity ids as the first argument. Useful for excluding already selected items.'),
'#default_value' => $settings['pass_argument'],
);
}
return $element;
}