├── src ├── web │ └── assets │ │ └── dist │ │ ├── assets │ │ ├── imageoptimize-Cb5BVZk9.js │ │ ├── field-D_XkB3eu.js.gz │ │ ├── imageoptimize-Cb5BVZk9.js.map │ │ ├── welcome-2KWkXHu8.js.gz │ │ ├── field-D_XkB3eu.js.map.gz │ │ ├── welcome-2KWkXHu8.js.map.gz │ │ ├── imageoptimize-B4gebLDH.css.gz │ │ ├── imageoptimize-B4gebLDH.css │ │ ├── field-D_XkB3eu.js │ │ ├── welcome-2KWkXHu8.js │ │ ├── welcome-2KWkXHu8.js.map │ │ └── field-D_XkB3eu.js.map │ │ ├── manifest.json │ │ └── img │ │ └── ImageOptimize-icon.svg ├── templates │ ├── frontend │ │ ├── lazysizes.twig.js │ │ └── lazysizes-fallback.twig.js │ ├── _layouts │ │ └── imageoptimize-cp.twig │ ├── _components │ │ ├── utilities │ │ │ └── ImageOptimizeUtility_content.twig │ │ └── fields │ │ │ ├── OptimizedImages_error.twig │ │ │ └── focal-point.svg │ ├── _includes │ │ ├── macros.twig │ │ └── checkboxGroup.twig │ ├── settings │ │ ├── index.twig │ │ ├── image-transforms │ │ │ └── craft.twig │ │ └── _settings.twig │ └── welcome.twig ├── models │ ├── TagTrait.php │ ├── TagInterface.php │ ├── BaseTag.php │ ├── LinkPreloadTag.php │ ├── ImgTag.php │ ├── BaseImageTag.php │ ├── PictureTag.php │ └── Settings.php ├── imagetransforms │ ├── ImageTransformTrait.php │ ├── ImageTransformInterface.php │ ├── CraftImageTransform.php │ └── ImageTransform.php ├── assetbundles │ └── imageoptimize │ │ └── ImageOptimizeAsset.php ├── icon-mask.svg ├── validators │ └── EmbeddedModelValidator.php ├── icon.svg ├── utilities │ └── ImageOptimizeUtility.php ├── helpers │ ├── UrlHelper.php │ ├── Color.php │ ├── Image.php │ └── PluginTemplate.php ├── services │ ├── ServicesTrait.php │ └── Placeholder.php ├── variables │ └── ImageOptimizeVariable.php ├── gql │ └── types │ │ ├── OptimizedImagesType.php │ │ └── generators │ │ └── OptimizedImagesGenerator.php ├── console │ └── controllers │ │ └── OptimizeController.php ├── jobs │ └── ResaveOptimizedImages.php ├── config.php └── translations │ └── en │ └── image-optimize.php ├── phpstan.neon ├── ecs.php ├── Makefile ├── README.md ├── composer.json ├── LICENSE.md └── CHANGELOG.md /src/web/assets/dist/assets/imageoptimize-Cb5BVZk9.js: -------------------------------------------------------------------------------- 1 | 2 | //# sourceMappingURL=imageoptimize-Cb5BVZk9.js.map 3 | -------------------------------------------------------------------------------- /src/web/assets/dist/assets/field-D_XkB3eu.js.gz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nystudio107/craft-imageoptimize/HEAD/src/web/assets/dist/assets/field-D_XkB3eu.js.gz -------------------------------------------------------------------------------- /src/web/assets/dist/assets/imageoptimize-Cb5BVZk9.js.map: -------------------------------------------------------------------------------- 1 | {"version":3,"file":"imageoptimize-Cb5BVZk9.js","sources":[],"sourcesContent":[],"names":[],"mappings":""} -------------------------------------------------------------------------------- /src/web/assets/dist/assets/welcome-2KWkXHu8.js.gz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nystudio107/craft-imageoptimize/HEAD/src/web/assets/dist/assets/welcome-2KWkXHu8.js.gz -------------------------------------------------------------------------------- /src/web/assets/dist/assets/field-D_XkB3eu.js.map.gz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nystudio107/craft-imageoptimize/HEAD/src/web/assets/dist/assets/field-D_XkB3eu.js.map.gz -------------------------------------------------------------------------------- /src/web/assets/dist/assets/welcome-2KWkXHu8.js.map.gz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nystudio107/craft-imageoptimize/HEAD/src/web/assets/dist/assets/welcome-2KWkXHu8.js.map.gz -------------------------------------------------------------------------------- /src/web/assets/dist/assets/imageoptimize-B4gebLDH.css.gz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nystudio107/craft-imageoptimize/HEAD/src/web/assets/dist/assets/imageoptimize-B4gebLDH.css.gz -------------------------------------------------------------------------------- /src/templates/frontend/lazysizes.twig.js: -------------------------------------------------------------------------------- 1 | // Dynamically import the LazySizes library 2 | const script = document.createElement('script'); 3 | script.src = '{{ scriptSrc }}'; 4 | document.body.appendChild(script); 5 | -------------------------------------------------------------------------------- /phpstan.neon: -------------------------------------------------------------------------------- 1 | includes: 2 | - %currentWorkingDirectory%/vendor/craftcms/phpstan/phpstan.neon 3 | 4 | parameters: 5 | level: 5 6 | paths: 7 | - src 8 | excludePaths: 9 | # Ignore library code 10 | - src/lib/ 11 | -------------------------------------------------------------------------------- /ecs.php: -------------------------------------------------------------------------------- 1 | paths([ 8 | __DIR__ . '/src', 9 | __FILE__, 10 | ]); 11 | $ecsConfig->parallel(); 12 | $ecsConfig->sets([SetList::CRAFT_CMS_4]); 13 | }; 14 | -------------------------------------------------------------------------------- /src/templates/_layouts/imageoptimize-cp.twig: -------------------------------------------------------------------------------- 1 | {% extends "_layouts/cp" %} 2 | 3 | {% block head %} 4 | {{ parent() }} 5 | {% set tagOptions = { 6 | 'depends': [ 7 | 'nystudio107\\imageoptimize\\assetbundles\\imageoptimize\\ImageOptimizeAsset' 8 | ], 9 | } %} 10 | {{ craft.imageOptimize.register('src/js/ImageOptimize.js', false, tagOptions, tagOptions) }} 11 | {% endblock %} 12 | -------------------------------------------------------------------------------- /src/templates/_components/utilities/ImageOptimizeUtility_content.twig: -------------------------------------------------------------------------------- 1 | {# @var craft \craft\web\twig\variables\CraftVariable #} 2 | {# 3 | /** 4 | * ImageOptimize plugin for Craft CMS 5 | * 6 | * ImageOptimizeUtility Utility Content 7 | * 8 | * @author nystudio107 9 | * @copyright Copyright (c) 2020 nystudio107 10 | * @link https://nystudio107.com 11 | * @package ImageOptimize 12 | * @since 1.0.0 13 | */ 14 | #} 15 | 16 |
43 | Brought to you by nystudio107 44 |
45 |
9 | The following ImageOptimize settings are not editable here; this is
10 | just an informational display.
11 | Instead copy the imageoptimize/config.php file to
12 | Craft's config/ directory, renaming it to image-optimize.php,
13 | and make your changes there to override default settings.
14 |
| {{ "File Format"|t('image-optimize') }} | 24 |{{ "Image Processor"|t('image-optimize') }} | 26 |{{ "Command"|t('image-optimize') }} | 27 |{{ "Installed"|t('image-optimize') }} | 28 |
|---|---|---|---|
| 35 | {{ imageProcessor.format }} 36 | | 37 |38 | {{ imageProcessor.creator }} 39 | | 40 |
41 | {{ imageProcessor.command }}
42 | |
43 | 44 | {% if imageProcessor.installed %} 45 | 48 | {% else %} 49 | 52 | {% endif %} 53 | | 54 |
61 | Image Processors optimize Craft's Image Transforms by losslessly 62 | removing metadata and cruft from the images. 63 |
64 || {{ "File Format"|t('image-optimize') }} | 75 |{{ "Variant Creator"|t('image-optimize') }} | 77 |{{ "Command"|t('image-optimize') }} | 78 |{{ "Installed"|t('image-optimize') }} | 79 |
|---|---|---|---|
| 86 | {{ variantCreator.format }} 87 | | 88 |89 | {{ variantCreator.creator }} 90 | | 91 |
92 | {{ variantCreator.command }}
93 | |
94 | 95 | {% if variantCreator.installed %} 96 | 99 | {% else %} 100 | 103 | {% endif %} 104 | | 105 |
112 | Image Variant Creators make new image variants from Craft's 113 | Image Transforms. 114 |
115 |ImageOptimize also comes with an OptimizedImages Field that you can add to an Asset
52 | Volume's layout. The OptimizedImages Field makes creating responsive image sizes for
53 | {{ ' or ' |escape }}
{{ ' elements
54 | sublimely easy.
These responsive image transforms are created when an asset is saved, rather than at page 56 | load time, to ensure that frontend performance is optimal.
57 |You do not have the GD PHP extension installed, so placeholder silhouettes
73 | cannot be generated. An SVG box will be used instead.