Code Coverage |
||||||||||
Classes and Traits |
Functions and Methods |
Lines |
||||||||
Total | |
0.00% |
0 / 1 |
|
0.00% |
0 / 1 |
CRAP | |
0.00% |
0 / 9 |
ModalRenderer | |
0.00% |
0 / 1 |
|
0.00% |
0 / 1 |
6 | |
0.00% |
0 / 9 |
renderResponse | |
0.00% |
0 / 1 |
6 | |
0.00% |
0 / 9 |
<?php | |
/** | |
* @file | |
* Contains \Drupal\Core\Render\MainContent\ModalRenderer. | |
*/ | |
namespace Drupal\Core\Render\MainContent; | |
use Drupal\Core\Ajax\AjaxResponse; | |
use Drupal\Core\Ajax\OpenModalDialogCommand; | |
use Drupal\Core\Routing\RouteMatchInterface; | |
use Symfony\Component\HttpFoundation\Request; | |
/** | |
* Default main content renderer for modal dialog requests. | |
*/ | |
class ModalRenderer extends DialogRenderer { | |
/** | |
* {@inheritdoc} | |
*/ | |
public function renderResponse(array $main_content, Request $request, RouteMatchInterface $route_match) { | |
$response = new AjaxResponse(); | |
// First render the main content, because it might provide a title. | |
$content = drupal_render_root($main_content); | |
// Attach the library necessary for using the OpenModalDialogCommand and set | |
// the attachments for this Ajax response. | |
$main_content['#attached']['library'][] = 'core/drupal.dialog.ajax'; | |
$response->setAttachments($main_content['#attached']); | |
// If the main content doesn't provide a title, use the title resolver. | |
$title = isset($main_content['#title']) ? $main_content['#title'] : $this->titleResolver->getTitle($request, $route_match->getRouteObject()); | |
// Determine the title: use the title provided by the main content if any, | |
// otherwise get it from the routing information. | |
$options = $request->request->get('dialogOptions', array()); | |
$response->addCommand(new OpenModalDialogCommand($title, $content, $options)); | |
return $response; | |
} | |
} |