public static Views::getViewsAsOptions($views_only = FALSE, $filter = 'all', $exclude_view = NULL, $optgroup = FALSE, $sort = FALSE)
Returns an array of view as options array, that can be used by select, checkboxes and radios as #options.
Parameters
bool $views_only: If TRUE, only return views, not displays.
string $filter: Filters the views on status. Can either be 'all' (default), 'enabled' or 'disabled'
mixed $exclude_view: view or current display to exclude either a
- views object (containing $exclude_view->storage->name and $exclude_view->current_display)
- views name as string: e.g. my_view
- views name and display id (separated by ':'): e.g. my_view:default
bool $optgroup: If TRUE, returns an array with optgroups for each view (will be ignored for $views_only = TRUE). Can be used by select
bool $sort: If TRUE, the list of views is sorted ascending.
Return value
array An associative array for use in select.
- key: view name and display id separated by ':', or the view name only.
File
- core/modules/views/src/Views.php, line 301
Class
- Views
- Static service container wrapper for views.
Namespace
Drupal\views
Code
public static function getViewsAsOptions($views_only = FALSE, $filter = 'all', $exclude_view = NULL, $optgroup = FALSE, $sort = FALSE) { // Filter the big views array. switch ($filter) { case 'all': case 'disabled': case 'enabled': $filter = ucfirst($filter); $views = call_user_func("static::get{$filter}Views"); break; default: return array(); } // Prepare exclude view strings for comparison. if (empty($exclude_view)) { $exclude_view_name = ''; $exclude_view_display = ''; } elseif (is_object($exclude_view)) { $exclude_view_name = $exclude_view->storage->id(); $exclude_view_display = $exclude_view->current_display; } else { // Append a ':' to the $exclude_view string so we always have more than one // item to explode. list($exclude_view_name, $exclude_view_display) = explode(':', "$exclude_view:"); } $options = array(); foreach ($views as $view) { $id = $view->id(); // Return only views. if ($views_only && $id != $exclude_view_name) { $options[$id] = $view->label(); } // Return views with display ids. else { foreach ($view->get('display') as $display_id => $display) { if (!($id == $exclude_view_name && $display_id == $exclude_view_display)) { if ($optgroup) { $options[$id][$id . ':' . $display['id']] = t('@view : @display', array('@view' => $id, '@display' => $display['id'])); } else { $options[$id . ':' . $display['id']] = t('View: @view - Display: @display', array('@view' => $id, '@display' => $display['id'])); } } } } } if ($sort) { ksort($options); } return $options; }
Please login to continue.