Exemple #1
0
 /**
  * Собрать 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;
 }