bnomei/kirby3-thumb-imageoptim

View on GitHub
readme.md

Summary

Maintainability
Test Coverage
> <br>
> The used php lib will most likely not recieve an update for php 8 so I decieded to drop support for this plugin.
> <br><br>


# Kirby 3 Thumb Imageoptim

![Release](https://flat.badgen.net/packagist/v/bnomei/kirby3-thumb-imageoptim?color=ae81ff)
![Downloads](https://flat.badgen.net/packagist/dt/bnomei/kirby3-thumb-imageoptim?color=272822)
[![Build Status](https://flat.badgen.net/travis/bnomei/kirby3-thumb-imageoptim)](https://travis-ci.com/bnomei/kirby3-thumb-imageoptim)
[![Coverage Status](https://flat.badgen.net/coveralls/c/github/bnomei/kirby3-thumb-imageoptim)](https://coveralls.io/github/bnomei/kirby3-thumb-imageoptim) 
[![Maintainability](https://flat.badgen.net/codeclimate/maintainability/bnomei/kirby3-thumb-imageoptim)](https://codeclimate.com/github/bnomei/kirby3-thumb-imageoptim)  
[![Twitter](https://flat.badgen.net/badge/twitter/bnomei?color=66d9ef)](https://twitter.com/bnomei)

Kirby 3 CMS Thumb Component to optimize images using ImageOptim Api.

## Commercial Usage

> <br>
> <b>Support open source!</b><br><br>
> This plugin is free but if you use it in a commercial project please consider to sponsor me or make a donation.<br>
> If my work helped you to make some cash it seems fair to me that I might get a little reward as well, right?<br><br>
> Be kind. Share a little. Thanks.<br><br>
> &dash; Bruno<br>
> &nbsp; 

| M | O | N | E | Y |
|---|----|---|---|---|
| [Github sponsor](https://github.com/sponsors/bnomei) | [Patreon](https://patreon.com/bnomei) | [Buy Me a Coffee](https://buymeacoff.ee/bnomei) | [Paypal dontation](https://www.paypal.me/bnomei/15) | [Hire me](mailto:b@bnomei.com?subject=Kirby) |

## Installation

- unzip [master.zip](https://github.com/bnomei/kirby3-thumb-imageoptim/archive/master.zip) as folder `site/plugins/kirby3-thumb-imageoptim` or
- `git submodule add https://github.com/bnomei/kirby3-thumb-imageoptim.git site/plugins/kirby3-thumb-imageoptim` or
- `composer require bnomei/kirby3-thumb-imageoptim`

## Requirements

- [ImageOptim API key](https://imageoptim.com/api/register) (trial available). This plugin uses v1.3.1.

## Setup

In your `site/config.php` options set the [ImageOptim API key](https://imageoptim.com/api/register).

```php
'options' => [
    'bnomei.thumbimageoptim.apikey' => 'YOUR_API_KEY_HERE',
    // ... other options
]
```

> TIP: You can also set a callback if you use the [dotenv Plugin](https://github.com/bnomei/kirby3-dotenv). <br>`'bnomei.thumbimageoptim.apikey' => function() { return env('IMAGEOPTIM_APIKEY'); },`

## Usage

Generate thumbs as usual using `resize()` File Method or the `srcset()` function.

```php
$img = $page->image('ukulele.jpg');
echo $img->resize(234)->html();
```

If you want your image to be optimized but retain their original size use: `$img->thumbimageoptim()`. You can providing a width or height but its optional.

```php
$img = $page->image('ukulele.jpg');
echo $img->thumbimageoptim()->html();
// matches
echo $img->resize($img->width())->html();
```

> TIP: if you use `$img->resize()` without a param you will **not** generate a thumb and it will **not** be optimized.

This plugin will work with the [Srcset Plugin](https://github.com/bnomei/kirby3-srcset/) but be aware that depending on your srcset config a lot of files might be requested to be optimized. The requests are **not** send aync but one after another waiting for the response. The plugin will discard unfinished requests on next retry.

## Settings

| bnomei.thumbimageoptim.   | Default        | Description               |            
|---------------------------|----------------|---------------------------|
| apikey | `callback` or `null` | Your imageoptim apikey as string. |
| enabled | `true` | set to `false` to disable optimization with this plugin |
| forceupload | `false` | set to `true` when images are not public available (like a website with htpasswd). |
| timelimit | `null` or `int` | if `int` value is set `set_time_limit` will be called for **each** request |
| apirequest | `array` | default `io_quality` and `io_dpr` values |

## Localhost and forceupload

Content is always uploaded on localhost. The `allow_url_fopen` PHP setting must be enabled for the API to do uploading. Check with `ini_get('allow_url_fopen')`. Please be aware of the potential security risks caused by `allow_url_fopen`!

## Disclaimer

This plugin is provided "as is" with no guarantee. Use it at your own risk and always test it yourself before using it in a production environment. If you find any issues, please [create a new issue](https://github.com/bnomei/kirby3-thumb-imageoptim/issues/new).

## License

[MIT](https://opensource.org/licenses/MIT)

It is discouraged to use this plugin in any project that promotes racism, sexism, homophobia, animal abuse, violence or any other form of hate speech.