TYPO3 CMS  TYPO3_6-2
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  $this->ajaxWidgetContextHolder = $ajaxWidgetContextHolder;
39  }
40 
46  public function build() {
47  $request = $this->objectManager->get('TYPO3\\CMS\\Fluid\\Core\\Widget\\WidgetRequest');
48  $request->setRequestURI(\TYPO3\CMS\Core\Utility\GeneralUtility::getIndpEnv('TYPO3_REQUEST_URL'));
49  $request->setBaseURI(\TYPO3\CMS\Core\Utility\GeneralUtility::getIndpEnv('TYPO3_SITE_URL'));
50  $request->setMethod(isset($_SERVER['REQUEST_METHOD']) ? $_SERVER['REQUEST_METHOD'] : NULL);
51  if (strtolower($_SERVER['REQUEST_METHOD']) === 'post') {
52  $request->setArguments(\TYPO3\CMS\Core\Utility\GeneralUtility::_POST());
53  } else {
54  $request->setArguments(\TYPO3\CMS\Core\Utility\GeneralUtility::_GET());
55  }
57  // TODO: rename to @action, to be consistent with normal naming?
58  if (isset($rawGetArguments['action'])) {
59  $request->setControllerActionName($rawGetArguments['action']);
60  }
61  $widgetContext = $this->ajaxWidgetContextHolder->get($rawGetArguments['fluid-widget-id']);
62  $request->setWidgetContext($widgetContext);
63  return $request;
64  }
65 }
injectAjaxWidgetContextHolder(\TYPO3\CMS\Fluid\Core\Widget\AjaxWidgetContextHolder $ajaxWidgetContextHolder)