/** * Returns the base URI * * @return string Base URI of this web request * @api */ public function getBaseUri() { if ($this->environmentService->isEnvironmentInBackendMode()) { return $this->baseUri . TYPO3_mainDir; } else { return $this->baseUri; } }
/** * @param \TYPO3\CMS\Core\Resource\ResourceStorage $resourceStorage * @param \TYPO3\CMS\Core\Resource\Driver\DriverInterface $driver * @param \TYPO3\CMS\Core\Resource\ResourceInterface $resourceObject * @param boolean $relativeToCurrentScript * @param string $urlData */ public function getCdnPublicUrl($resourceStorage, $driver, $resourceObject, $relativeToCurrentScript, $urlData) { if (!$driver instanceof LocalDriver || $this->environmentService->isEnvironmentInBackendMode()) { return; } if (($resourceObject instanceof File || $resourceObject instanceof ProcessedFile) && ($resourceStorage->getCapabilities() & ResourceStorageInterface::CAPABILITY_PUBLIC) == ResourceStorageInterface::CAPABILITY_PUBLIC) { $publicUrl = $driver->getPublicUrl($resourceObject->getIdentifier()); $urlData['publicUrl'] = $GLOBALS['TSFE']->config['config']['cdnBaseUrl'] . $publicUrl; if ($resourceObject instanceof File) { $urlData['publicUrl'] .= '?' . $resourceObject->getModificationTime(); } else { if ($resourceObject instanceof ProcessedFile) { $urlData['publicUrl'] .= '?' . $resourceObject->getProperty('tstamp'); } } } }
/** * Get File or FileReference object by src * * @param string $src * @param bool $treatIdAsReference * @return FileInterface|FileReference|\TYPO3\CMS\Core\Resource\Folder */ protected function getImageFromSourceString($src, $treatIdAsReference) { if ($this->environmentService->isEnvironmentInBackendMode() && substr($src, 0, 3) === '../') { $src = substr($src, 3); } if (MathUtility::canBeInterpretedAsInteger($src)) { if ($treatIdAsReference) { $image = $this->resourceFactory->getFileReferenceObject($src); } else { $image = $this->resourceFactory->getFileObject($src); } } else { // We have a combined identifier or legacy (storage 0) path $image = $this->resourceFactory->retrieveFileOrFolderObject($src); } return $image; }
/** * Adds an additional header data (something like * '<script src="myext/Resources/JavaScript/my.js" type="text/javascript"></script>' * ) * * @TODO The workround and the $request member should be removed again, once the PageRender does support non-cached USER_INTs * @param string $additionalHeaderData The value additonal header * @throws \InvalidArgumentException * @return void * @api */ public function addAdditionalHeaderData($additionalHeaderData) { if (!is_string($additionalHeaderData)) { throw new \InvalidArgumentException('The additiona header data must be of type String, ' . gettype($additionalHeaderData) . ' given.', 1237370877); } if ($this->request->isCached()) { if ($this->environmentService->isEnvironmentInFrontendMode()) { $pageRenderer = $GLOBALS['TSFE']->getPageRenderer(); } elseif ($this->environmentService->isEnvironmentInBackendMode()) { $pageRenderer = $GLOBALS['TBE_TEMPLATE']->getPageRenderer(); } $pageRenderer->addHeaderData($additionalHeaderData); } else { $this->additionalHeaderData[] = $additionalHeaderData; } }
/** * Adds an additional header data (something like * '<script src="myext/Resources/JavaScript/my.js" type="text/javascript"></script>' * ) * * @TODO The workround and the $request member should be removed again, once the PageRender does support non-cached USER_INTs * @param string $additionalHeaderData The value additonal header * @throws \InvalidArgumentException * @return void * @api */ public function addAdditionalHeaderData($additionalHeaderData) { if (!is_string($additionalHeaderData)) { throw new \InvalidArgumentException('The additiona header data must be of type String, ' . gettype($additionalHeaderData) . ' given.', 1237370877); } if ($this->request->isCached()) { /** @var PageRenderer $pageRenderer */ $pageRenderer = NULL; if ($this->environmentService->isEnvironmentInFrontendMode()) { $pageRenderer = $this->getTypoScriptFrontendController()->getPageRenderer(); } elseif ($this->environmentService->isEnvironmentInBackendMode()) { $pageRenderer = $this->getDocumentTemplate()->getPageRenderer(); } if ($pageRenderer !== NULL) { $pageRenderer->addHeaderData($additionalHeaderData); } } else { $this->additionalHeaderData[] = $additionalHeaderData; } }
/** * Builds the URI * Depending on the current context this calls buildBackendUri() or buildFrontendUri() * * @return string The URI * @api * @see buildBackendUri() * @see buildFrontendUri() */ public function build() { if ($this->environmentService->isEnvironmentInBackendMode()) { return $this->buildBackendUri(); } else { return $this->buildFrontendUri(); } }