134 public function render($action = NULL, array
$arguments = array(), $controller = NULL, $extensionName = NULL, $pluginName = NULL, $pageUid = NULL, $object = NULL, $pageType = 0, $noCache = FALSE, $noCacheHash = FALSE, $section =
'', $format =
'', array $additionalParams = array(), $absolute = FALSE, $addQueryString = FALSE, array $argumentsToBeExcludedFromQueryString = array(), $fieldNamePrefix = NULL, $actionUri = NULL, $objectName = NULL, $hiddenFieldClassName = NULL) {
136 if (strtolower($this->arguments[
'method']) ===
'get') {
137 $this->tag->addAttribute(
'method',
'get');
139 $this->tag->addAttribute(
'method',
'post');
147 if ($this->arguments[
'hiddenFieldClassName'] !== NULL) {
148 $content = chr(10) .
'<div class="' . htmlspecialchars($this->arguments[
'hiddenFieldClassName']) .
'">';
150 $content = chr(10) .
'<div>';
157 if ($this->configurationManager->isFeatureEnabled(
'rewrittenPropertyMapper') === FALSE) {
164 $content .= chr(10) .
'</div>' . chr(10);
165 $content .= $formContent;
166 $this->tag->setContent($content);
173 return $this->tag->render();
183 $formActionUri = $this->arguments[
'actionUri'];
185 $uriBuilder = $this->controllerContext->getUriBuilder();
186 $formActionUri = $uriBuilder->reset()->setTargetPageUid($this->arguments[
'pageUid'])->setTargetPageType($this->arguments[
'pageType'])->setNoCache($this->arguments[
'noCache'])->setUseCacheHash(!$this->arguments[
'noCacheHash'])->setSection($this->arguments[
'section'])->setCreateAbsoluteUri($this->arguments[
'absolute'])->setArguments((array) $this->arguments[
'additionalParams'])->setAddQueryString($this->arguments[
'addQueryString'])->setArgumentsToBeExcludedFromQueryString((array) $this->arguments[
'argumentsToBeExcludedFromQueryString'])->setFormat($this->arguments[
'format'])->uriFor($this->arguments[
'action'], $this->arguments[
'arguments'], $this->arguments[
'controller'], $this->arguments[
'extensionName'], $this->arguments[
'pluginName']);
187 $this->formActionUriArguments = $uriBuilder->getArguments();
189 $this->tag->addAttribute(
'action', $formActionUri);
199 if ($this->viewHelperVariableContainer->exists(
'TYPO3\\CMS\\Fluid\\ViewHelpers\\FormViewHelper',
'additionalIdentityProperties')) {
200 $additionalIdentityProperties = $this->viewHelperVariableContainer->get(
'TYPO3\\CMS\\Fluid\\ViewHelpers\\FormViewHelper',
'additionalIdentityProperties');
202 foreach ($additionalIdentityProperties as $identity) {
203 $output .= chr(10) . $identity;
218 $request = $this->controllerContext->getRequest();
219 $extensionName = $request->getControllerExtensionName();
220 $vendorName = $request->getControllerVendorName();
221 $controllerName = $request->getControllerName();
222 $actionName = $request->getControllerActionName();
224 if ($this->configurationManager->isFeatureEnabled(
'rewrittenPropertyMapper')) {
225 $result .=
'<input type="hidden" name="' . $this->
prefixFieldName(
'__referrer[@extension]') .
'" value="' . $extensionName .
'" />' . chr(10);
226 if ($vendorName !== NULL) {
227 $result .=
'<input type="hidden" name="' . $this->
prefixFieldName(
'__referrer[@vendor]') .
'" value="' . $vendorName .
'" />' . chr(10);
229 $result .=
'<input type="hidden" name="' . $this->
prefixFieldName(
'__referrer[@controller]') .
'" value="' . $controllerName .
'" />' . chr(10);
230 $result .=
'<input type="hidden" name="' . $this->
prefixFieldName(
'__referrer[@action]') .
'" value="' . $actionName .
'" />' . chr(10);
231 $result .=
'<input type="hidden" name="' . $this->
prefixFieldName(
'__referrer[arguments]') .
'" value="' . htmlspecialchars($this->hashService->appendHmac(base64_encode(serialize($request->getArguments())))) .
'" />' . chr(10);
234 $result .=
'<input type="hidden" name="' . $this->
prefixFieldName(
'__referrer[extensionName]') .
'" value="' . $extensionName .
'" />' . chr(10);
235 $result .=
'<input type="hidden" name="' . $this->
prefixFieldName(
'__referrer[controllerName]') .
'" value="' . $controllerName .
'" />' . chr(10);
236 $result .=
'<input type="hidden" name="' . $this->
prefixFieldName(
'__referrer[actionName]') .
'" value="' . $actionName .
'" />' . chr(10);
254 $request = $this->renderingContext->getControllerContext()->getRequest();
255 $extensionName = $request->getControllerExtensionName();
256 $vendorName = $request->getControllerVendorName();
257 $controllerName = $request->getControllerName();
258 $actionName = $request->getControllerActionName();
259 if ($this->configurationManager->isFeatureEnabled(
'rewrittenPropertyMapper')) {
260 $actionRequest = array(
261 '@extension' => $extensionName,
262 '@controller' => $controllerName,
263 '@action' => $actionName,
265 if ($vendorName !== null) {
266 $actionRequest[
'@vendor'] = $vendorName;
269 $actionRequest = array(
270 'extensionName' => $extensionName,
271 'controllerName' => $controllerName,
272 'actionName' => $actionName,
275 $result =
'<input type="hidden" name="' . $this->
prefixFieldName(
'__referrer[@request]') .
'" value="' . htmlspecialchars($this->hashService->appendHmac(serialize($actionRequest))) .
'" />' . LF;
287 if ($formObjectName !== NULL) {
288 $this->viewHelperVariableContainer->add(
'TYPO3\\CMS\\Fluid\\ViewHelpers\\FormViewHelper',
'formObjectName', $formObjectName);
299 if ($formObjectName !== NULL) {
300 $this->viewHelperVariableContainer->remove(
'TYPO3\\CMS\\Fluid\\ViewHelpers\\FormViewHelper',
'formObjectName');
312 $formObjectName = NULL;
314 $formObjectName = $this->arguments[
'objectName'];
316 $formObjectName = $this->arguments[
'name'];
318 return $formObjectName;
328 $this->viewHelperVariableContainer->add(
'TYPO3\\CMS\\Fluid\\ViewHelpers\\FormViewHelper',
'formObject', $this->arguments[
'object']);
329 $this->viewHelperVariableContainer->add(
'TYPO3\\CMS\\Fluid\\ViewHelpers\\FormViewHelper',
'additionalIdentityProperties', array());
340 $this->viewHelperVariableContainer->remove(
'TYPO3\\CMS\\Fluid\\ViewHelpers\\FormViewHelper',
'formObject');
341 $this->viewHelperVariableContainer->remove(
'TYPO3\\CMS\\Fluid\\ViewHelpers\\FormViewHelper',
'additionalIdentityProperties');
352 $this->viewHelperVariableContainer->add(
'TYPO3\\CMS\\Fluid\\ViewHelpers\\FormViewHelper',
'fieldNamePrefix', $fieldNamePrefix);
362 return $this->arguments[
'fieldNamePrefix'];
374 $this->viewHelperVariableContainer->remove(
'TYPO3\\CMS\\Fluid\\ViewHelpers\\FormViewHelper',
'fieldNamePrefix');
383 $this->viewHelperVariableContainer->add(
'TYPO3\\CMS\\Fluid\\ViewHelpers\\FormViewHelper',
'formFieldNames', array());
392 $this->viewHelperVariableContainer->remove(
'TYPO3\\CMS\\Fluid\\ViewHelpers\\FormViewHelper',
'formFieldNames');
393 if ($this->viewHelperVariableContainer->exists(
'TYPO3\\CMS\\Fluid\\ViewHelpers\\FormViewHelper',
'renderedHiddenFields')) {
394 $this->viewHelperVariableContainer->remove(
'TYPO3\\CMS\\Fluid\\ViewHelpers\\FormViewHelper',
'renderedHiddenFields');
403 $this->viewHelperVariableContainer->add(
'TYPO3\\CMS\\Fluid\\ViewHelpers\\FormViewHelper',
'securedHiddenFieldsRendered',
true);
413 return $this->viewHelperVariableContainer->exists(
'TYPO3\\CMS\\Fluid\\ViewHelpers\\FormViewHelper',
'securedHiddenFieldsRendered');
421 $this->viewHelperVariableContainer->remove(
'TYPO3\\CMS\\Fluid\\ViewHelpers\\FormViewHelper',
'securedHiddenFieldsRendered');
430 $formFieldNames = $this->viewHelperVariableContainer->get(
'TYPO3\\CMS\\Fluid\\ViewHelpers\\FormViewHelper',
'formFieldNames');
431 $this->postProcessUriArgumentsForRequesthash($this->formActionUriArguments, $formFieldNames);
432 $requestHash = $this->requestHashService->generateRequestHash($formFieldNames, $this->
getFieldNamePrefix());
434 return '<input type="hidden" name="' . $this->
prefixFieldName(
'__hmac') .
'" value="' . htmlspecialchars($requestHash) .
'" />';
444 foreach (
$arguments as $argumentName => $argumentValue) {
445 if (is_array($argumentValue)) {
446 $prefix = $level == 0 ? $argumentName : $currentPrefix .
'[' . $argumentName .
']';
449 $results[] = $level == 0 ? $argumentName : $currentPrefix .
'[' . $argumentName .
']';
460 $request = $this->controllerContext->getRequest();
462 $extensionName = $this->arguments[
'extensionName'];
464 $extensionName = $request->getControllerExtensionName();
467 $pluginName = $this->arguments[
'pluginName'];
469 $pluginName = $request->getPluginName();
471 if ($extensionName !== NULL && $pluginName != NULL) {
472 return $this->extensionService->getPluginNamespace($extensionName, $pluginName);
482 if ($this->viewHelperVariableContainer->exists(
'TYPO3\\CMS\\Fluid\\ViewHelpers\\Form\\CheckboxViewHelper',
'checkboxFieldNames')) {
483 $this->viewHelperVariableContainer->remove(
'TYPO3\\CMS\\Fluid\\ViewHelpers\\Form\\CheckboxViewHelper',
'checkboxFieldNames');
493 $formFieldNames = $this->viewHelperVariableContainer->get(
'TYPO3\CMS\Fluid\ViewHelpers\FormViewHelper',
'formFieldNames');
494 $requestHash = $this->mvcPropertyMappingConfigurationService->generateTrustedPropertiesToken($formFieldNames, $this->
getFieldNamePrefix());
495 return '<input type="hidden" name="' . $this->
prefixFieldName(
'__trustedProperties') .
'" value="' . htmlspecialchars($requestHash) .
'" />';
hasArgument($argumentName)
registerTagAttribute($name, $type, $description, $required=FALSE, $default=NULL)
if($list_of_literals) if(!empty($literals)) if(!empty($literals)) $result
Analyse literals to prepend the N char to them if their contents aren't numeric.
registerUniversalTagAttributes()