public static Views::getApplicableViews($type)
Return a list of all view IDs and display IDs that have a particular setting in their display's plugin settings.
array( array($view_id, $display_id), array($view_id, $display_id), );
Parameters
string $type: A flag from the display plugin definitions (e.g, 'uses_menu_links').
Return value
array A list of arrays containing the $view_id and $display_id.
File
- core/modules/views/src/Views.php, line 205
Class
- Views
- Static service container wrapper for views.
Namespace
Drupal\views
Code
public static function getApplicableViews($type) {
// Get all display plugins which provides the type.
$display_plugins = static::pluginManager('display')->getDefinitions();
$plugin_ids = [];
foreach ($display_plugins as $id => $definition) {
if (!empty($definition[$type])) {
$plugin_ids[$id] = $id;
}
}
$entity_ids = \Drupal::service('entity.query')->get('view')
->condition('status', TRUE)
->condition("display.*.display_plugin", $plugin_ids, 'IN')
->execute();
$result = array();
foreach (\Drupal::entityManager()->getStorage('view')->loadMultiple($entity_ids) as $view) {
// Check each display to see if it meets the criteria and is enabled.
foreach ($view->get('display') as $id => $display) {
// If the key doesn't exist, enabled is assumed.
$enabled = !empty($display['display_options']['enabled']) || !array_key_exists('enabled', $display['display_options']);
if ($enabled && in_array($display['display_plugin'], $plugin_ids)) {
$result[] = [$view->id(), $id];
}
}
}
return $result;
}
Please login to continue.