You are here

function _views_maintenance_view_status in Views Maintenance 6

Same name and namespace in other branches
  1. 7 views_maintenance.admin.inc \_views_maintenance_view_status()

Returns view status based on its displays statuses.

Parameters

array $displays_statuses: Flat array containing statuses from most important use case of each view display.

Return value

string Status of view. Value is one of:

  • "broken"
  • "ok"
  • "has-maybe"
  • "has-unused"
  • "unused".
1 call to _views_maintenance_view_status()
views_maintenance_page in ./views_maintenance.admin.inc
Page callback for views maintenance page.

File

./views_maintenance.admin.inc, line 34
Provides administrative UI for Views Maintenance.

Code

function _views_maintenance_view_status($displays_statuses = array()) {

  // Check "broken" status existence.
  if (array_search('broken', $displays_statuses) !== FALSE) {
    return 'broken';
  }

  // Move 'default' display status from array
  $default_status = $displays_statuses['default'];
  unset($displays_statuses['default']);
  if (empty($displays_statuses)) {

    // Default display is the only display in view, use its status for view
    // status.
    switch ($default_status) {
      case 'ok':
        return 'ok';
      case 'maybe':
        return 'has-maybe';
      default:

        // unused
        return 'unused';
    }
  }
  $counts = array_count_values($displays_statuses);
  if (!empty($counts['unused'])) {

    // View has unused displays.
    if (empty($counts['ok']) && empty($counts['maybe']) && $default_status == 'unused') {

      // View contains only unused displays.
      return 'unused';
    }
    else {

      // View has unused displays among others.
      return 'has-unused';
    }
  }
  elseif (!empty($counts['maybe'])) {

    // View doesn't have unused displays, but has "maybe" non-default displays.
    // Default display status is ignored here.
    return 'has-maybe';
  }
  else {

    // All non-default displays have "ok" status, ignore default display status.
    return 'ok';
  }
}