// 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);
// 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()];
} // 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;
}