2017 © Pedro Peláez
 

silverstripe-module silverstripe-lazysizes

Adds lazysizes in the SilverStripe CMS

image

lekoala/silverstripe-lazysizes

Adds lazysizes in the SilverStripe CMS

  • Thursday, May 3, 2018
  • by lekoala
  • Repository
  • 3 Watchers
  • 15 Stars
  • 107 Installations
  • PHP
  • 0 Dependents
  • 0 Suggesters
  • 4 Forks
  • 0 Open issues
  • 1 Versions
  • 0 % Grown

The README.md

Silverstripe Lazysizes module

Integrate https://github.com/aFarkas/lazysizes and https://github.com/aFarkas/respimage to Silverstripe., (*1)

Code heavily inspired by https://github.com/heyday/silverstripe-responsive-images, (*2)

All-in-one solution for: - Lazy loading images - Responsive images - Placeholder images (using placehold.it), (*3)

Respimages is only loaded if the browser does not support native syntax., (*4)

Plugins

This modules has already pre built plugins into a consolidated js file., (*5)

Plugins available by default are:, (*6)

Lasysizes: - unveilhooks - print - bgset - include, (*7)

Respimages: - oldie - intrinsic - mutation, (*8)

You can also define your own path to the libraries by adjusting the following path, (*9)

LazySizesImageExtension:
    js_path: 'lazysizes/javascript'

LazyLoading

If you simply want to lazy load your image, you can use any of three default methods which specify no additional sizes., (*10)

Example:, (*11)

$Image.Lazy(720x250)
$Image.LazyCrop(720x250)
$Image.LazyCropFocus(720x250)

Responsive sets

You can define your own responsive sets. You can see the bundled configuration for the ResponsiveDefault set which set 4 breakpoints. You can define your own sets, change sizes, method and default size to be used., (*12)

All sets use lazysizes data-sizes="auto" by default, meaning that the width of the parent is used to determine which size needs to be loaded., (*13)

Retina is also supported., (*14)

Config example:, (*15)

LazySizesImageExtension:
    ResponsiveDefault:
        sizes: [320x213 320w,640x426 640w,960x639 960w,1280x852 1280w]
    ResponsiveDefaultSquare:
        sizes: [320x320 320w,640x640 640w,960x960 960w,1280x1280 1280w]
    ResponsiveDefaultRetina:
        sizes: [400x300 1x, 800x600 2x]

Usage example in template:, (*16)

$Image.ResponsiveDefault

Using placeholders

The controller extension provides a helper method to easily create placeholders using PlaceholdIt. You can define a base size and a src set., (*17)

Example:, (*18)

$PlaceholdIt(175x75,'200x100,500x300,800x400')

SrcSet

Sometimes, you just need to output a list of srcset paths (for instance, to define a bgset). The last element of the set is never resized (always using the original image at maximum size). You can prevent this from happening by setting the second argument to false., (*19)

Example:, (*20)

<body id="$ClassName" class="typography lazyload" data-bgset="$SiteConfig.RandomBackgroundImage.SrcSet('480,800')">

Compatibility

Tested with 3.1, (*21)

Installation

composer require lekoala/silverstripe-lazysizes, (*22)

Maintainer

LeKoala - thomas@lekoala.be, (*23)

The Versions

03/05 2018

dev-master

9999999-dev

Adds lazysizes in the SilverStripe CMS

  Sources   Download

MIT

The Requires

 

by Avatar lekoala

module cms silverstripe lazysizes