function _viewfield_potential_references in Viewfield 7.3
Same name and namespace in other branches
- 5 viewfield.module \_viewfield_potential_references()
- 6.2 viewfield.module \_viewfield_potential_references()
- 6 viewfield.module \_viewfield_potential_references()
- 7.2 viewfield.module \_viewfield_potential_references()
Returns a select options list of views displays of enabled and allowed views.
1 call to _viewfield_potential_references()
- viewfield_field_widget_form in ./
viewfield.module - Implements hook_field_widget_form().
File
- ./
viewfield.module, line 437 - Defines a field type to display a view.
Code
function _viewfield_potential_references($field, $instance) {
// Retrieve all currently available views.
$views = views_get_enabled_views();
$options = array();
// Get configured values for field view label and display label.
$view_label = isset($instance['settings']['view_label']) ? $instance['settings']['view_label'] : 'human';
$display_label = isset($instance['settings']['display_label']) ? $instance['settings']['display_label'] : 'human';
// Limit to allowed values, if any.
if (isset($instance['settings']['allowed_views']) && is_array($instance['settings']['allowed_views'])) {
if ($allowed = array_filter($instance['settings']['allowed_views'])) {
foreach ($allowed as $allowed_view) {
$enabled_view = explode('|', $allowed_view);
list($machine_name, $display) = $enabled_view;
// Since we cannot detect when a view's machine name changes or when a
// view is removed, we have to make sure that the view and its display
// still exist.
if (isset($views[$machine_name]) && isset($views[$machine_name]->display[$display])) {
$options[$allowed_view] = _viewfield_get_option_label($views[$machine_name], $view_label, $views[$machine_name]->display[$display], $display_label);
}
}
}
}
// None selected, show all.
if (empty($options)) {
foreach ($views as $view_name => $view) {
foreach ($view->display as $display) {
$options[$view->name . '|' . $display->id] = _viewfield_get_option_label($view, $view_label, $display, $display_label);
}
}
}
asort($options);
return $options;
}