function views_maintenance_views_maintenance_use_cases in Views Maintenance 6
Same name and namespace in other branches
- 7 views_maintenance.views_maintenance.inc \views_maintenance_views_maintenance_use_cases()
Implements hook_views_maintenance_use_cases().
File
- ./
views_maintenance.views_maintenance.inc, line 352 - Provides displays use cases info to Views Maintenance.
Code
function views_maintenance_views_maintenance_use_cases($views) {
// Init blocks cache before any views init, because _block_rehash()
// resets views.
_views_maintenance_display_blocks_settings(NULL);
// Paths provided by displays. It is filled by multiple calls to
// _views_maintenance_display_paths_use_cases().
$paths = array();
// Collect displays use cases in blocks, attachments, as a menu item and
// broken displays.
$result = array();
foreach ($views as $view_id => $view) {
$view
->init_display();
foreach ($view->display as $display_id => $display) {
$use_cases = array();
// Fetch different types of use cases.
$use_cases[] = _views_maintenance_display_paths_use_cases($display, $view, $paths);
$use_cases[] = _views_maintenance_display_blocks_use_cases($display);
$use_cases[] = _views_maintenance_display_broken_use_cases($display);
$use_cases[] = _views_maintenance_display_attachment_use_cases($display, $view);
// Merge use cases together and add them to result.
$use_cases = call_user_func_array('array_merge', $use_cases);
if (!empty($use_cases)) {
$result[$view_id][$display_id] = $use_cases;
}
}
}
// Retrieve all use cases as menu items at once for paths provided by all
// displays.
$menu_use_cases = _views_maintenance_menu_items_use_cases($paths);
$result = array_merge_recursive($result, $menu_use_cases);
if (module_exists('views_content') && !function_exists('views_content_views_maintenance_use_cases')) {
module_load_include('inc', 'views_maintenance', 'includes/ctools');
// Fetch views use cases in page manager pages.
if (module_exists('page_manager')) {
$page_use_cases = _views_maintenance_page_use_cases();
$result = array_merge_recursive($result, $page_use_cases);
}
// Get views use cases in mini panels.
if (module_exists('panels_mini')) {
$mini_panel_use_cases = _views_maintenance_mini_panel_use_cases();
$result = array_merge_recursive($result, $mini_panel_use_cases);
}
// Collect use cases from panel nodes.
if (module_exists('panels_node')) {
$panel_node_use_cases = _views_maintenance_panel_node_use_cases();
$result = array_merge_recursive($result, $panel_node_use_cases);
}
}
return $result;
}