/** * Собрать URL на thumbnail, который будет сгенерирован автоматически в момент запроса. * * * @param $originalSrc Путь к оригинальному изображению * @param Filter $filter Объект фильтр, который будет заниматься преобразованием * @param string $nameForSave Название для сохраненеия файла (нужно для сео) * @return string */ public function thumbnailUrlOnRequest($originalSrc, Filter $filter, $nameForSave = '') { $originalSrc = (string) $originalSrc; $extension = static::getExtension($originalSrc); if (!$extension) { return $originalSrc; } if (!$this->isAllowExtension($extension)) { return $originalSrc; } if (!$nameForSave) { $nameForSave = static::DEFAULT_THUMBNAIL_FILENAME; } $params = []; if ($filter->getConfig()) { $params = $filter->getConfig(); } $replacePart = DIRECTORY_SEPARATOR . static::THUMBNAIL_PREFIX . $filter->id . ($params ? DIRECTORY_SEPARATOR . $this->getParamsCheckString($params) : "") . DIRECTORY_SEPARATOR . $nameForSave; $imageSrcResult = str_replace('.' . $extension, $replacePart . '.' . $extension, $originalSrc); if ($params) { $imageSrcResult = $imageSrcResult . '?' . http_build_query($params); } return $imageSrcResult; }