You are here

function _views_maintenance_mini_panel_use_cases in Views Maintenance 6

Same name and namespace in other branches
  1. 7 includes/ctools.inc \_views_maintenance_mini_panel_use_cases()

Returns displays use cases in all mini-panels.

Return value

array Nested array with use cases grouped by view name and display id.

1 call to _views_maintenance_mini_panel_use_cases()
views_maintenance_views_maintenance_use_cases in ./views_maintenance.views_maintenance.inc
Implements hook_views_maintenance_use_cases().

File

includes/ctools.inc, line 465
Provides integration with Page Manager and Panels Mini.

Code

function _views_maintenance_mini_panel_use_cases() {
  ctools_include('content');
  ctools_include('plugins');
  ctools_include('context');
  ctools_include('export-ui');
  $plugin = ctools_get_export_ui('panels_mini');
  $mini_panels = panels_mini_load_all();
  $result = array();

  // Iterate through mini-panels and fill use cases.
  foreach ($mini_panels as $name => $mini_panel) {
    if (!empty($mini_panel->display->content)) {
      foreach ($mini_panel->display->content as $pane) {

        // Analyze each pane and get view name and display id (if any).
        $id = _views_maintenance_display_id_from_pane($pane);
        if (!empty($id)) {
          list($view_id, $display_id) = $id;
          $use_case = _views_maintenance_mini_panel_pane_use_case($plugin, $mini_panel, $pane);
          $result[$view_id][$display_id][] = $use_case;
        }
      }
    }

    // Iterate over contexts and fill use cases.
    $contexts = ctools_context_get_context_from_contexts($mini_panel->contexts, 'context', TRUE);
    foreach ($contexts as $context) {
      $id = _views_maintenance_display_id_from_context($context);
      if (!empty($id)) {
        list($view_id, $display_id) = $id;
        $use_case = _views_maintenance_mini_panel_context_use_case($plugin, $mini_panel, $context);
        $result[$view_id][$display_id][] = $use_case;
      }
    }
  }
  return $result;
}