web/wp-content/themes/mozilla-builders/blocks/image-layout/image-layout.php (17 lines of code) (raw):
<?php
/**
* Custom block for creating image layouts
*
* Requires an Image Layout field group with three custom fields:
* - imageLayoutImages (Gallery)
* - imageLayoutLayout (Select) with the following choices
* - symmetrical : Symmetrical Grid (max 6 assets)
* - asymmetrical : Asymmetrical Grid (max 3 assets)
* - row : Row (max 4 assets)
* - imageLayoutCrop (True / False)
* Set this field group if the block is equal to Image Layout
*
* @package MozillaBuilders
* @param array $block The block settings and attributes.
*/
use Timber\Timber;
$alignment = $block['align'] ?? 'wide';
$context['layout'] = get_field( 'imageLayoutLayout' );
$context['crop_to_same_ratio'] = get_field( 'imageLayoutCrop' );
$context['alignclass'] = "align$alignment";
$images = get_field( 'imageLayoutImages' );
if ( is_array( $images ) ) {
$context['images'] = array_map(
function ( array $image ) {
return Timber::get_image( $image['id'] );
},
$images
);
}
$templates = array( basename( __DIR__ ) . '/image-layout.twig' );
Timber::render( $templates, $context );