If you need help solving this exception, you can have a look at the TYPO3 Documentation. There you can find solutions provided by the TYPO3 community. Once you have found a solution to the problem, help others by contributing to the documentation page.
Find a solution for this exception in the TYPO3 Documentation.
if (strlen($hash) < 31) { return $hash; } if (!isset($this->hashes[$hash])) { throw new \OutOfRangeException( 'Hash not resolvable', 1537633463 ); }
protected function inflateArray(array $array, ?string $namespace, array $arguments): array { $result = []; foreach ($array as $key => $value) { $inflatedKey = $this->resolveHash((string)$key); // inflate nested values `namespace__any__nested` -> `namespace__any/nested` $inflatedKey = $this->inflateNestedValue($inflatedKey, $namespace, $arguments); $steps = explode(static::LEVEL_DELIMITER, $inflatedKey); $pointer = &$result;
if (empty($namespace) || empty($parameters)) { return $parameters; } $parameters = $this->inflateArray($parameters, $namespace, $arguments); // apply argument mapping on items of inflated namespace parameters if (!empty($parameters[$namespace]) && !empty($arguments)) { $parameters[$namespace] = $this->inflateKeys($parameters[$namespace], null, $arguments, false); }
*/ public function inflateParameters(array $parameters, array $internals = []): array { $parameters = $this->getVariableProcessor() ->inflateNamespaceParameters($parameters, $this->namespace); $parameters[$this->namespace] = $parameters[$this->namespace] ?? []; // Invalid if there is no controller given, so this enhancers does not do anything if (empty($internals['_controller'] ?? null)) {
$appliedDefaults = $matchedRoute->getOption('_appliedDefaults') ?? []; parse_str($uri->getQuery() ?? '', $remainingQueryParameters); $enhancer = $route->getEnhancer(); if ($enhancer instanceof InflatableEnhancerInterface) { $remainingQueryParameters = $enhancer->inflateParameters($remainingQueryParameters); } $pageRouteResult = $this->buildPageArguments($route, array_merge($appliedDefaults, $parameters), $remainingQueryParameters); break; } catch (MissingMandatoryParametersException $e) {
$uri = $siteOfTargetPage->getRouter()->generateUri( $targetPageId, $queryParameters, $fragment, $useAbsoluteUrl ? RouterInterface::ABSOLUTE_URL : RouterInterface::ABSOLUTE_PATH ); } catch (InvalidRouteArgumentsException $e) { throw new UnableToLinkException('The target page could not be linked. Error: ' . $e->getMessage(), 1535472406); }
throw new UnableToLinkException('Link to external page "' . $page['uid'] . '" does not have a proper target URL, so "' . $linkText . '" was not linked.', 1551621999, null, $linkText); } } else { // Generate the URL $url = $this->generateUrlForPageWithSiteConfiguration($page, $siteOfTargetPage, $queryParameters, $sectionMark, $conf); // no scheme => always not external if (!$url->getScheme() || !$url->getHost()) { $treatAsExternalLink = false; } else {
$this, $tsfe ); try { [$this->lastTypoLinkUrl, $linkText, $target] = $linkBuilder->build($linkDetails, $linkText, $target, $conf); $this->lastTypoLinkTarget = htmlspecialchars($target); $this->lastTypoLinkLD['target'] = htmlspecialchars($target); $this->lastTypoLinkLD['totalUrl'] = $this->lastTypoLinkUrl; } catch (UnableToLinkException $e) {
* @see typoLink() */ public function typoLink_URL($conf) { $this->typoLink('|', $conf); return $this->lastTypoLinkUrl; } /**
} } // Other than stated in the doc block, typoLink_URL does not always return a string // Thus, we explicitly cast to string here. $uri = (string)$this->contentObject->typoLink_URL($typolinkConfiguration); return $uri; } /**
{ if ($this->environmentService->isEnvironmentInBackendMode()) { return $this->buildBackendUri(); } return $this->buildFrontendUri(); } /** * Builds the URI, backend flavour
$pluginNamespace = $this->extensionService->getPluginNamespace($extensionName, $pluginName); $prefixedControllerArguments = [$pluginNamespace => $controllerArguments]; } ArrayUtility::mergeRecursiveWithOverrule($this->arguments, $prefixedControllerArguments); return $this->build(); } /** * This removes controller and/or action arguments from given controllerArguments
if ($linkAccessRestrictedPages === true) { $uriBuilder->setLinkAccessRestrictedPages($linkAccessRestrictedPages); } return $uriBuilder->uriFor($action, $arguments, $controller, $extensionName, $pluginName); } }
$array141 = array ( );$array139['news'] = $renderingContext->getVariableProvider()->getByPath('detailNewsItem', $array141); $arguments135['arguments'] = $array139; $output134 .= call_user_func_array( function ($var) { return (is_string($var) || (is_object($var) && method_exists($var, '__toString')) ? htmlspecialchars((string) $var, ENT_QUOTES) : $var); }, [TYPO3\CMS\Fluid\ViewHelpers\Uri\ActionViewHelper::renderStatic($arguments135, $renderChildrenClosure136, $renderingContext)]); $output134 .= '" title="'; // Rendering ViewHelper TYPO3\CMS\Fluid\ViewHelpers\TranslateViewHelper $renderChildrenClosure143 = function() use ($renderingContext, $self) {
if (isset($arguments['then'])) { return $arguments['then']; } if (isset($arguments['__thenClosure'])) { return $arguments['__thenClosure'](); } } elseif (!empty($arguments['__elseClosures'])) { $elseIfClosures = isset($arguments['__elseifClosures']) ? $arguments['__elseifClosures'] : []; return static::evaluateElseClosures($arguments['__elseClosures'], $elseIfClosures, $renderingContext);
'; return $output146; }; $output131 .= TYPO3Fluid\Fluid\ViewHelpers\IfViewHelper::renderStatic($arguments132, $renderChildrenClosure133, $renderingContext); $output131 .= ' ';
if (isset($arguments['then'])) { return $arguments['then']; } if (isset($arguments['__thenClosure'])) { return $arguments['__thenClosure'](); } } elseif (!empty($arguments['__elseClosures'])) { $elseIfClosures = isset($arguments['__elseifClosures']) ? $arguments['__elseifClosures'] : []; return static::evaluateElseClosures($arguments['__elseClosures'], $elseIfClosures, $renderingContext);
'; return $output190; }; $output0 .= TYPO3Fluid\Fluid\ViewHelpers\IfViewHelper::renderStatic($arguments129, $renderChildrenClosure130, $renderingContext); return $output0; }
$this->startRendering(self::RENDERING_PARTIAL, $parsedPartial, $renderingContext); if ($sectionName !== null) { $output = $this->renderSection($sectionName, $variables, $ignoreUnknown); } else { $output = $parsedPartial->render($renderingContext); } $this->stopRendering(); return $output; }
$renderingContext = clone $renderingContext; $renderingContext->getVariableProvider()->setSource($variables); $content = (new $delegate())->render($renderingContext); } elseif ($partial !== null) { $content = $view->renderPartial($partial, $section, $variables, $optional); } elseif ($section !== null) { $content = $view->renderSection($section, $variables, $optional); } elseif (!$optional) { throw new \InvalidArgumentException('ViewHelper f:render called without either argument section, partial, renderable or delegate and optional flag is false');
$array119 = array ( );$array116['detailNewsItem'] = $renderingContext->getVariableProvider()->getByPath('contentObjectData.newsItemDetailUid', $array119); $arguments114['arguments'] = $array116; $output89 .= TYPO3\CMS\Fluid\ViewHelpers\RenderViewHelper::renderStatic($arguments114, $renderChildrenClosure115, $renderingContext); $output89 .= ' </div> </div>
if (isset($arguments['then'])) { return $arguments['then']; } if (isset($arguments['__thenClosure'])) { return $arguments['__thenClosure'](); } } elseif (!empty($arguments['__elseClosures'])) { $elseIfClosures = isset($arguments['__elseifClosures']) ? $arguments['__elseifClosures'] : []; return static::evaluateElseClosures($arguments['__elseClosures'], $elseIfClosures, $renderingContext);
$renderingContext ); $arguments84['__thenClosure'] = $renderChildrenClosure85; $output83 .= TYPO3Fluid\Fluid\ViewHelpers\IfViewHelper::renderStatic($arguments84, $renderChildrenClosure85, $renderingContext); $output83 .= ' '; // Rendering ViewHelper TYPO3Fluid\Fluid\ViewHelpers\SectionViewHelper
$this->startRendering(self::RENDERING_PARTIAL, $parsedPartial, $renderingContext); if ($sectionName !== null) { $output = $this->renderSection($sectionName, $variables, $ignoreUnknown); } else { $output = $parsedPartial->render($renderingContext); } $this->stopRendering(); return $output; }
$renderingContext = clone $renderingContext; $renderingContext->getVariableProvider()->setSource($variables); $content = (new $delegate())->render($renderingContext); } elseif ($partial !== null) { $content = $view->renderPartial($partial, $section, $variables, $optional); } elseif ($section !== null) { $content = $view->renderSection($section, $variables, $optional); } elseif (!$optional) { throw new \InvalidArgumentException('ViewHelper f:render called without either argument section, partial, renderable or delegate and optional flag is false');
$arguments44['debug'] = true; $arguments44['partial'] = 'List/AjaxSliderByCategoris'; $arguments44['arguments'] = $renderingContext->getVariableProvider()->getAll(); $output43 .= TYPO3\CMS\Fluid\ViewHelpers\RenderViewHelper::renderStatic($arguments44, $renderChildrenClosure45, $renderingContext); $output43 .= ' '; return $output43;
if (isset($arguments['then'])) { return $arguments['then']; } if (isset($arguments['__thenClosure'])) { return $arguments['__thenClosure'](); } } elseif (!empty($arguments['__elseClosures'])) { $elseIfClosures = isset($arguments['__elseifClosures']) ? $arguments['__elseifClosures'] : []; return static::evaluateElseClosures($arguments['__elseClosures'], $elseIfClosures, $renderingContext);
$renderingContext ); $arguments38['__thenClosure'] = $renderChildrenClosure39; $output7 .= TYPO3Fluid\Fluid\ViewHelpers\IfViewHelper::renderStatic($arguments38, $renderChildrenClosure39, $renderingContext); $output7 .= ' <!-- Special template 70 = Event list -->
private static function evaluateElseClosures(array $closures, array $conditionClosures, RenderingContextInterface $renderingContext) { foreach ($closures as $elseNodeIndex => $elseNodeClosure) { if (!isset($conditionClosures[$elseNodeIndex])) { return $elseNodeClosure(); } if ($conditionClosures[$elseNodeIndex]()) { return $elseNodeClosure(); }
return $arguments['__thenClosure'](); } } elseif (!empty($arguments['__elseClosures'])) { $elseIfClosures = isset($arguments['__elseifClosures']) ? $arguments['__elseifClosures'] : []; return static::evaluateElseClosures($arguments['__elseClosures'], $elseIfClosures, $renderingContext); } elseif (array_key_exists('else', $arguments)) { return $arguments['else']; } return '';
'; return $output7; }; $output0 .= TYPO3Fluid\Fluid\ViewHelpers\IfViewHelper::renderStatic($arguments1, $renderChildrenClosure2, $renderingContext); $output0 .= ' ';
} if (!$parsedTemplate->hasLayout()) { $this->startRendering(self::RENDERING_TEMPLATE, $parsedTemplate, $this->baseRenderingContext); $output = $parsedTemplate->render($this->baseRenderingContext); $this->stopRendering(); } else { $layoutName = $parsedTemplate->getLayoutName($this->baseRenderingContext); try {
$actionResult = $this->{$this->errorMethodName}(); } if ($actionResult === null && $this->view instanceof ViewInterface) { $this->response->appendContent($this->view->render()); } elseif (is_string($actionResult) && $actionResult !== '') { $this->response->appendContent($actionResult); } elseif (is_object($actionResult) && method_exists($actionResult, '__toString')) { $this->response->appendContent((string)$actionResult);
$this->view = $this->resolveView(); if ($this->view !== null) { $this->initializeView($this->view); } $this->callActionMethod(); $this->renderAssetsForRequest($request); } /**
throw new InfiniteLoopException('Could not ultimately dispatch the request after ' . $dispatchLoopCount . ' iterations. Most probably, a @' . IgnoreValidation::class . ' annotation is missing on re-displaying a form with validation errors.', 1217839467); } $controller = $this->resolveController($request); try { $controller->processRequest($request, $response); } catch (StopActionException $ignoredException) { } }
} /** @var \TYPO3\CMS\Extbase\Mvc\ResponseInterface $response */ $response = $this->objectManager->get(Response::class); $this->dispatcher->dispatch($request, $response); return $response; } /**
protected function handleRequest(): string { $requestHandler = $this->requestHandlerResolver->resolveRequestHandler(); $response = $requestHandler->handleRequest(); // If response is NULL after handling the request we need to stop // This happens for instance, when a USER object was converted to a USER_INT // @see TYPO3\CMS\Extbase\Mvc\Web\FrontendRequestHandler::handleRequest() if ($response === null) {
*/ public function run(string $content, array $configuration): string { $this->initialize($configuration); return $this->handleRequest(); } /** * @return string
if (is_object($classObj) && method_exists($classObj, $parts[1]) && is_callable($callable)) { $classObj->cObj = $this; $content = call_user_func_array($callable, [ $content, $conf ]); } else { $this->getTimeTracker()->setTSlogMessage('Method "' . $parts[1] . '" did not exist in class "' . $parts[0] . '"', 3); }
if ($this->cObj->getUserObjectType() === false) { // Come here only if we are not called from $TSFE->processNonCacheableContentPartsAndSubstituteContentMarkers()! $this->cObj->setUserObjectType(ContentObjectRenderer::OBJECTTYPE_USER); } $tempContent = $this->cObj->callUserFunction($conf['userFunc'], $conf, ''); if ($this->cObj->doConvertToUserIntObject) { $this->cObj->doConvertToUserIntObject = false; $content = $this->cObj->cObjGetSingle('USER_INT', $conf); } else {
} // Render content try { $content .= $contentObject->render($configuration); } catch (ContentRenderingException $exception) { // Content rendering Exceptions indicate a critical problem which should not be // caught e.g. when something went wrong with Exception handling itself throw $exception;
} if (!$hooked) { $contentObject = $this->getContentObject($name); if ($contentObject) { $content .= $this->render($contentObject, $conf); } else { // Call hook functions for extra processing if ($name) { if (!empty($GLOBALS['TYPO3_CONF_VARS']['SC_OPTIONS']['tslib/class.tslib_content.php']['cObjTypeAndClassDefault'])) {
if ($timeTracker->LR) { $timeTracker->push('/f:cObject/', '<' . $typoscriptObjectPath); } $timeTracker->incStackPointer(); $content = $contentObjectRenderer->cObjGetSingle($setup[$lastSegment], $setup[$lastSegment . '.'] ?? [], $typoscriptObjectPath); $timeTracker->decStackPointer(); if ($timeTracker->LR) { $timeTracker->pull($content); }
'No Content Object definition found at TypoScript object path "' . $typoscriptObjectPath . '"', 1540246570 ); } $content = self::renderContentObject($contentObjectRenderer, $setup, $typoscriptObjectPath, $lastSegment); if (!isset($GLOBALS['TSFE']) || !($GLOBALS['TSFE'] instanceof TypoScriptFrontendController)) { static::resetFrontendEnvironment(); } return $content;
$array133 = array ( );$array125['newsItemDetailUid'] = $renderingContext->getVariableProvider()->getByPath('newsItem.uid', $array133); $arguments123['data'] = $array125; $renderChildrenClosure124 = ($arguments123['data'] !== null) ? function() use ($arguments123) { return $arguments123['data']; } : $renderChildrenClosure124; $output118 .= TYPO3\CMS\Fluid\ViewHelpers\CObjectViewHelper::renderStatic($arguments123, $renderChildrenClosure124, $renderingContext); $output118 .= ' '; return $output118;
if (isset($arguments['then'])) { return $arguments['then']; } if (isset($arguments['__thenClosure'])) { return $arguments['__thenClosure'](); } } elseif (!empty($arguments['__elseClosures'])) { $elseIfClosures = isset($arguments['__elseifClosures']) ? $arguments['__elseifClosures'] : []; return static::evaluateElseClosures($arguments['__elseClosures'], $elseIfClosures, $renderingContext);
$renderingContext ); $arguments113['__thenClosure'] = $renderChildrenClosure114; $output112 .= TYPO3Fluid\Fluid\ViewHelpers\IfViewHelper::renderStatic($arguments113, $renderChildrenClosure114, $renderingContext); $output112 .= ' '; return $output112;
if (isset($arguments['then'])) { return $arguments['then']; } if (isset($arguments['__thenClosure'])) { return $arguments['__thenClosure'](); } } elseif (!empty($arguments['__elseClosures'])) { $elseIfClosures = isset($arguments['__elseifClosures']) ? $arguments['__elseifClosures'] : []; return static::evaluateElseClosures($arguments['__elseClosures'], $elseIfClosures, $renderingContext);
$renderingContext ); $arguments107['__thenClosure'] = $renderChildrenClosure108; $output0 .= TYPO3Fluid\Fluid\ViewHelpers\IfViewHelper::renderStatic($arguments107, $renderChildrenClosure108, $renderingContext); $output0 .= ' '; // Rendering ViewHelper FluidTYPO3\Vhs\ViewHelpers\Variable\UnsetViewHelper
} if (!$parsedTemplate->hasLayout()) { $this->startRendering(self::RENDERING_TEMPLATE, $parsedTemplate, $this->baseRenderingContext); $output = $parsedTemplate->render($this->baseRenderingContext); $this->stopRendering(); } else { $layoutName = $parsedTemplate->getLayoutName($this->baseRenderingContext); try {
$actionResult = $this->{$this->errorMethodName}(); } if ($actionResult === null && $this->view instanceof ViewInterface) { $this->response->appendContent($this->view->render()); } elseif (is_string($actionResult) && $actionResult !== '') { $this->response->appendContent($actionResult); } elseif (is_object($actionResult) && method_exists($actionResult, '__toString')) { $this->response->appendContent((string)$actionResult);
$this->view = $this->resolveView(); if ($this->view !== null) { $this->initializeView($this->view); } $this->callActionMethod(); $this->renderAssetsForRequest($request); } /**
throw new InfiniteLoopException('Could not ultimately dispatch the request after ' . $dispatchLoopCount . ' iterations. Most probably, a @' . IgnoreValidation::class . ' annotation is missing on re-displaying a form with validation errors.', 1217839467); } $controller = $this->resolveController($request); try { $controller->processRequest($request, $response); } catch (StopActionException $ignoredException) { } }
} /** @var \TYPO3\CMS\Extbase\Mvc\ResponseInterface $response */ $response = $this->objectManager->get(Response::class); $this->dispatcher->dispatch($request, $response); return $response; } /**
protected function handleRequest(): string { $requestHandler = $this->requestHandlerResolver->resolveRequestHandler(); $response = $requestHandler->handleRequest(); // If response is NULL after handling the request we need to stop // This happens for instance, when a USER object was converted to a USER_INT // @see TYPO3\CMS\Extbase\Mvc\Web\FrontendRequestHandler::handleRequest() if ($response === null) {
*/ public function run(string $content, array $configuration): string { $this->initialize($configuration); return $this->handleRequest(); } /** * @return string
if (is_object($classObj) && method_exists($classObj, $parts[1]) && is_callable($callable)) { $classObj->cObj = $this; $content = call_user_func_array($callable, [ $content, $conf ]); } else { $this->getTimeTracker()->setTSlogMessage('Method "' . $parts[1] . '" did not exist in class "' . $parts[0] . '"', 3); }
if ($this->cObj->getUserObjectType() === false) { // Come here only if we are not called from $TSFE->processNonCacheableContentPartsAndSubstituteContentMarkers()! $this->cObj->setUserObjectType(ContentObjectRenderer::OBJECTTYPE_USER); } $tempContent = $this->cObj->callUserFunction($conf['userFunc'], $conf, ''); if ($this->cObj->doConvertToUserIntObject) { $this->cObj->doConvertToUserIntObject = false; $content = $this->cObj->cObjGetSingle('USER_INT', $conf); } else {
} // Render content try { $content .= $contentObject->render($configuration); } catch (ContentRenderingException $exception) { // Content rendering Exceptions indicate a critical problem which should not be // caught e.g. when something went wrong with Exception handling itself throw $exception;
} if (!$hooked) { $contentObject = $this->getContentObject($name); if ($contentObject) { $content .= $this->render($contentObject, $conf); } else { // Call hook functions for extra processing if ($name) { if (!empty($GLOBALS['TYPO3_CONF_VARS']['SC_OPTIONS']['tslib/class.tslib_content.php']['cObjTypeAndClassDefault'])) {
if ($timeTracker->LR) { $timeTracker->push('/f:cObject/', '<' . $typoscriptObjectPath); } $timeTracker->incStackPointer(); $content = $contentObjectRenderer->cObjGetSingle($setup[$lastSegment], $setup[$lastSegment . '.'] ?? [], $typoscriptObjectPath); $timeTracker->decStackPointer(); if ($timeTracker->LR) { $timeTracker->pull($content); }
'No Content Object definition found at TypoScript object path "' . $typoscriptObjectPath . '"', 1540246570 ); } $content = self::renderContentObject($contentObjectRenderer, $setup, $typoscriptObjectPath, $lastSegment); if (!isset($GLOBALS['TSFE']) || !($GLOBALS['TSFE'] instanceof TypoScriptFrontendController)) { static::resetFrontendEnvironment(); } return $content;
$array11 = array ( );$arguments7['data'] = $renderingContext->getVariableProvider()->getByPath('data', $array11); $arguments7['table'] = 'tt_content'; $renderChildrenClosure8 = ($arguments7['data'] !== null) ? function() use ($arguments7) { return $arguments7['data']; } : $renderChildrenClosure8; $output6 .= TYPO3\CMS\Fluid\ViewHelpers\CObjectViewHelper::renderStatic($arguments7, $renderChildrenClosure8, $renderingContext); $output6 .= ' '; return $output6;
if (isset($arguments['then'])) { return $arguments['then']; } if (isset($arguments['__thenClosure'])) { return $arguments['__thenClosure'](); } } elseif (!empty($arguments['__elseClosures'])) { $elseIfClosures = isset($arguments['__elseifClosures']) ? $arguments['__elseifClosures'] : []; return static::evaluateElseClosures($arguments['__elseClosures'], $elseIfClosures, $renderingContext);
$renderingContext ); $arguments1['__thenClosure'] = $renderChildrenClosure2; $output0 .= TYPO3Fluid\Fluid\ViewHelpers\IfViewHelper::renderStatic($arguments1, $renderChildrenClosure2, $renderingContext); $output0 .= ' ';
new InvalidSectionException('Section "' . $sectionName . '" does not exist.') ); } $this->startRendering($renderingTypeOnNextLevel, $parsedTemplate, $renderingContext); $output = $parsedTemplate->$methodNameOfSection($renderingContext); $this->stopRendering(); } else { $sections = $parsedTemplate->getVariableContainer()->get('1457379500_sections'); if (!isset($sections[$sectionName])) {
$content = (new $delegate())->render($renderingContext); } elseif ($partial !== null) { $content = $view->renderPartial($partial, $section, $variables, $optional); } elseif ($section !== null) { $content = $view->renderSection($section, $variables, $optional); } elseif (!$optional) { throw new \InvalidArgumentException('ViewHelper f:render called without either argument section, partial, renderable or delegate and optional flag is false'); } // Replace empty content with default value. If default is
), $renderingContext ); $output3 .= TYPO3\CMS\Fluid\ViewHelpers\RenderViewHelper::renderStatic($arguments4, $renderChildrenClosure5, $renderingContext); $output3 .= ' '; return $output3;
if (isset($arguments['then'])) { return $arguments['then']; } if (isset($arguments['__thenClosure'])) { return $arguments['__thenClosure'](); } } elseif (!empty($arguments['__elseClosures'])) { $elseIfClosures = isset($arguments['__elseifClosures']) ? $arguments['__elseifClosures'] : []; return static::evaluateElseClosures($arguments['__elseClosures'], $elseIfClosures, $renderingContext);
'; return $output8; }; $output0 .= TYPO3Fluid\Fluid\ViewHelpers\IfViewHelper::renderStatic($arguments1, $renderChildrenClosure2, $renderingContext); $output0 .= ' ';
} catch (PassthroughSourceException $error) { return $error->getSource(); } $this->startRendering(self::RENDERING_LAYOUT, $parsedTemplate, $this->baseRenderingContext); $output = $parsedLayout->render($this->baseRenderingContext); $this->stopRendering(); } return $output;
* @return string */ protected function renderFluidView() { return $this->view->render(); } /** * Apply standard wrap to content
$this->view->assignMultiple($variables); $this->renderFluidTemplateAssetsIntoPageRenderer(); $content = $this->renderFluidView(); $content = $this->applyStandardWrapToRenderedContent($content, $conf); $this->view = $parentView; return $content;
} // Render content try { $content .= $contentObject->render($configuration); } catch (ContentRenderingException $exception) { // Content rendering Exceptions indicate a critical problem which should not be // caught e.g. when something went wrong with Exception handling itself throw $exception;
} if (!$hooked) { $contentObject = $this->getContentObject($name); if ($contentObject) { $content .= $this->render($contentObject, $conf); } else { // Call hook functions for extra processing if ($name) { if (!empty($GLOBALS['TYPO3_CONF_VARS']['SC_OPTIONS']['tslib/class.tslib_content.php']['cObjTypeAndClassDefault'])) {
[$name, $conf] = $cF->getVal($key, $this->getTypoScriptFrontendController()->tmpl->setup); $conf = array_replace_recursive(is_array($conf) ? $conf : [], $confOverride); // Getting the cObject $timeTracker->incStackPointer(); $content .= $this->cObjGetSingle($name, $conf, $key); $timeTracker->decStackPointer(); } else { $hooked = false; // Application defined cObjects
// If no "default" property is available, then an empty string is returned if ($key === 'default' && !isset($conf['default'])) { $theValue = ''; } else { $theValue = $this->cObj->cObjGetSingle($conf[$key], $conf[$key . '.'] ?? [], $key); } if (isset($conf['stdWrap.'])) { $theValue = $this->cObj->stdWrap($theValue, $conf['stdWrap.']); }
} // Render content try { $content .= $contentObject->render($configuration); } catch (ContentRenderingException $exception) { // Content rendering Exceptions indicate a critical problem which should not be // caught e.g. when something went wrong with Exception handling itself throw $exception;
} if (!$hooked) { $contentObject = $this->getContentObject($name); if ($contentObject) { $content .= $this->render($contentObject, $conf); } else { // Call hook functions for extra processing if ($name) { if (!empty($GLOBALS['TYPO3_CONF_VARS']['SC_OPTIONS']['tslib/class.tslib_content.php']['cObjTypeAndClassDefault'])) {
[$name, $conf] = $cF->getVal($key, $this->getTypoScriptFrontendController()->tmpl->setup); $conf = array_replace_recursive(is_array($conf) ? $conf : [], $confOverride); // Getting the cObject $timeTracker->incStackPointer(); $content .= $this->cObjGetSingle($name, $conf, $key); $timeTracker->decStackPointer(); } else { $hooked = false; // Application defined cObjects
$cObj->parentRecordNumber = $this->cObj->currentRecordNumber; $GLOBALS['TSFE']->currentRecord = $val['table'] . ':' . $val['id']; $this->cObj->lastChanged($row['tstamp']); $cObj->start($row, $val['table']); $tmpValue = $cObj->cObjGetSingle($renderObjName, $renderObjConf, $renderObjKey); $theValue .= $tmpValue; } } }
} // Render content try { $content .= $contentObject->render($configuration); } catch (ContentRenderingException $exception) { // Content rendering Exceptions indicate a critical problem which should not be // caught e.g. when something went wrong with Exception handling itself throw $exception;
} if (!$hooked) { $contentObject = $this->getContentObject($name); if ($contentObject) { $content .= $this->render($contentObject, $conf); } else { // Call hook functions for extra processing if ($name) { if (!empty($GLOBALS['TYPO3_CONF_VARS']['SC_OPTIONS']['tslib/class.tslib_content.php']['cObjTypeAndClassDefault'])) {
// It's should not be allowed to do this again then!! if (false === empty($parent)) { ++$GLOBALS['TSFE']->recordRegister[$parent]; } $html = $GLOBALS['TSFE']->cObj->cObjGetSingle('RECORDS', $conf); $GLOBALS['TSFE']->currentRecord = $parent; if (false === empty($parent)) { --$GLOBALS['TSFE']->recordRegister[$parent];
$this->contentObject->cObjGetSingle('LOAD_REGISTER', $this->arguments['loadRegister']); } $elements = []; foreach ($rows as $row) { array_push($elements, static::renderRecord($row)); } if (false === empty($this->arguments['loadRegister'])) { $this->contentObject->cObjGetSingle('RESTORE_REGISTER', []); }
$contentRecords = $this->getSlideRecords($pageUid, $limit); } if (true === (boolean) $this->arguments['render']) { $contentRecords = $this->getRenderedRecords($contentRecords); } return $contentRecords; }
if ('BE' === TYPO3_MODE) { return ''; } $content = $this->getContentRecords(); if (false === $this->hasArgument('as')) { return implode(LF, $content); }
*/ protected function callRenderMethod() { if (method_exists($this, 'render')) { return call_user_func([$this, 'render']); } if ((new \ReflectionMethod($this, 'renderStatic'))->getDeclaringClass()->getName() !== AbstractViewHelper::class) { // Method is safe to call - will not recurse through ViewHelperInvoker via the default // implementation of renderStatic() on this class.
{ $this->validateArguments(); $this->initialize(); return $this->callRenderMethod(); } /** * Call the render() method and handle errors.
} $viewHelper->setRenderingContext($renderingContext); $viewHelper->setArguments($evaluatedArguments); $viewHelper->handleAdditionalArguments($undeclaredArguments); return $viewHelper->initializeArgumentsAndRender(); } catch (Exception $error) { return $renderingContext->getErrorHandler()->handleViewHelperError($error); } }
*/ public static function renderStatic(array $arguments, \Closure $renderChildrenClosure, RenderingContextInterface $renderingContext) { $viewHelperClassName = get_called_class(); return $renderingContext->getViewHelperInvoker()->invoke($viewHelperClassName, $arguments, $renderingContext, $renderChildrenClosure); } /** * Save the associated ViewHelper node in a static public class variable.
$arguments115['slideCollectReverse'] = false; $arguments115['as'] = NULL; $arguments115['column'] = 0; $output0 .= FluidTYPO3\Vhs\ViewHelpers\Content\RenderViewHelper::renderStatic($arguments115, $renderChildrenClosure116, $renderingContext); $output0 .= ' <!--TYPO3SEARCH_end--> </div>
new InvalidSectionException('Section "' . $sectionName . '" does not exist.') ); } $this->startRendering($renderingTypeOnNextLevel, $parsedTemplate, $renderingContext); $output = $parsedTemplate->$methodNameOfSection($renderingContext); $this->stopRendering(); } else { $sections = $parsedTemplate->getVariableContainer()->get('1457379500_sections'); if (!isset($sections[$sectionName])) {
$content = (new $delegate())->render($renderingContext); } elseif ($partial !== null) { $content = $view->renderPartial($partial, $section, $variables, $optional); } elseif ($section !== null) { $content = $view->renderSection($section, $variables, $optional); } elseif (!$optional) { throw new \InvalidArgumentException('ViewHelper f:render called without either argument section, partial, renderable or delegate and optional flag is false'); } // Replace empty content with default value. If default is
$arguments3['contentAs'] = NULL; $arguments3['debug'] = true; $arguments3['section'] = 'main'; $output0 .= TYPO3\CMS\Fluid\ViewHelpers\RenderViewHelper::renderStatic($arguments3, $renderChildrenClosure4, $renderingContext); return $output0; }
} catch (PassthroughSourceException $error) { return $error->getSource(); } $this->startRendering(self::RENDERING_LAYOUT, $parsedTemplate, $this->baseRenderingContext); $output = $parsedLayout->render($this->baseRenderingContext); $this->stopRendering(); } return $output;
$actionResult = $this->{$this->errorMethodName}(); } if ($actionResult === null && $this->view instanceof ViewInterface) { $this->response->appendContent($this->view->render()); } elseif (is_string($actionResult) && $actionResult !== '') { $this->response->appendContent($actionResult); } elseif (is_object($actionResult) && method_exists($actionResult, '__toString')) { $this->response->appendContent((string)$actionResult);
$this->view = $this->resolveView(); if ($this->view !== null) { $this->initializeView($this->view); } $this->callActionMethod(); $this->renderAssetsForRequest($request); } /**
throw new InfiniteLoopException('Could not ultimately dispatch the request after ' . $dispatchLoopCount . ' iterations. Most probably, a @' . IgnoreValidation::class . ' annotation is missing on re-displaying a form with validation errors.', 1217839467); } $controller = $this->resolveController($request); try { $controller->processRequest($request, $response); } catch (StopActionException $ignoredException) { } }
} /** @var \TYPO3\CMS\Extbase\Mvc\ResponseInterface $response */ $response = $this->objectManager->get(Response::class); $this->dispatcher->dispatch($request, $response); return $response; } /**
protected function handleRequest(): string { $requestHandler = $this->requestHandlerResolver->resolveRequestHandler(); $response = $requestHandler->handleRequest(); // If response is NULL after handling the request we need to stop // This happens for instance, when a USER object was converted to a USER_INT // @see TYPO3\CMS\Extbase\Mvc\Web\FrontendRequestHandler::handleRequest() if ($response === null) {
*/ public function run(string $content, array $configuration): string { $this->initialize($configuration); return $this->handleRequest(); } /** * @return string
if (is_object($classObj) && method_exists($classObj, $parts[1]) && is_callable($callable)) { $classObj->cObj = $this; $content = call_user_func_array($callable, [ $content, $conf ]); } else { $this->getTimeTracker()->setTSlogMessage('Method "' . $parts[1] . '" did not exist in class "' . $parts[0] . '"', 3); }
if ($this->cObj->getUserObjectType() === false) { // Come here only if we are not called from $TSFE->processNonCacheableContentPartsAndSubstituteContentMarkers()! $this->cObj->setUserObjectType(ContentObjectRenderer::OBJECTTYPE_USER); } $tempContent = $this->cObj->callUserFunction($conf['userFunc'], $conf, ''); if ($this->cObj->doConvertToUserIntObject) { $this->cObj->doConvertToUserIntObject = false; $content = $this->cObj->cObjGetSingle('USER_INT', $conf); } else {
} // Render content try { $content .= $contentObject->render($configuration); } catch (ContentRenderingException $exception) { // Content rendering Exceptions indicate a critical problem which should not be // caught e.g. when something went wrong with Exception handling itself throw $exception;
} if (!$hooked) { $contentObject = $this->getContentObject($name); if ($contentObject) { $content .= $this->render($contentObject, $conf); } else { // Call hook functions for extra processing if ($name) { if (!empty($GLOBALS['TYPO3_CONF_VARS']['SC_OPTIONS']['tslib/class.tslib_content.php']['cObjTypeAndClassDefault'])) {
foreach ($sKeyArray as $theKey) { $theValue = $setup[$theKey]; if ((int)$theKey && strpos($theKey, '.') === false) { $conf = $setup[$theKey . '.'] ?? []; $content .= $this->cObjGetSingle($theValue, $conf, $addKey . $theKey); } } return $content; }
* @return string */ protected function generatePageBodyContent(TypoScriptFrontendController $controller): string { $pageContent = $controller->cObj->cObjGet($controller->pSetup) ?: ''; if ($controller->pSetup['wrap'] ?? false) { $pageContent = $controller->cObj->wrap($pageContent, $controller->pSetup['wrap']); } if ($controller->pSetup['stdWrap.'] ?? false) {
protected function generatePageContent(TypoScriptFrontendController $controller, ServerRequestInterface $request): string { // Generate the main content between the <body> tags // This has to be done first, as some additional TSFE-related code could have been written $pageContent = $this->generatePageBodyContent($controller); // If 'disableAllHeaderCode' is set, all the pageRenderer settings are not evaluated if ($controller->config['config']['disableAllHeaderCode'] ?? false) { return $pageContent; }
// Content generation $this->timeTracker->incStackPointer(); $this->timeTracker->push($controller->sPre, 'PAGE'); $controller->content = $this->generatePageContent($controller, $request); $this->timeTracker->pull($this->timeTracker->LR ? $controller->content : ''); $this->timeTracker->decStackPointer();
// Throw away all output that may have happened during bootstrapping by weird extensions ob_clean(); // Initialize output compression if configured $this->initializeOutputCompression(); return $handler->handle($request); } /** * Initialize output compression if configured
if (!$middleware instanceof MiddlewareInterface) { throw new \InvalidArgumentException(get_class($middleware) . ' does not implement ' . MiddlewareInterface::class, 1516821342); } return $middleware->process($request, $this->next); } }; } }
* Search/Extract/Merge SVGs @ HTML output. */ public function process(ServerRequestInterface $request, RequestHandlerInterface $handler): ResponseInterface { $response = $handler->handle($request); if (!($response instanceof NullResponse) && $GLOBALS['TSFE'] instanceof TypoScriptFrontendController && ($GLOBALS['TSFE']->config['config']['svgstore.']['enabled'] ?? false)
if (!$middleware instanceof MiddlewareInterface) { throw new \InvalidArgumentException(get_class($middleware) . ' does not implement ' . MiddlewareInterface::class, 1516821342); } return $middleware->process($request, $this->next); } }; } }
* RegEx search & replace @ HTML output. */ public function process(ServerRequestInterface $request, RequestHandlerInterface $handler): ResponseInterface { $response = $handler->handle($request); if (!($response instanceof NullResponse) && $GLOBALS['TSFE'] instanceof TypoScriptFrontendController && ($GLOBALS['TSFE']->config['config']['replacer.'] ?? false)
if (!$middleware instanceof MiddlewareInterface) { throw new \InvalidArgumentException(get_class($middleware) . ' does not implement ' . MiddlewareInterface::class, 1516821342); } return $middleware->process($request, $this->next); } }; } }
* Clean the HTML output. */ public function process(ServerRequestInterface $request, RequestHandlerInterface $handler): ResponseInterface { $response = $handler->handle($request); if (!($response instanceof NullResponse) && $GLOBALS['TSFE'] instanceof TypoScriptFrontendController && ($GLOBALS['TSFE']->config['config']['sourceopt.']['enabled'] ?? false)
if (!$middleware instanceof MiddlewareInterface) { throw new \InvalidArgumentException(get_class($middleware) . ' does not implement ' . MiddlewareInterface::class, 1516821342); } return $middleware->process($request, $this->next); } }; } }
class AssetInclusion implements MiddlewareInterface { public function process(ServerRequestInterface $request, RequestHandlerInterface $handler): ResponseInterface { $response = $handler->handle($request); $body = $response->getBody(); $body->rewind(); $contents = $body->getContents();
if (!$middleware instanceof MiddlewareInterface) { throw new \InvalidArgumentException(get_class($middleware) . ' does not implement ' . MiddlewareInterface::class, 1516821342); } return $middleware->process($request, $this->next); } }; } }
* @return ResponseInterface */ public function process(ServerRequestInterface $request, RequestHandlerInterface $handler): ResponseInterface { $response = $handler->handle($request); if ( !($response instanceof NullResponse) && $GLOBALS['TSFE'] instanceof TypoScriptFrontendController && $GLOBALS['TSFE']->isOutputting(true)) {
if (!$middleware instanceof MiddlewareInterface) { throw new \InvalidArgumentException(get_class($middleware) . ' does not implement ' . MiddlewareInterface::class, 1516821342); } return $middleware->process($request, $this->next); } }; } }
return new RedirectResponse($externalUrl, 303); } } return $handler->handle($request); } protected function getRedirectUri(ServerRequestInterface $request): ?string {
if (!$middleware instanceof MiddlewareInterface) { throw new \InvalidArgumentException(get_class($middleware) . ' does not implement ' . MiddlewareInterface::class, 1516821342); } return $middleware->process($request, $this->next); } }; } }
$this->convertCharsetRecursivelyToUtf8($parsedBody, $this->controller->metaCharset); $request = $request->withParsedBody($parsedBody); } } return $handler->handle($request); } /** * Small helper function to convert charsets for arrays to UTF-8
if (!$middleware instanceof MiddlewareInterface) { throw new \InvalidArgumentException(get_class($middleware) . ' does not implement ' . MiddlewareInterface::class, 1516821342); } return $middleware->process($request, $this->next); } }; } }
} // Make TSFE globally available $GLOBALS['TSFE'] = $controller; return $handler->handle($request); } /** * Register the backend user as aspect
if (!$middleware instanceof MiddlewareInterface) { throw new \InvalidArgumentException(get_class($middleware) . ' does not implement ' . MiddlewareInterface::class, 1516821342); } return $middleware->process($request, $this->next); } }; } }
} } $request = $request->withAttribute('noCache', $this->disableCache); return $handler->handle($request); } /** * Filters out the arguments that are necessary for calculating cHash
if (!$middleware instanceof MiddlewareInterface) { throw new \InvalidArgumentException(get_class($middleware) . ' does not implement ' . MiddlewareInterface::class, 1516821342); } return $middleware->process($request, $this->next); } }; } }
$previewAspect = GeneralUtility::makeInstance(PreviewAspect::class, $isPreview); $this->context->setAspect('frontend.preview', $previewAspect); } return $handler->handle($request); } /** * Simulate dates for preview functionality
if (!$middleware instanceof MiddlewareInterface) { throw new \InvalidArgumentException(get_class($middleware) . ' does not implement ' . MiddlewareInterface::class, 1516821342); } return $middleware->process($request, $this->next); } }; } }
// merge the PageArguments with the request query parameters $queryParams = array_replace_recursive($request->getQueryParams(), $pageArguments->getArguments()); $request = $request->withQueryParams($queryParams); return $handler->handle($request); } }
if (!$middleware instanceof MiddlewareInterface) { throw new \InvalidArgumentException(get_class($middleware) . ' does not implement ' . MiddlewareInterface::class, 1516821342); } return $middleware->process($request, $this->next); } }; } }
unset($GLOBALS['TYPO3_REQUEST']); } } return $handler->handle($request); } /** * Creates a PSR-7 compatible Response object
if (!$middleware instanceof MiddlewareInterface) { throw new \InvalidArgumentException(get_class($middleware) . ' does not implement ' . MiddlewareInterface::class, 1516821342); } return $middleware->process($request, $this->next); } }; } }
return new HtmlResponse($content, 200, ['Content-Type' => $contentType]); } } return $handler->handle($request); } /** * Find the proper configuration for the static route in the static route configuration. Mainly:
if (!$middleware instanceof MiddlewareInterface) { throw new \InvalidArgumentException(get_class($middleware) . ' does not implement ' . MiddlewareInterface::class, 1516821342); } return $middleware->process($request, $this->next); } }; } }
$uri = $requestedUri->withPath(rtrim($requestedUri->getPath(), '/')); return new RedirectResponse($uri, 307); } } return $handler->handle($request); } /** * Checks if the language is allowed in Frontend, if not, check if there is valid BE user
if (!$middleware instanceof MiddlewareInterface) { throw new \InvalidArgumentException(get_class($middleware) . ' does not implement ' . MiddlewareInterface::class, 1516821342); } return $middleware->process($request, $this->next); } }; } }
// Register the frontend user as aspect and within the session $this->setFrontendUserAspect($frontendUser); $request = $request->withAttribute('frontend.user', $frontendUser); $response = $handler->handle($request); // Store session data for fe_users if it still exists if ($frontendUser instanceof FrontendUserAuthentication) { $frontendUser->storeSessionData();
if (!$middleware instanceof MiddlewareInterface) { throw new \InvalidArgumentException(get_class($middleware) . ' does not implement ' . MiddlewareInterface::class, 1516821342); } return $middleware->process($request, $this->next); } }; } }
Bootstrap::loadExtTables(); $this->setBackendUserAspect($GLOBALS['BE_USER']); } $response = $handler->handle($request); // If, when building the response, the user is still available, then ensure that the headers are sent properly if ($this->context->getAspect('backend.user')->isLoggedIn()) { return $this->applyHeadersToResponse($response);
if (!$middleware instanceof MiddlewareInterface) { throw new \InvalidArgumentException(get_class($middleware) . ' does not implement ' . MiddlewareInterface::class, 1516821342); } return $middleware->process($request, $this->next); } }; } }
) { return GeneralUtility::makeInstance(ErrorController::class)->unavailableAction($request, 'This page is temporarily unavailable.'); } // Continue the regular stack if no maintenance mode is active return $handler->handle($request); } }
if (!$middleware instanceof MiddlewareInterface) { throw new \InvalidArgumentException(get_class($middleware) . ' does not implement ' . MiddlewareInterface::class, 1516821342); } return $middleware->process($request, $this->next); } }; } }
$request = $request->withAttribute('routing', $routeResult); if ($routeResult->getLanguage() instanceof SiteLanguage) { Locales::setSystemLocaleFromSiteLanguage($routeResult->getLanguage()); } return $handler->handle($request); } }
if (!$middleware instanceof MiddlewareInterface) { throw new \InvalidArgumentException(get_class($middleware) . ' does not implement ' . MiddlewareInterface::class, 1516821342); } return $middleware->process($request, $this->next); } }; } }
{ $eID = $request->getParsedBody()['eID'] ?? $request->getQueryParams()['eID'] ?? null; if ($eID === null) { return $handler->handle($request); } // Remove any output produced until now ob_clean();
if (!$middleware instanceof MiddlewareInterface) { throw new \InvalidArgumentException(get_class($middleware) . ' does not implement ' . MiddlewareInterface::class, 1516821342); } return $middleware->process($request, $this->next); } }; } }
*/ public function process(ServerRequestInterface $request, RequestHandlerInterface $handler): ResponseInterface { $request = $request->withAttribute('normalizedParams', NormalizedParams::createFromRequest($request)); return $handler->handle($request); } }
if (!$middleware instanceof MiddlewareInterface) { throw new \InvalidArgumentException(get_class($middleware) . ' does not implement ' . MiddlewareInterface::class, 1516821342); } return $middleware->process($request, $this->next); } }; } }
$this->timeTracker->setEnabled($timeTrackingEnabled); $this->timeTracker->start(microtime(true)); $this->timeTracker->push(''); $response = $handler->handle($request); // Finish time tracking $this->timeTracker->pull(); $this->timeTracker->finish();
if (!$middleware instanceof MiddlewareInterface) { throw new \InvalidArgumentException(get_class($middleware) . ' does not implement ' . MiddlewareInterface::class, 1516821342); } return $middleware->process($request, $this->next); } }; } }
* @return ResponseInterface */ public function handle(ServerRequestInterface $request): ResponseInterface { return $this->tip->handle($request); } /** * Seed the middleware stack with the inner request handler
* @return ResponseInterface */ protected function handle(ServerRequestInterface $request): ResponseInterface { return $this->requestHandler->handle($request); } /** * Set up the application and shut it down afterwards
// Create new request object having applicationType "I am a frontend request" attribute. $request = $request->withAttribute('applicationType', SystemEnvironmentBuilder::REQUESTTYPE_FE); $this->initializeContext(); return parent::handle($request); } /** * Check if LocalConfiguration.php and PackageStates.php exist
final public function run(callable $execute = null) { try { $response = $this->handle( ServerRequestFactory::fromGlobals() ); if ($execute !== null) { call_user_func($execute); }
// Set up the application for the frontend call_user_func(function () { $classLoader = require dirname(__DIR__).'/vendor/autoload.php'; \TYPO3\CMS\Core\Core\SystemEnvironmentBuilder::run(0, \TYPO3\CMS\Core\Core\SystemEnvironmentBuilder::REQUESTTYPE_FE); \TYPO3\CMS\Core\Core\Bootstrap::init($classLoader)->get(\TYPO3\CMS\Frontend\Http\Application::class)->run(); });
call_user_func(function () { $classLoader = require dirname(__DIR__).'/vendor/autoload.php'; \TYPO3\CMS\Core\Core\SystemEnvironmentBuilder::run(0, \TYPO3\CMS\Core\Core\SystemEnvironmentBuilder::REQUESTTYPE_FE); \TYPO3\CMS\Core\Core\Bootstrap::init($classLoader)->get(\TYPO3\CMS\Frontend\Http\Application::class)->run(); });