Code Coverage |
||||||||||
Classes and Traits |
Functions and Methods |
Lines |
||||||||
Total | |
0.00% |
0 / 1 |
|
0.00% |
0 / 1 |
CRAP | |
94.12% |
16 / 17 |
ViewPageController | |
0.00% |
0 / 1 |
|
0.00% |
0 / 1 |
7.01 | |
94.12% |
16 / 17 |
handle | |
0.00% |
0 / 1 |
7.01 | |
94.12% |
16 / 17 |
<?php | |
/** | |
* @file | |
* Contains \Drupal\views\Routing\ViewPageController. | |
*/ | |
namespace Drupal\views\Routing; | |
use Drupal\Core\Routing\RouteMatchInterface; | |
use Drupal\views\Plugin\views\display\Page; | |
/** | |
* Defines a page controller to execute and render a view. | |
*/ | |
class ViewPageController { | |
/** | |
* Handler a response for a given view and display. | |
* | |
* @param string $view_id | |
* The ID of the view | |
* @param string $display_id | |
* The ID of the display. | |
* @param \Drupal\Core\Routing\RouteMatchInterface $route_match | |
* The route match. | |
* @return null|void | |
*/ | |
public function handle($view_id, $display_id, RouteMatchInterface $route_match) { | |
$args = array(); | |
$route = $route_match->getRouteObject(); | |
$map = $route->hasOption('_view_argument_map') ? $route->getOption('_view_argument_map') : array(); | |
foreach ($map as $attribute => $parameter_name) { | |
// Allow parameters be pulled from the request. | |
// The map stores the actual name of the parameter in the request. Views | |
// which override existing controller, use for example 'node' instead of | |
// arg_nid as name. | |
if (isset($map[$attribute])) { | |
$attribute = $map[$attribute]; | |
} | |
if ($arg = $route_match->getRawParameter($attribute)) { | |
} | |
else { | |
$arg = $route_match->getParameter($attribute); | |
} | |
if (isset($arg)) { | |
$args[] = $arg; | |
} | |
} | |
/** @var \Drupal\views\Plugin\views\display\DisplayPluginBase $class */ | |
$class = $route->getOption('_view_display_plugin_class'); | |
if ($route->getOption('returns_response')) { | |
/** @var \Drupal\views\Plugin\views\display\ResponseDisplayPluginInterface $class */ | |
return $class::buildResponse($view_id, $display_id, $args); | |
} | |
else { | |
$build = $class::buildBasicRenderable($view_id, $display_id, $args, $route); | |
Page::setPageRenderArray($build); | |
views_add_contextual_links($build, 'page', $display_id, $build); | |
return $build; | |
} | |
} | |
} |