Exemple #1
0
	/**
	 * 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');
             }
         }
     }
 }
Exemple #3
0
	/**
	 * 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;
	}
Exemple #4
0
 /**
  * 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;
     }
 }
Exemple #5
0
 /**
  * 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;
     }
 }
Exemple #6
0
 /**
  * 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();
     }
 }