Skip to content
Snippets Groups Projects

Compare revisions

Changes are shown as if the source revision was being merged into the target revision. Learn more about comparing revisions.

Source

Select target project
No results found

Target

Select target project
  • project/imageapi_optimize_webp
  • issue/imageapi_optimize_webp-3153942
  • issue/imageapi_optimize_webp-3192416
  • issue/imageapi_optimize_webp-3195113
  • issue/imageapi_optimize_webp-3160399
  • issue/imageapi_optimize_webp-3228076
  • issue/imageapi_optimize_webp-3189190
  • issue/imageapi_optimize_webp-3260831
  • issue/imageapi_optimize_webp-3285857
  • issue/imageapi_optimize_webp-3321560
  • issue/imageapi_optimize_webp-3297416
  • issue/imageapi_optimize_webp-3353336
  • issue/imageapi_optimize_webp-3362476
  • issue/imageapi_optimize_webp-3424324
  • issue/imageapi_optimize_webp-3448709
  • issue/imageapi_optimize_webp-3453941
  • issue/imageapi_optimize_webp-3466630
  • issue/imageapi_optimize_webp-3483337
  • issue/imageapi_optimize_webp-3483619
  • issue/imageapi_optimize_webp-3499096
  • issue/imageapi_optimize_webp-3508390
21 results
Show changes
Commits on Source (4)
......@@ -9,5 +9,7 @@
"issues": "https://www.drupal.org/project/issues/imageapi_optimize_webp",
"source": "http://cgit.drupalcode.org/imageapi_optimize_webp"
},
"require": {}
"require": {
"drupal/core": "^10.3 || ^11"
}
}
name: 'ImageAPI Optimize WebP'
type: module
description: 'Provides a WebP processor to derive webp images from other file formats.'
core_version_requirement: ^8 || ^9 || ^10
core_version_requirement: ^10.3 || ^11
package: 'Image Optimize'
dependencies:
- imageapi_optimize:imageapi_optimize
<?php
use Drupal\Core\File\Exception\FileException;
/**
* Implements hook_entity_type_alter().
*/
......@@ -8,4 +10,22 @@ function imageapi_optimize_webp_entity_type_alter(array &$entity_types) {
$entity_types['imageapi_optimize_pipeline']->setClass('Drupal\imageapi_optimize_webp\Entity\ImageAPIOptimizeWebPPipeline');
}
return [];
}
\ No newline at end of file
}
/**
* Implements hook_image_style_flush().
*/
function imageapi_optimize_webp_image_style_flush($style, $path = NULL) {
if ($path !== NULL && substr_compare($path, '.webp', -strlen('.webp')) !== 0) {
$file_system = \Drupal::service('file_system');
$derivative_uri = $style->buildUri($path . '.webp');
if (file_exists($derivative_uri)) {
try {
$file_system->delete($derivative_uri);
}
catch (FileException $e) {
// Ignore failed deletes.
}
}
}
}
name: 'ImageAPI Optimize WebP Responsive'
type: module
description: 'Implements WebP derivatives in core Responsive Images'
core: 8.x
core_version_requirement: ^8 || ^9 || ^10
core_version_requirement: ^10.3 || ^11
package: 'Image Optimize'
dependencies:
- imageapi_optimize_webp:imageapi_optimize_webp
......@@ -33,20 +33,20 @@ class ImageStyleDownloadController extends CoreImageStyleDownloadController {
/**
* {@inheritdoc}
*/
public function deliver(Request $request, $scheme, ImageStyleInterface $image_style) {
public function deliver(Request $request, $scheme, ImageStyleInterface $image_style, string $required_derivative_scheme) {
$target = $request->query->get('file');
if (!$target) {
throw new NotFoundHttpException();
}
$path_info = pathinfo($target);
// If .webp file, look for image to derive from.
if ($path_info['extension'] == 'webp') {
if (isset($path_info['extension']) && $path_info['extension'] === 'webp') {
$image_uri = $scheme . '://' . $target;
// Continue processing if source found, else throw NotFoundHttpException.
if ($source_uri = $this->lookupSourceImage($image_uri)) {
// Replace webp image with source image and call parent:deliver().
$request->query->set('file', str_replace($scheme . '://', '', $source_uri));
$source_response = parent::deliver($request, $scheme, $image_style);
$source_response = parent::deliver($request, $scheme, $image_style, $required_derivative_scheme);
$derivative_uri = $image_style->buildUri($image_uri);
// If parent:deliver() returns BinaryFileResponse, we'll replace
// the BinaryFileResponse with one containing the .webp image
......@@ -71,7 +71,7 @@ class ImageStyleDownloadController extends CoreImageStyleDownloadController {
throw new NotFoundHttpException();
}
else {
return parent::deliver($request, $scheme, $image_style);
return parent::deliver($request, $scheme, $image_style, $required_derivative_scheme);
}
}
......
......@@ -3,7 +3,7 @@
namespace Drupal\imageapi_optimize_webp\Entity;
use Drupal\imageapi_optimize\Entity\ImageAPIOptimizePipeline;
use Drupal\Core\File\FileSystemInterface;
use Drupal\Core\File\FileExists;
/**
* Wrap ImageAPIOptimizePipeline to copy webp derivative to proper directory.
......@@ -34,7 +34,7 @@ class ImageAPIOptimizeWebPPipeline extends ImageAPIOptimizePipeline {
foreach ($this->temporaryFiles as $temp_image_uri) {
$temp_webp_uri = $temp_image_uri . '.webp';
if (file_exists($temp_webp_uri)) {
$temp_image_uri = \Drupal::service('file_system')->copy($temp_webp_uri, $webp_uri, FileSystemInterface::EXISTS_RENAME);
$temp_image_uri = \Drupal::service('file_system')->copy($temp_webp_uri, $webp_uri, FileExists::Rename);
if ($temp_image_uri) {
$this->temporaryFiles[] = $temp_webp_uri;
break;
......