| Code Coverage | ||||||||||
| Classes and Traits | Functions and Methods | Lines | ||||||||
| Total |  | 0.00% | 0 / 1 |  | 0.00% | 0 / 4 | CRAP |  | 0.00% | 0 / 38 | 
| Analyzer |  | 0.00% | 0 / 1 |  | 0.00% | 0 / 4 | 132 |  | 0.00% | 0 / 38 | 
| __construct |  | 0.00% | 0 / 1 | 2 |  | 0.00% | 0 / 2 | |||
| getMessages |  | 0.00% | 0 / 1 | 2 |  | 0.00% | 0 / 4 | |||
| formatMessages |  | 0.00% | 0 / 1 | 72 |  | 0.00% | 0 / 30 | |||
| formatMessage |  | 0.00% | 0 / 1 | 2 |  | 0.00% | 0 / 2 | |||
| <?php | |
| /** | |
| * @file | |
| * Contains \Drupal\views\Analyzer. | |
| */ | |
| namespace Drupal\views; | |
| use Drupal\Core\Extension\ModuleHandlerInterface; | |
| /** | |
| * This tool is a small plugin manager to perform analysis on a view and | |
| * report results to the user. This tool is meant to let modules that | |
| * provide data to Views also help users properly use that data by | |
| * detecting invalid configurations. Views itself comes with only a | |
| * small amount of analysis tools, but more could easily be added either | |
| * by modules or as patches to Views itself. | |
| */ | |
| class Analyzer { | |
| /** | |
| * A module handler that invokes the 'views_analyze' hook. | |
| * | |
| * @var \Drupal\Core\Extension\ModuleHandlerInterface | |
| */ | |
| protected $moduleHandler; | |
| /** | |
| * Constructs an Analyzer object. | |
| * | |
| * @param \Drupal\Core\Extension\ModuleHandlerInterface $module_handler | |
| * The module handler that invokes the 'views_analyze' hook. | |
| */ | |
| public function __construct(ModuleHandlerInterface $module_handler) { | |
| $this->moduleHandler = $module_handler; | |
| } | |
| /** | |
| * Analyzes a review and return the results. | |
| * | |
| * @param \Drupal\views\ViewExecutable $view | |
| * The view to analyze. | |
| * | |
| * @return array | |
| * An array of analyze results organized into arrays keyed by 'ok', | |
| * 'warning' and 'error'. | |
| */ | |
| public function getMessages(ViewExecutable $view) { | |
| $view->initDisplay(); | |
| $messages = $this->moduleHandler->invokeAll('views_analyze', array($view)); | |
| return $messages; | |
| } | |
| /** | |
| * Formats the analyze result into a message string. | |
| * | |
| * This is based upon the format of drupal_set_message which uses separate | |
| * boxes for "ok", "warning" and "error". | |
| */ | |
| public function formatMessages(array $messages) { | |
| if (empty($messages)) { | |
| $messages = array(static::formatMessage(t('View analysis can find nothing to report.'), 'ok')); | |
| } | |
| $types = array('ok' => array(), 'warning' => array(), 'error' => array()); | |
| foreach ($messages as $message) { | |
| if (empty($types[$message['type']])) { | |
| $types[$message['type']] = array(); | |
| } | |
| $types[$message['type']][] = $message['message']; | |
| } | |
| $output = ''; | |
| foreach ($types as $type => $messages) { | |
| $type .= ' messages'; | |
| $message = ''; | |
| if (count($messages) > 1) { | |
| $item_list = array( | |
| '#theme' => 'item_list', | |
| '#items' => $messages, | |
| ); | |
| $message = drupal_render($item_list); | |
| } | |
| elseif ($messages) { | |
| $message = array_shift($messages); | |
| } | |
| if ($message) { | |
| $output .= "<div class=\"$type\">$message</div>"; | |
| } | |
| } | |
| return $output; | |
| } | |
| /** | |
| * Formats an analysis message. | |
| * | |
| * This tool should be called by any module responding to the analyze hook | |
| * to properly format the message. It is usually used in the form: | |
| * @code | |
| * $ret[] = Analyzer::formatMessage(t('This is the message'), 'ok'); | |
| * @endcode | |
| * | |
| * The 'ok' status should be used to provide information about things | |
| * that are acceptable. In general analysis isn't interested in 'ok' | |
| * messages, but instead the 'warning', which is a category for items | |
| * that may be broken unless the user knows what he or she is doing, | |
| * and 'error' for items that are definitely broken are much more useful. | |
| * | |
| * @param string $message | |
| * @param string $type | |
| * The type of message. This should be "ok", "warning" or "error". Other | |
| * values can be used but how they are treated by the output routine | |
| * is undefined. | |
| * | |
| * @return array | |
| * A single formatted message, consisting of a key message and a key type. | |
| */ | |
| static function formatMessage($message, $type = 'error') { | |
| return array('message' => $message, 'type' => $type); | |
| } | |
| } |