Code Coverage  | 
     ||||||||||
Classes and Traits  | 
      Functions and Methods  | 
      Lines  | 
     ||||||||
| Total |         | 
      0.00%  | 
      0 / 1  | 
              | 
      0.00%  | 
      0 / 7  | 
      CRAP |         | 
      43.75%  | 
      14 / 32  | 
     
| ViewsBlock |         | 
      0.00%  | 
      0 / 1  | 
              | 
      0.00%  | 
      0 / 7  | 
      68.44 |         | 
      43.75%  | 
      14 / 32  | 
     
| build |         | 
      0.00%  | 
      0 / 1  | 
      5.03 |         | 
      90.00%  | 
      9 / 10  | 
     |||
| getConfiguration |         | 
      0.00%  | 
      0 / 1  | 
      6 |         | 
      0.00%  | 
      0 / 4  | 
     |||
| defaultConfiguration |         | 
      0.00%  | 
      0 / 1  | 
      3.04 |         | 
      83.33%  | 
      5 / 6  | 
     |||
| blockForm |         | 
      0.00%  | 
      0 / 1  | 
      6 |         | 
      0.00%  | 
      0 / 3  | 
     |||
| blockValidate |         | 
      0.00%  | 
      0 / 1  | 
      6 |         | 
      0.00%  | 
      0 / 3  | 
     |||
| blockSubmit |         | 
      0.00%  | 
      0 / 1  | 
      6 |         | 
      0.00%  | 
      0 / 4  | 
     |||
| getMachineNameSuggestion |         | 
      0.00%  | 
      0 / 1  | 
      2 |         | 
      0.00%  | 
      0 / 2  | 
     |||
| <?php | |
| /** | |
| * @file | |
| * Contains \Drupal\views\Plugin\Block\ViewsBlock. | |
| */ | |
| namespace Drupal\views\Plugin\Block; | |
| use Drupal\Component\Utility\Xss; | |
| use Drupal\Core\Form\FormStateInterface; | |
| use Drupal\views\Element\View; | |
| /** | |
| * Provides a generic Views block. | |
| * | |
| * @Block( | |
| * id = "views_block", | |
| * admin_label = @Translation("Views Block"), | |
| * deriver = "Drupal\views\Plugin\Derivative\ViewsBlock" | |
| * ) | |
| */ | |
| class ViewsBlock extends ViewsBlockBase { | |
| /** | |
| * {@inheritdoc} | |
| */ | |
| public function build() { | |
| $this->view->display_handler->preBlockBuild($this); | |
| // We ask ViewExecutable::buildRenderable() to avoid creating a render cache | |
| // entry for the view output by passing FALSE, because we're going to cache | |
| // the whole block instead. | |
| if ($output = $this->view->buildRenderable($this->displayID, [], FALSE)) { | |
| // Override the label to the dynamic title configured in the view. | |
| if (empty($this->configuration['views_label']) && $this->view->getTitle()) { | |
| $output['#title'] = ['#markup' => $this->view->getTitle(), '#allowed_tags' => Xss::getHtmlTagList()]; | |
| } | |
| // Before returning the block output, convert it to a renderable array | |
| // with contextual links. | |
| $this->addContextualLinks($output); | |
| // Block module expects to get a final render array, without another | |
| // top-level #pre_render callback. So, here we make sure that Views' | |
| // #pre_render callback has already been applied. | |
| $output = View::preRenderViewElement($output); | |
| // When view_build is empty, the actual render array output for this View | |
| // is going to be empty. In that case, return just #cache, so that the | |
| // render system knows the reasons (cache contexts & tags) why this Views | |
| // block is empty, and can cache it accordingly. | |
| if (empty($output['view_build'])) { | |
| $output = ['#cache' => $output['#cache']]; | |
| } | |
| return $output; | |
| } | |
| return array(); | |
| } | |
| /** | |
| * {@inheritdoc} | |
| */ | |
| public function getConfiguration() { | |
| $configuration = parent::getConfiguration(); | |
| // Set the label to the static title configured in the view. | |
| if (!empty($configuration['views_label'])) { | |
| $configuration['label'] = $configuration['views_label']; | |
| } | |
| return $configuration; | |
| } | |
| /** | |
| * {@inheritdoc} | |
| */ | |
| public function defaultConfiguration() { | |
| $settings = parent::defaultConfiguration(); | |
| if ($this->displaySet) { | |
| $settings += $this->view->display_handler->blockSettings($settings); | |
| } | |
| // Set custom cache settings. | |
| if (isset($this->pluginDefinition['cache'])) { | |
| $settings['cache'] = $this->pluginDefinition['cache']; | |
| } | |
| return $settings; | |
| } | |
| /** | |
| * {@inheritdoc} | |
| */ | |
| public function blockForm($form, FormStateInterface $form_state) { | |
| if ($this->displaySet) { | |
| return $this->view->display_handler->blockForm($this, $form, $form_state); | |
| } | |
| return array(); | |
| } | |
| /** | |
| * {@inheritdoc} | |
| */ | |
| public function blockValidate($form, FormStateInterface $form_state) { | |
| if ($this->displaySet) { | |
| $this->view->display_handler->blockValidate($this, $form, $form_state); | |
| } | |
| } | |
| /** | |
| * {@inheritdoc} | |
| */ | |
| public function blockSubmit($form, FormStateInterface $form_state) { | |
| parent::blockSubmit($form, $form_state); | |
| if ($this->displaySet) { | |
| $this->view->display_handler->blockSubmit($this, $form, $form_state); | |
| } | |
| } | |
| /** | |
| * {@inheritdoc} | |
| */ | |
| public function getMachineNameSuggestion() { | |
| $this->view->setDisplay($this->displayID); | |
| return 'views_block__' . $this->view->storage->id() . '_' . $this->view->current_display; | |
| } | |
| } |