40 lines
1.4 KiB
PHP
40 lines
1.4 KiB
PHP
<?php
|
|
|
|
/**
|
|
* @file
|
|
* Contains the view analyze tool code.
|
|
*/
|
|
|
|
use Drupal\views\Analyzer;
|
|
|
|
/**
|
|
* 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.
|
|
*/
|
|
function views_ui_views_analyze($view) {
|
|
$ret = array();
|
|
// Check for something other than the default display:
|
|
if (count($view->display) < 2) {
|
|
$ret[] = Analyzer::formatMessage(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');
|
|
}
|
|
// You can give a page display the same path as an alias existing in the
|
|
// system, so the alias will not work anymore. Report this to the user,
|
|
// because he probably wanted something else.
|
|
foreach ($view->display as $id => $display) {
|
|
if (empty($display->handler)) {
|
|
continue;
|
|
}
|
|
if ($display->handler->hasPath() && $path = $display->handler->getOption('path')) {
|
|
$normal_path = drupal_get_normal_path($path);
|
|
if ($path != $normal_path) {
|
|
$ret[] = Analyzer::formatMessage(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.', array('%display' => $display->display_title)), 'warning');
|
|
}
|
|
}
|
|
}
|
|
|
|
return $ret;
|
|
}
|