TYPO3 CMS  TYPO3_7-6
WidgetRequestBuilder.php
Go to the documentation of this file.
1 <?php
3 
4 /*
5  * This script is backported from the TYPO3 Flow package "TYPO3.Fluid". *
6  * *
7  * It is free software; you can redistribute it and/or modify it under *
8  * the terms of the GNU Lesser General Public License, either version 3 *
9  * of the License, or (at your option) any later version. *
10  * *
11  * *
12  * This script is distributed in the hope that it will be useful, but *
13  * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHAN- *
14  * TABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser *
15  * General Public License for more details. *
16  * *
17  * You should have received a copy of the GNU Lesser General Public *
18  * License along with the script. *
19  * If not, see http://www.gnu.org/licenses/lgpl.html *
20  * *
21  * The TYPO3 project - inspiring people to share! *
22  * */
27 {
32 
38  {
39  $this->ajaxWidgetContextHolder = $ajaxWidgetContextHolder;
40  }
41 
47  public function build()
48  {
49  $request = $this->objectManager->get(\TYPO3\CMS\Fluid\Core\Widget\WidgetRequest::class);
50  $request->setRequestURI(\TYPO3\CMS\Core\Utility\GeneralUtility::getIndpEnv('TYPO3_REQUEST_URL'));
51  $request->setBaseURI(\TYPO3\CMS\Core\Utility\GeneralUtility::getIndpEnv('TYPO3_SITE_URL'));
52  $request->setMethod(isset($_SERVER['REQUEST_METHOD']) ? $_SERVER['REQUEST_METHOD'] : null);
53  if (strtolower($_SERVER['REQUEST_METHOD']) === 'post') {
54  $request->setArguments(\TYPO3\CMS\Core\Utility\GeneralUtility::_POST());
55  } else {
56  $request->setArguments(\TYPO3\CMS\Core\Utility\GeneralUtility::_GET());
57  }
59  // @todo rename to @action, to be consistent with normal naming?
60  if (isset($rawGetArguments['action'])) {
61  $request->setControllerActionName($rawGetArguments['action']);
62  }
63  $widgetContext = $this->ajaxWidgetContextHolder->get($rawGetArguments['fluid-widget-id']);
64  $request->setWidgetContext($widgetContext);
65  return $request;
66  }
67 }
injectAjaxWidgetContextHolder(\TYPO3\CMS\Fluid\Core\Widget\AjaxWidgetContextHolder $ajaxWidgetContextHolder)