FluidTYPO3\Vhs\Traits\SourceSetViewHelperTrait::addSourceSet PHP Метод

addSourceSet() публичный Метод

used to attach srcset variants of a given image to the specified tag
public addSourceSet ( TYPO3\CMS\Fluid\Core\ViewHelper\TagBuilder $tag, string $src ) : array
$tag TYPO3\CMS\Fluid\Core\ViewHelper\TagBuilder the tag to add the srcset as argument
$src string image path to render srcsets for
Результат array
    public function addSourceSet($tag, $src)
    {
        $srcsets = $this->getSourceSetWidths();
        if ('BE' === TYPO3_MODE) {
            FrontendSimulationUtility::simulateFrontendEnvironment();
        }
        $format = $this->arguments['format'];
        $quality = $this->arguments['quality'];
        $treatIdAsReference = (bool) $this->arguments['treatIdAsReference'];
        if (true === $treatIdAsReference) {
            $src = $this->arguments['src'];
        }
        $imageSources = [];
        $srcsetVariants = [];
        foreach ($srcsets as $key => $width) {
            $srcsetVariant = $this->getImgResource($src, $width, $format, $quality, $treatIdAsReference);
            $srcsetVariantSrc = rawurldecode($srcsetVariant[3]);
            $srcsetVariantSrc = $this->preprocessSourceUri(GeneralUtility::rawUrlEncodeFP($srcsetVariantSrc));
            $imageSources[$srcsetVariant[0]] = ['src' => $srcsetVariantSrc, 'width' => $srcsetVariant[0], 'height' => $srcsetVariant[1]];
            $srcsetVariants[$srcsetVariant[0]] = $srcsetVariantSrc . ' ' . $srcsetVariant[0] . 'w';
        }
        $tag->addAttribute('srcset', implode(',', $srcsetVariants));
        if ('BE' === TYPO3_MODE) {
            FrontendSimulationUtility::resetFrontendEnvironment();
        }
        return $imageSources;
    }