Magento 2 Documentation  2.3
Documentation for Magento 2 CMS v2.3 (December 2018)
Render.php
Go to the documentation of this file.
1 <?php
8 
10 {
16  public function execute()
17  {
18  if (!$this->getRequest()->isAjax()) {
19  $this->_forward('noroute');
20  return;
21  }
22  // disable profiling during private content handling AJAX call
24  $currentRoute = $this->getRequest()->getRouteName();
25  $currentControllerName = $this->getRequest()->getControllerName();
26  $currentActionName = $this->getRequest()->getActionName();
27  $currentRequestUri = $this->getRequest()->getRequestUri();
28 
29  $origRequest = $this->getRequest()->getParam('originalRequest');
30  if ($origRequest && is_string($origRequest)) {
31  $origRequest = json_decode($origRequest, true);
32  }
33  $this->getRequest()->setRouteName($origRequest['route']);
34  $this->getRequest()->setControllerName($origRequest['controller']);
35  $this->getRequest()->setActionName($origRequest['action']);
36  $this->getRequest()->setRequestUri($origRequest['uri']);
37 
39  $blocks = $this->_getBlocks();
40  $data = [];
41 
42  foreach ($blocks as $blockName => $blockInstance) {
43  $data[$blockName] = $blockInstance->toHtml();
44  }
45 
46  $this->getRequest()->setRouteName($currentRoute);
47  $this->getRequest()->setControllerName($currentControllerName);
48  $this->getRequest()->setActionName($currentActionName);
49  $this->getRequest()->setRequestUri($currentRequestUri);
50 
51  $this->getResponse()->setPrivateHeaders(\Magento\PageCache\Helper\Data::PRIVATE_MAX_AGE_CACHE);
52  $this->translateInline->processResponseBody($data);
53  $this->getResponse()->appendBody(json_encode($data));
54  }
55 }
_forward($action, $controller=null, $module=null, array $params=null)
Definition: Action.php:137