Apart from the link and configuration extensions Jinya CMS provides a few other extensions.
There are two file extensions as of now. Both of them are used to render resolution dependent images. Either using a picture tag or using the srcset attribute of either img or picture tags.
This extension automatically creates the needed value for the srcset attribute of img tags. The srcset functions takes
a File
as parameter. It also accepts an optional parameter to convert the image to a different file type. The
parameter is of type ImageType
.
To make browsers pick up the proper file, you also have to use the sizes function.
Check below to see how to use them:
<img srcset="<?= $this->srcset($file, \App\Utils\ImageType::Webp) ?>" sizes="<?= $this->sizes() ?>">
This extension gives you a simple way to generate a variety of source tags for a give file. The extension takes a File
and image types. The image types are values of the ImageType
enum. Possible values are as follows:
\App\Utils\ImageType::Webp
\App\Utils\ImageType::Png
\App\Utils\ImageType::Jpg
\App\Utils\ImageType::Gif
\App\Utils\ImageType::Bmp
Check below to see how to use it:
<picture>
<?= $this->pictureSources($file, \App\Utils\ImageType::Webp, \App\Utils\ImageType::Png) ?>
</picture>
This code generates the following html code:
<picture>
<source srcset="/api/media/file/747/content?width=480&type=webp" media="(min-width: 480px)" type="image/webp">
<source srcset="/api/media/file/747/content?width=720&type=webp" media="(min-width: 720px)" type="image/webp">
<source srcset="/api/media/file/747/content?width=768&type=webp" media="(min-width: 768px)" type="image/webp">
<source srcset="/api/media/file/747/content?width=800&type=webp" media="(min-width: 800px)" type="image/webp">
<source srcset="/api/media/file/747/content?width=864&type=webp" media="(min-width: 864px)" type="image/webp">
<source srcset="/api/media/file/747/content?width=900&type=webp" media="(min-width: 900px)" type="image/webp">
<source srcset="/api/media/file/747/content?width=1024&type=webp" media="(min-width: 1024px)" type="image/webp">
<source srcset="/api/media/file/747/content?width=1080&type=webp" media="(min-width: 1080px)" type="image/webp">
<source srcset="/api/media/file/747/content?width=2160&type=webp" media="(min-width: 2160px)" type="image/webp">
<source srcset="/api/media/file/747/content?width=4320&type=webp" media="(min-width: 4320px)" type="image/webp">
<source srcset="/api/media/file/747/content?width=480&type=png" media="(min-width: 480px)" type="image/png">
<source srcset="/api/media/file/747/content?width=720&type=png" media="(min-width: 720px)" type="image/png">
<source srcset="/api/media/file/747/content?width=768&type=png" media="(min-width: 768px)" type="image/png">
<source srcset="/api/media/file/747/content?width=800&type=png" media="(min-width: 800px)" type="image/png">
<source srcset="/api/media/file/747/content?width=864&type=png" media="(min-width: 864px)" type="image/png">
<source srcset="/api/media/file/747/content?width=900&type=png" media="(min-width: 900px)" type="image/png">
<source srcset="/api/media/file/747/content?width=1024&type=png" media="(min-width: 1024px)" type="image/png">
<source srcset="/api/media/file/747/content?width=1080&type=png" media="(min-width: 1080px)" type="image/png">
<source srcset="/api/media/file/747/content?width=2160&type=png" media="(min-width: 2160px)" type="image/png">
<source srcset="/api/media/file/747/content?width=4320&type=png" media="(min-width: 4320px)" type="image/png">
</picture>