function ViewsUiHooks::viewsAnalyze

Implements hook_views_analyze().

This is the basic views analysis that checks for very minimal problems. There are other analysis tools in core specific sections, such as node.views.inc as well.

Attributes

#[Hook('views_analyze')]

File

core/modules/views_ui/src/Hook/ViewsUiHooks.php, line 199

Class

ViewsUiHooks
Hook implementations for views_ui.

Namespace

Drupal\views_ui\Hook

Code

public function viewsAnalyze(ViewExecutable $view) : array {
  $ret = [];
  // Check for something other than the default display:
  if (count($view->displayHandlers) < 2) {
    $ret[] = Analyzer::formatMessage($this->t('This view has only a default display and therefore will not be placed anywhere on your site; perhaps you want to add a page or a block display.'), 'warning');
  }
  // If a display has a path, check that it does not match an existing path
  // alias. This results in the path alias not working.
  foreach ($view->displayHandlers as $display) {
    if (empty($display)) {
      continue;
    }
    if ($display->hasPath() && ($path = $display->getOption('path'))) {
      $normal_path = \Drupal::service('path_alias.manager')->getPathByAlias($path);
      if ($path != $normal_path) {
        $ret[] = Analyzer::formatMessage($this->t('You have configured display %display with a path which is an path alias as well. This might lead to unwanted effects so better use an internal path.', [
          '%display' => $display->display['display_title'],
        ]), 'warning');
      }
    }
  }
  return $ret;
}

Buggy or inaccurate documentation? Please file an issue. Need support? Need help programming? Connect with the Drupal community.