function views_get_applicable_views in Views (for Drupal 7) 8.3
Same name and namespace in other branches
- 6.3 views.module \views_get_applicable_views()
- 6.2 views.module \views_get_applicable_views()
- 7.3 views.module \views_get_applicable_views()
Return a list of all views and display IDs that have a particular setting in their display's plugin settings.
@endcode
Return value
@code array( array($view, $display_id), array($view, $display_id), );
1 call to views_get_applicable_views()
- views_menu_alter in ./
views.module - Implement hook_menu_alter().
File
- ./
views.module, line 1484 - Primarily Drupal hooks and global API functions to manipulate views.
Code
function views_get_applicable_views($type) {
// @todo: Use a smarter flagging system so that we don't have to
// load every view for this.
$result = array();
$views = views_get_all_views();
foreach ($views as $view) {
// Skip disabled views.
if (!$view
->isEnabled()) {
continue;
}
if (empty($view->display)) {
// Skip this view as it is broken.
continue;
}
// Loop on array keys because something seems to muck with $view->display
// a bit in PHP4.
foreach (array_keys($view->display) as $id) {
$plugin = views_get_plugin_definition('display', $view->display[$id]['display_plugin']);
if (!empty($plugin[$type])) {
$executable = $view
->getExecutable();
// This view uses_hook_menu. Clone it so that different handlers
// don't trip over each other, and add it to the list.
$v = $executable
->cloneView();
if ($v
->setDisplay($id) && $v->display_handler
->isEnabled()) {
$result[] = array(
$v,
$id,
);
}
// In PHP 4.4.7 and presumably earlier, if we do not unset $v
// here, we will find that it actually overwrites references
// possibly due to shallow copying issues.
unset($v);
}
}
}
return $result;
}