function views_ui_views_analyze

Same name in other branches
  1. 7.x-3.x includes/analyze.inc \views_ui_views_analyze()

Implementation of 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.

File

includes/analyze.inc, line 99

Code

function views_ui_views_analyze($view) {
    $ret = array();
    // Check for something other than the default display:
    if (count($view->display) < 2) {
        $ret[] = views_ui_analysis(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');
    }
    foreach ($view->display as $display_id => $display) {
        if (empty($display->handler) || !empty($display->handler->broken)) {
            $ret[] = views_ui_analysis(t('Display plugin @plugin is not available.', array(
                '@plugin' => $display->display_plugin,
            )), 'error');
        }
        $plugin = $display->handler
            ->get_plugin('style');
        if ($plugin) {
            $plugin->init($view, $display);
            if ($validate_messages = $plugin->validate()) {
                foreach ($validate_messages as $validate_message) {
                    $ret[] = views_ui_analysis(t('Style plugin @plugin: @message', array(
                        '@plugin' => $plugin_name,
                        '@message' => $validate_message,
                    )));
                }
            }
        }
        else {
            $ret[] = views_ui_analysis(t('Style plugin @plugin is not available.', array(
                '@plugin' => $plugin_name,
            )), 'error');
        }
        foreach (views_object_types() as $type => $info) {
            $handlers = $display->handler
                ->get_handlers($type);
            if ($handlers) {
                foreach ($handlers as $id => $handler) {
                    if ($validate_messages = $handler->validate()) {
                        foreach ($validate_messages as $message) {
                            $ret[] = views_ui_analysis("{$display_id}: {$id}: {$message}", 'error');
                        }
                    }
                    if ($handler->broken()) {
                        $ret[] = views_ui_analysis(t('@type handler @table.@field is not available.', array(
                            '@type' => $info['stitle'],
                            '@table' => $handler->table,
                            '@field' => $handler->field,
                        )), 'error');
                    }
                }
            }
        }
    }
    return $ret;
}