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
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 | 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.